diff --git a/Package.swift b/Package.swift index da7c806..4a84792 100644 --- a/Package.swift +++ b/Package.swift @@ -6,12 +6,20 @@ import PackageDescription let package = Package( name: "Diffusion", products: [ + // Products define the executables and libraries a package produces, making them visible to other packages. .library( name: "Diffusion", targets: ["Diffusion"]), ], - dependencies: [], targets: [ - .binaryTarget(name: "Diffusion", path: "./Sources/Diffusion.xcframework") + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .binaryTarget( + name: "Diffusion", + path: "./Sources/Diffusion.xcframework" + ), + .testTarget( + name: "DiffusionTests", + dependencies: ["Diffusion"]), ] ) diff --git a/README.md b/README.md index 9e30db3..70dd95a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - +

@@ -20,20 +20,20 @@ # Apple SDK for Diffusion - Swift Package -#### Latest version: 6.8.0 +#### Latest version: 6.9.8 #### Links -- Quick Start Guide -- Developer Guide -- API Documentation -- Examples +- Quick Start Guide +- Developer Guide +- API Documentation +- Examples ## Installation ### Xcode Projects -Select `File` -> `Swift Packages` -> `Add Package Dependency` and enter `https://github.com/pushtechnology/diffusion-swift`. +Select `File` -> `Swift Packages` -> `Add Package Dependency` and enter `https://github.com/diffusiondata/diffusion-swift`. ### Swift Package Manager Projects @@ -46,8 +46,8 @@ let package = Package( dependencies: [ .package( name: "Diffusion", - url: "https://github.com/pushtechnology/diffusion-swift", - .exact("6.8.0") + url: "https://github.com/diffusiondata/diffusion-swift", + .exact("6.9.8") ), ], //... @@ -59,4 +59,4 @@ Then simply `import Diffusion` wherever you’d like to use it. ### Requirements -- Xcode 12.4+ +- Xcode 15.1+ diff --git a/Sources/Diffusion.xcframework/Info.plist b/Sources/Diffusion.xcframework/Info.plist index fc823f8..1c6a25a 100644 --- a/Sources/Diffusion.xcframework/Info.plist +++ b/Sources/Diffusion.xcframework/Info.plist @@ -19,22 +19,22 @@ tvos + DebugSymbolsPath + dSYMs LibraryIdentifier - ios-arm64_i386_x86_64-simulator + ios-arm64 LibraryPath Diffusion.framework SupportedArchitectures arm64 - i386 - x86_64 SupportedPlatform ios - SupportedPlatformVariant - simulator + DebugSymbolsPath + dSYMs LibraryIdentifier tvos-arm64_x86_64-simulator LibraryPath @@ -53,7 +53,7 @@ DebugSymbolsPath dSYMs LibraryIdentifier - macos-arm64_x86_64 + ios-arm64_x86_64-simulator LibraryPath Diffusion.framework SupportedArchitectures @@ -62,23 +62,24 @@ x86_64 SupportedPlatform - macos + ios + SupportedPlatformVariant + simulator DebugSymbolsPath dSYMs LibraryIdentifier - ios-arm64_armv7_armv7s + macos-arm64_x86_64 LibraryPath Diffusion.framework SupportedArchitectures arm64 - armv7 - armv7s + x86_64 SupportedPlatform - ios + macos CFBundlePackageType diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Diffusion b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Diffusion new file mode 100755 index 0000000..720d0e2 Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Diffusion differ diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/Diffusion.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/Diffusion.h new file mode 100644 index 0000000..4a29369 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/Diffusion.h @@ -0,0 +1,215 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +/** + @file Diffusion.h + + Framework umbrella header file. + */ + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusion.h new file mode 100644 index 0000000..c1be496 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusion.h @@ -0,0 +1,99 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @file PTDiffusion.h + + Collection of utility functions + */ + +/** + Escapes special characters in a string that is to be used within a topic + property or a @ref md_session_filters "session filter". + + This is a convenience method which inserts an escape character `\` before any + of the special characters `'`, `"` or `\`. + + @param string The string to be escaped. + + @return The string value with escape characters inserted as appropriate. + + @exception NSInvalidArgumentException If the given string is `nil`. + + @since 6.1 + */ +NSString* PTDiffusionEscape(NSString * string); + +/** + Converts a string of the format required by the + PTDiffusionSession#rolesPropertyKey into a set of strings. + + @param string Quoted roles, separated by whitespace or commas. + + @param roles If successful, upon return contains the set of roles. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return An immutable set of roles. + + @since 6.2 + */ +BOOL PTDiffusionRolesFromString(NSString * string, NSSet *_Nullable *_Nonnull roles, NSError ** error); + +/** + Converts a set of authorisation roles to the string format required by the + PTDiffusionSession#rolesPropertyKey. + + @param roles The roles to format. + + @return A string representation of the supplied roles. + + @since 6.2 + */ +NSString* PTDiffusionStringFromRoles(NSSet * roles); + +/** + The value assigned to the `domain` property of NSError objects generated from + some methods in the Diffusion API. + + @since 6.2 + + @deprecated since 6.7 Error domains have been converged into PTDiffusion. + */ +extern NSString *const PTDiffusionErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + Values assigned to the `code` property of NSError objects generated from some + methods in the Diffusion API. + + @since 6.2 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionErrorCode) { + /** + The string supplied has been encoded incorrectly. + + @deprecated since 6.7 Use PTDiffusionError_MisquotedInput instead. + + @since 6.2 + */ + PTDiffusionErrorCode_MisquotedInput __deprecated_enum_msg("Use PTDiffusionError_MisquotedInput instead.") = 1, +}; + + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h new file mode 100644 index 0000000..e084fef --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The result of adding a topic. + + @see PTDiffusionTopicControlFeature + + @since 6.1 + */ +@interface PTDiffusionAddTopicResult : PTDiffusionEnumeration + +/** + A new topic was created. + + @return Instance indicating a new topic was created. + + @since 6.1 + */ ++(instancetype)created; + +/** + A topic with the same specification already exists. + + @return Instance indicating a topic with the same specification + already exists. + + @since 6.1 + */ ++(instancetype)exists; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h new file mode 100644 index 0000000..10308a5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h @@ -0,0 +1,49 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Provider of responses to basic authentication challenges from HTTP proxies. + + @see PTDiffusionHTTPProxyConfiguration + + @since 6.0 + */ +@interface PTDiffusionBasicHTTPProxyAuthentication : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Creates a basic HTTP Proxy authentication with the given username and password. + + @param username The username to respond with. + + @param password The password to respond with. + + @exception NSInvalidArgumentException If either username or password is `nil`. + + @return HTTP Proxy Authentication instance with the given username and password. + + @since 6.0 + */ +-(instancetype)initWithUsername:(NSString *)username + password:(NSString *)password NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h new file mode 100644 index 0000000..1c06044 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h @@ -0,0 +1,693 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionBinaryDelta; +@class PTDiffusionBinaryFetchResult; +@class PTDiffusionBinaryTimeSeriesQueryResult; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionResponse; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionBinaryRequestDelegate; +@protocol PTDiffusionBinaryRequestStreamDelegate; +@protocol PTDiffusionBinarySessionResponseStreamDelegate; +@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionBinaryValueStreamDelegate; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" + + +NS_ASSUME_NONNULL_BEGIN + + +/** + @brief An immutable binary value with support for binary deltas. + + @since 5.9 + */ +@interface PTDiffusionBinary : PTDiffusionBytes + +/** + Apply a binary delta to the receiver's binary value to create a new value. + + @param delta The delta describing the changes to be applied to the receiver's + value in order to create the value to be returned. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new binary value or `nil` if there was a failure when applying the + delta (e.g. either the delta is invalid). + + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. + + @since 5.9 + */ +-(nullable PTDiffusionBinary *)applyDelta:(PTDiffusionBinaryDelta *)delta + error:(NSError **)error; + +/** + Compare the receiver's binary value with another (e.g. an earlier version) to + create a binary delta. + + @param binary The original to which the delta should be able to be applied in + order to generate the value represented by the receiver. + + @return A binary delta representing the difference between binary and the + receiver. + + @exception NSInvalidArgumentException Raised if the binary argument is `nil`. + + @since 5.9 + */ +-(PTDiffusionBinaryDelta *)diffFromBinary:(PTDiffusionBinary *)binary; + +/** + A request that can be used to send this value using messaging. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRequest* request; + +/** + A response that can be used to send this value using messaging. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionResponse* response; + +/** + An update constraint requiring the current value of a topic to match this + value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; + +/** + Creates a value stream capable of receiving binary values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ ++(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving binary time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving Binary requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving Binary requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving Binary responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; + +/** + Compares the receiver to the given binary. + + @param binary The binary object with which to compare the receiver. + + @return `YES` if the data in binary is equal to the contents of the receiver, otherwise `NO`. + + @note Two binary objects are equal if they hold the same number of data bytes, and if the + bytes at the same position in the objects are the same. + + @since 5.9 + */ +-(BOOL)isEqualToBinary:(nullable PTDiffusionBinary *)binary; + +@end + +/** + @brief Extension adding support for responding to requests using Binary values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionBinary) + +/** + Dispatch a response to a request. + + @param binary The value to send in response. + + @exception NSInvalidArgumentException Raised if the binary argument is `nil`. + + @since 6.0 + */ +-(void)respondWithBinary:(PTDiffusionBinary *)binary; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a binary response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionBinary) + +/** + Send a request for which a binary response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a binary response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using binary values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionBinary) + +/** + Update a time series topic by appending a new binary value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + binaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + + +/** + Update a time series topic by appending a new binary value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + binaryValue:(PTDiffusionBinary *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new binary value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + binaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have binary values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + binaryCompletionHandler:(void (^)(PTDiffusionBinaryTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with Binary. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionBinary) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with Binary. + + The Binary data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as Binary will be + removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchBinaryValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionBinaryFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with binary values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionBinary) + +/** + Sets a topic to a specified binary value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toBinaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified binary value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toBinaryValue:(PTDiffusionBinary *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a binary value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toBinaryValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToBinaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a binary value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setTopicWithPath:toBinaryValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToBinaryValue:(PTDiffusionBinary *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + +/** + Creates an update stream to use for updating a specific topic with binary + values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint; + +/** + Creates an update stream to use for creating and updating a specific topic with + binary values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification; + +/** + Creates an update stream to use for creating and updating a specific topic with + binary values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint; + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h new file mode 100644 index 0000000..ddd2be4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable delta describing the differences between two binary values. + + A `diff` of two binary values creates a binary delta. The binary delta can + later `apply` to the first value to calculate the second value. + + @since 5.9 + */ +@interface PTDiffusionBinaryDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Whether the two values used to create this instance are different. + + @since 5.9 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +/** + Compares the receiver to the given binary delta. + + @param binaryDelta The binary delta object with which to compare the receiver. + + @return `YES` if the data in binary delta is equal to the contents of the receiver, otherwise `NO`. + + @note Two binary delta objects are equal if they carry the same information. + + @since 5.9 + */ +-(BOOL)isEqualToBinaryDelta:(nullable PTDiffusionBinaryDelta *)binaryDelta; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h new file mode 100644 index 0000000..61cc708 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinaryFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a binary fetch operation issued to the + server. + + A binary fetch operation is issued using the + PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionBinaryFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * binaryResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h new file mode 100644 index 0000000..42e3874 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a binary fetch operation for a single + selected topic. + + A binary fetch operation is issued using the + PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionBinaryFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) PTDiffusionBinary* binary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h new file mode 100644 index 0000000..f6ee77f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Binary messaging requests with a + handler registered at the server. + + @see PTDiffusionBinary + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionBinaryRequestDelegate + +/** + Called when a Binary request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param binary The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithBinary:(PTDiffusionBinary *)binary + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h new file mode 100644 index 0000000..7cd0178 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Binary messaging requests. + + @see PTDiffusionBinary + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionBinaryRequestStreamDelegate + +/** + Called when a Binary request has been received. + + @param stream The stream that received the request. + + @param binary The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithBinary:(PTDiffusionBinary *)binary + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h new file mode 100644 index 0000000..a5d0a93 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Binary messaging responses from + individual sessions. + + @see PTDiffusionBinary + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionBinarySessionResponseStreamDelegate + +/** + Called when a session responds to a request with a Binary. + + @param stream The stream that received the response. + + @param binary The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithBinary:(PTDiffusionBinary *)binary + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h new file mode 100644 index 0000000..cad83e5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as Binary. + + @since 6.0 + */ +@interface PTDiffusionBinaryTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The binary value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionBinary* binary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..f3ea38b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinaryTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + binary values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with binary values. + + @since 6.0 + */ +@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldBinaryEvent The previous event. If `nil` then this is the first event. + + @param newBinaryEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldBinaryEvent:(nullable PTDiffusionBinaryTimeSeriesEvent *)oldBinaryEvent + newBinaryEvent:(PTDiffusionBinaryTimeSeriesEvent *)newBinaryEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h new file mode 100644 index 0000000..ffd4a0d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinaryTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of binary time series events. + + @since 6.0 + */ +@interface PTDiffusionBinaryTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The binary time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* binaryEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h new file mode 100644 index 0000000..40fdcb4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + binary values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionBinaryUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionBinary* value; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either value or completionHandler is + `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h new file mode 100644 index 0000000..9294dcd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for binary + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for binary + topics. + + @see PTDiffusionBinary + + @since 5.9 + */ +@protocol PTDiffusionBinaryValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldBinary The previous value. If `nil` then this is the first value. + + @param newBinary The new value derived from the last update received from the + server. + + @since 5.9 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldBinary:(nullable PTDiffusionBinary *)oldBinary + newBinary:(PTDiffusionBinary *)newBinary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h new file mode 100644 index 0000000..a45cf1a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session tree branch mapping. + + Branch mappings belong to {@link PTDiffusionBranchMappingTable branch mapping tables}. + Each branch mapping is a pair of a {@link PTDiffusionSession session filter} and the + target topic tree branch that applies to sessions matching the filter. + + @see PTDiffusionSessionTreesFeature + + @since 6.7 + */ +@interface PTDiffusionBranchMapping : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The session filter. + */ +@property (nonatomic, readonly) NSString *sessionFilter; + +/** + The target branch in the topic tree for sessions matching the session filter + */ +@property (nonatomic, readonly) NSString *topicTreeBranch; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h new file mode 100644 index 0000000..33cea73 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionBranchMapping; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session tree branch mapping table. + + A branch mapping table is a list of {@link PTDiffusionBranchMapping branch mappings} + assigned to a session tree branch + + To create a branch mapping table, obtain a new a builder instance using + {@link PTDiffusionBranchMappingTableBuilder}, call + {@link PTDiffusionBranchMappingTableBuilder#addBranchMappingWithSessionFilter:targetPath: + addBranchMapping} for each branch mapping, then + {@link PTDiffusionBranchMappingTableBuilder#createTableForSessionTreeBranch: createTable}. + The result can then be sent to the server using + {@link PTDiffusionSessionTreesFeature#putBranchMappingTable: putBranchMappingTable} + + @see PTDiffusionSessionTreesFeature + + @since 6.7 + */ +@interface PTDiffusionBranchMappingTable : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The branch of the session tree to which this table is bound + */ +@property (nonatomic, readonly) NSString *sessionTreeBranch; + +/** + The branch mappings + */ +@property (nonatomic, readonly) NSArray *branchMappings; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h new file mode 100644 index 0000000..06c913c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionBranchMappingTable; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Builder for {@link PTDiffusionBranchMappingTable} instances. + + @see PTDiffusionSessionTrees + + @since 6.7 + */ +@interface PTDiffusionBranchMappingTableBuilder : NSObject + + ++(instancetype)new; + +-(instancetype)init; + + +/** + @brief Resets the builder. + + @return the builder + */ +-(instancetype)reset; + + +/** + @brief Add a new branch mapping. + + @param sessionFilter the session filter + + @param topicTreeBranch the target branch in the topic tree for sessions + matching the session filter + + @return the builder + */ +-(instancetype)addBranchMappingWithSessionFilter:(NSString *const)sessionFilter + topicTreeBranch:(NSString *const)topicTreeBranch; + + +/** + @brief Create a new {@link PTDiffusionBranchMappingTable}. + + @param sessionTreeBranch the session tree branch + + @return a branch mapping table + */ +-(PTDiffusionBranchMappingTable *) createTableForSessionTreeBranch:(NSString *const)sessionTreeBranch; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h new file mode 100644 index 0000000..9b0b121 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h @@ -0,0 +1,66 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A value that is internally represented as binary data. + + A bytes object is immutable. + + @since 5.9 + */ +@interface PTDiffusionBytes : NSObject + +/** + Returns a bytes object initialized with the given data. + + @param data A data object encapsulating the bytes. + + @return Bytes object initialized with the given data. + + @note Since Diffusion 5.9 this method has been moved from PTDiffusionContent + to this new super interface. + + @since 5.9 + */ +-(instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER; + +/** + The data encapsulated by the receiver. + + @note Since Diffusion 5.9 this property has been moved from PTDiffusionContent + to this new super interface. + + @since 5.9 + */ +@property(nonatomic, readonly, copy) NSData* data; + +/** + Compares the receiver to the given bytes. + + @param bytes The bytes object with which to compare the receiver. + + @return `YES` if the bytes are equal to the contents of the receiver, otherwise `NO`. + + @note Two bytes objects are equal if they hold the same number of bytes, and if the + bytes at the same position in the objects are the same. + + @since 5.9 + */ +-(BOOL)isEqualToBytes:(nullable PTDiffusionBytes *)bytes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h new file mode 100644 index 0000000..d11a077 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A cancellable handle to an asynchronous operation. + + @since 6.3 + */ +@protocol PTDiffusionCancellable + +/** + Attempts to cancel execution of the operation. Does nothing if the operation + has already completed, has already been cancelled, or could not be cancelled + for some other reason. + + @return If this attempt to cancel the operation was viable then `YES`, or if it + did nothing then `NO`. + + @since 6.3 + */ +-(BOOL)cancel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h new file mode 100644 index 0000000..77cb3a3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRemoteServer; +@class PTDiffusionRemoteServerConnectionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Interface for the result of checking the state + of a remote server + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionCheckRemoteServerResult : NSObject + + +/** + The remote server's connection state + + @since 6.5 + */ +@property (nonatomic, readonly) PTDiffusionRemoteServerConnectionState *state; + + +/** + Message from the server if the connection state for + the specified remote server is `failed` or `retrying`. + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *failureMessage; + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h new file mode 100644 index 0000000..824016f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h @@ -0,0 +1,388 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@protocol PTDiffusionSessionPropertiesDelegate; +@protocol PTDiffusionClientQueueEventListener; + +@class PTDiffusionSessionPropertiesListenerRegistration; +@class PTDiffusionRegistration; +@class PTDiffusionGetSessionPropertiesResult; +@class PTDiffusionSetSessionPropertiesResult; +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Client Control feature provides the ability for a client session + to control other client sessions. + + It allows for notifications of client sessions starting and closing as well + as the ability to manage client sessions (forcibly closing them etc). + + + ### Access control + + A session must have `PTDiffusionGlobalPermission#viewSession` permission to be able + to listen for notifications using `#addSessionPropertiesListener:forProperties:completionHandler:` + or `#getSessionProperties:forSession:completionHandler:` of other sessions + or listen for queue events. In addition, `PTDiffusionGlobalPermission#registerHandler` + permission is required to set a session properties listener or queue event handler. + + In order to perform operations that change a session's state (such as throttling, + conflating, or closing the session, or changing roles), both + `PTDiffusionGlobalPermission#viewSession` and PTDiffusionGlobalPermission#modifySession` + permission is required. + + + ### Accessing the feature + + This feature may be obtained from a `PTDiffusionSession` session as follows: +

+    
+        PTDiffusionClientControlFeature *clientControl = session.clientControl;
+    
+ 
+ + @since 6.5 + */ +@interface PTDiffusionClientControlFeature : PTDiffusionFeature + + +/** + @brief Register a listener that will be notified when client sessions are + opened, disconnected, reconnected, closed or when selected session + property values are updated. + + When a listener is first set, it will be called with the required + properties of all currently open client sessions. + The amount of data transferred from the server is proportional to + the number of connected clients and is potentially large. + The amount of data can be reduced using `requiredProperties` parameter. + + Each control session can register a single listener. When the listener is + no longer required, it may be closed using the + PTDiffusionSessionPropertiesListenerRegistration provided by the `completionHandler`. + To change the listener, the previous listener must first be closed. + + The `requiredProperties` parameter is used to select the property + values required. + + The requested property set controls the level of detail provided and + whether the listener is called for updates to sessions. + If no properties are requested, the listener is not called when + session properties are updated. + + @param listener the listener to be called with session notifications + + @param requiredProperties a list of required property keys. + See `PTDiffusionSession` for a full list of available fixed property keys. + To request no properties, supply an empty list. + To request all fixed properties, include + `PTDiffusionSession.allFixedProperties` as an entry. + In this case any other fixed property keys would be ignored. + To request all user properties, include + `PTDiffusionSession.allUserProperties` as an entry. + In this case any other user properties are ignored. + + @param completionHandler a completion handler than returns when the listener + has been registered, returning a `PTDiffusionSessionPropertiesListenerRegistration` + which can be used to unregister the listener. + + If the `registration` is nil. This could mean an error has occurred during the + registration process. These may include: + - SessionClosed, if the session is closed + - HandlerConflict, if the session has already registered a queue event handler + - Security, if the session does not have + `PTDiffusionGlobalPermission.registerHandler` permission and/or + `PTDiffusionGlobalPermission.viewSession` permission. + + @since 6.5 + */ +-(void)addSessionPropertiesListener:(id) listener + forProperties:(NSArray *) requiredProperties + completionHandler:(void (^)(PTDiffusionSessionPropertiesListenerRegistration * _Nullable registration, + NSError * _Nullable error)) completionHandler; + + +/** + @brief Query the server for property values of a specified client session. + + @param requiredProperties a list of required property keys. + See `PTDiffusionSession` for a full list of available fixed property keys. + To request no properties, supply an empty list. + To request all fixed properties, include `PTDiffusionSession.allFixedProperties` + as a key. + In this case any other fixed property keys would be ignored. + To request all user properties, include `PTDiffusionSession.allUserProperties` + as a key. + In this case any other user properties are ignored. + + @param sessionId identifies the client session + + @param completionHandler called with the response + + @since 6.5 + */ +-(void) getSessionProperties:(NSArray *) requiredProperties + forSession:(PTDiffusionSessionId *) sessionId + completionHandler:(void (^)(PTDiffusionGetSessionPropertiesResult * _Nullable result, + NSError * _Nullable error)) completionHandler; + + + +/** + @brief Send a request to the server to change the user-defined session + properties for a session. + + It is also permissible to change the values of the following fixed session + properties : + + - `$Country` - will be normalised to upper case + - `$Language` - will be normalised to lower case + - `$Latitude` - Invalid value will be set to "NaN" + - `$Longitude` - Invalid value will be set to "NaN" + + If values are provided for any other fixed session properties they will be ignored. + + @param properties the properties to change. Each entry in the map is a + property name and the new value. + If the value is `[NSNull null]`, any existing property with + that name will be removed (unless it is a fixed property). + Otherwise if the property name does not match any existing property, + that entry will be added as a new property (although properties starting + with `$` will be ignored). + + @param sessionId identifies the client session + + @param completionHandler a completion handler that is called when a response is received + from the server, returning the maps of session properties that were added + or updated. + + If the session properties were updated, the `result` will contain a map of + properties that changed with their previous values. + If no properties were changed, the map will be empty. + If any new properties were added, the values in the map will be `[NSNull null]` + to indicate that they do not have an old value. + + Otherwise, the `error` will contain an error. + Common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.5 + */ +-(void) setSessionProperties:(NSDictionary*) properties + forSession:(PTDiffusionSessionId *) sessionId + completionHandler:(void (^)(PTDiffusionSetSessionPropertiesResult * _Nullable result, + NSError * _Nullable error)) completionHandler; + + + +/** + @brief Send a request to the server to set all sessions that satisfy a session + filter with the new user-defined session properties. + + It is also permissible to change the values of the following fixed session + properties : + + - `$Country` - will be normalised to upper case + - `$Language` - will be normalised to lower case + - `$Latitude` - Invalid value will be set to "NaN" + - `$Longitude` - Invalid value will be set to "NaN" + + If values are provided for any other fixed session properties they will be ignored. + + @param properties the properties to change. + Each entry in the map is a property name and the new value. + If the value is `[NSNull null]`, any existing property with + that name will be removed (unless it is a fixed property). + Otherwise if the property name does not match any existing property, + that entry will be added as a new property (although properties starting + with `$` will be ignored). + + @param filter the session filter + + @param completionHandler a completion handler that is called when a response is received + from the server, returning the total number of sessions that were updated with + the filter. + + If `matches` is 0, the filter has not selected any session + If `matches` is -1, an `error` has occurred. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.5 + */ +-(void) setSessionProperties:(NSDictionary *) properties + usingFilter:(NSString *) filter + completionHandler:(void (^)(NSInteger matches, + NSError * _Nullable error)) completionHandler; + + +/** + @brief Close a client session. + + @param sessionId identifies the client session to close + + @param completionHandler a completion handler that is called then a response is received + from the server. + If the client session was closed successfully, the `error` will be nil + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)closeClientWithSessionId:(PTDiffusionSessionId *) sessionId + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + @brief Close all client sessions matching a given session filter. + + @param filter matches the set of client sessions to close. For details on + specifying session filters see `PTDiffusionSession`. + + @param completionHandler a completion handler that is called then a response is received + from the server. + If the operation is successful, `closedSessions` will contain the number of client + sessions that were closed and `error` will be nil. + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)closeClientWithFilter:(NSString *)filter + completionHandler:(void (^)(NSInteger closedSessions, NSError * _Nullable error)) completionHandler; + + +/** + @brief Sets the client session queue conflation policy. + + Each session begins with conflation enabled or disabled based on the + queue configuration of the connector it is using. This method allows + conflation to be enabled or disabled for specific sessions at runtime. + + Conflation is the process of merging or discarding topic updates queued + for a session to reduce the server memory footprint and network data. + Conflation needs to be enabled for a session and a policy configured for + the topic to have an effect. Policies are configured on a per-topic + basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. + + @param conflate `true` to enable conflation, `false` to disable conflation + + @param sessionId identifies the client session + + @param completionHandler a completion handler that is called when a response is received + from the server. If the conflation policy was updated for the identified session, + the error will be `nil`. + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)setQueueConflation:(BOOL)conflate forSession:(PTDiffusionSessionId *)sessionId + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + @brief Sets the queue conflation policy for all client sessions + matching a given session filter. + + Each session begins with conflation enabled or disabled based on the + queue configuration of the connector it is using. This method allows + conflation to be enabled or disabled for specific sessions at runtime. + + Conflation is the process of merging or discarding topic updates queued + for a session to reduce the server memory footprint and network data. + Conflation needs to be enabled for a session and a policy configured for + the topic to have an effect. Policies are configured on a per-topic + basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. + + @param conflate `true` to enable conflation, `false` to disable conflation + + @param filter matches the set of client sessions to close. For details on + specifying session filters see `PTDiffusionSession`. + + @param completionHandler a completion handler that is called when a response is received + from the server. If the conflation policy was updated for the identified session, + the error will be `nil`. + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)setQueueConflation:(BOOL)conflate withFilter:(NSString *)filter + completionHandler:(void (^)(NSInteger matchedSessions, NSError * _Nullable error)) completionHandler; + + +/** + @brief Register a delegate for client queue threshold events + + Each control session can register a single handler. When the handler is + no longer required, it may be closed using the `PTDiffusionRegistration` + provided by the completion handler. To set a different handler the + current handler must first be closed. For each event, the server will + select a single handler. + + The control session may choose to act upon queue events for a session by + activating conflation for the session. + + @param listener the queue handler listener to set + + @param completionHandler a completion handler than returns when the listener + has been registered, returning a `PTDiffusionRegistration` + which can be used to unregister the listener. + + If the `registration` is nil. This could mean an error has occurred during the + registration process. These may include: + - SessionClosed, if the session is closed + - HandlerConflict, if the session has already registered a queue event handler + - Security, if the session does not have + `PTDiffusionGlobalPermission.registerHandler` permission and/or + `PTDiffusionGlobalPermission.viewSession` permission. + + @since 6.6 + */ +-(void)setQueueEventHandler:(id)listener + completionHandler:(void (^)(PTDiffusionRegistration *registration, NSError * _Nullable error)) completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h new file mode 100644 index 0000000..91135ca --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h @@ -0,0 +1,77 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRegistration; +@class PTDiffusionClientQueuePolicy; +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Listener for client message queue events from the server. + + @see PTDiffusionClientControlFeature + + @since 6.6 + */ +@protocol PTDiffusionClientQueueEventListener + + +/** + Called when the message queue policy changes + + @param registration The message queue event listener registration for which this listener applies + + @param policy The new message queue policy for the session + + @param sessionId The session ID of the affected session + + @since 6.6 + */ +-(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration + didReportPolicyChange:(PTDiffusionClientQueuePolicy *)policy + forSession:(PTDiffusionSessionId *)sessionId; + + +/** + Called if the handler is closed. + + No further calls will be made to this handler. + + @param registration The message queue event listener registration for which this listener applies + + @since 6.6 + */ +-(void)diffusionQueueEventListenerRegistrationDidClose:(PTDiffusionRegistration *)registration; + + + +/** + Called in the event of a contextual error relating to this handler. + + No further calls will be made to this handler. + + @param registration The message queue event listener registration for which this listener applies. + + @param error The failure reason. + + @since 6.6 + */ +-(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration + didFailWithError:(NSError *)error; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h new file mode 100644 index 0000000..05e9a08 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h @@ -0,0 +1,40 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Policy for managing a client message queue. + + Conflation can be enabled or disabled. + + @since 6.6 + */ +@interface PTDiffusionClientQueuePolicy: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @return `YES` is conflation is enabled. + + @since 6.6 + */ +-(BOOL) isConflated; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h new file mode 100644 index 0000000..0cde947 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h @@ -0,0 +1,252 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Specifies the reason why a session has been closed + + This is used by the Client Control feature + + @since 6.5 + */ +@interface PTDiffusionCloseReason : PTDiffusionEnumeration + + +/** + The connection to the client was lost - possibly dropped by the + client. Recoverable. + + A client may be closed for many reasons that are presented as + CONNECTION_LOST. + + During a connection attempt, the connection can be lost. + The server might have received a connection or reconnection request + from a client already connected. + The server might have received a reconnection request without + a session Id. + The connection may not have been authorised because the credentials + are wrong. + The maximum number of clients might already be connected. + + Once connected, the connection can be lost for different reasons. + If the client closes its connection while the server is writing a + message to the client. With the chunked encoding based connection the + HTTP response is completed by the server. + If the client does not open a new request within a timeout, + the client will be closed. + If a poll request times out and the server finds that the connection + has already been closed by the client. + + @return Instance indicating the connection to the client was lost. + + @since 6.5 + */ ++(instancetype)connectionLost; + + +/** + An unexpected IO Exception occurred. Recoverable. + + While trying to perform an I/O operation an exception was generated. + This often means that a read was attempted from a closed TCP + connection. + + When handling SSL connections if there is a problem encrypting or + decrypting a message the client will be closed for this reason. + + @return Instance indicating an unexpected IO Exception occurred. + + @since 6.5 + */ ++(instancetype)ioException; + + +/** + The client had become unresponsive. + + The client has either failed to respond to a ping message in a timely + manner or the client has failed to open an HTTP poll for messages. + The client does not appear to be receiving messages. + + @return Instance indicating the client has become unresponsive. + + @since 6.5 + */ ++(instancetype)clientUnresponsive; + + +/** + The maximum outbound queue size was reached for the client. Not + recoverable. + + Messages sent to the client are placed in a queue. This queue has a + maximum allowed size. If the queue limit is reached the client is + closed and the queue discarded. The queue is intended to protect + against slow consumers, reaching the queue limit is taken to mean + that the client cannot keep up with the number of messages sent to + it. + + @return Instance indicating the maximum outbound queue size was reached + for the client. + + @since 6.5 + */ ++(instancetype)messageQueueLimitReached; + + +/** + The client requested close. Not recoverable. + + @return Instance indicating the client requested close. + + @since 6.5 + */ ++(instancetype)closedByClient; + +/** + The client sent a message that exceeded the maximum message size that + can be processed by the server. + + The server has a maximum message size that it can process on any + single connector. If a client sends a message larger than this the + server is unable to process it. When this happens the message is + discarded and the client is closed. + + @return Instance indicating the client send a message that exceeded the + server maximum message size. + + @since 6.5 + */ ++(instancetype)messageTooLarge; + + +/** + An internal error occurred. + + @return Instance indicating an internal error has occurred. + + @since 6.5 + */ ++(instancetype)internalError; + + +/** + An inbound message with an invalid format was received. + + A message received by the server is not a valid Diffusion message. + The server is unable to process this and closes the client that sent + it. + + @return Instance indicating an inbound message with an invalid format + was received. + + @since 6.5 + */ ++(instancetype)invalidInboundMessage; + + +/** + The client connection was aborted by the server, possibly because the + connection was disallowed. + + This is may be because the connection was disallowed. + Abort messages are also sent to clients that have unrecognised + client IDs. This may be because the server closed the client previously + but the client is unaware of this and tried to continue interacting + with the server. + + @return Instance indicating the client connection was aborted by + the server. + + @since 6.5 + */ ++(instancetype)aborted; + + +/** + Loss of messages from the client has been detected. + + For example, whilst waiting for the arrival of missing messages in + a sequence of messages a timeout has occurred. + + HTTP based transports use multiple TCP connections. This can cause + the messages to be received out of order. To reorder the messages + those sent to the server may contain a sequence number indicating the + correct order. + + If a message is received out of order there is a short time for the + earlier messages to be received. If the messages are not received in + this time the client is closed. + + Missing, invalid or duplicate sequence numbers will also close the + client for this reason. + + This cannot be recovered from as the client and the server are in + inconsistent states. + + @return Instance indicating loss of messages from the client + has been detected. + + @since 6.5 + */ ++(instancetype)lostMessages; + + +/** + The server is closing down. + + The client was closed as part of the server shutdown process. + + @return Instance indicating the server is closing down. + + @deprecated since 6.6 and will be removed in a future release. + + @since 6.5 + */ ++(instancetype)serverClosing __deprecated_msg("Will be removed in a future release"); + + +/** + Closed by a client session. + + A control session initiated the client close. + + @return Instance indicating the sessiion was closed by another + client session. + + @since 6.5 + */ ++(instancetype)closedByController; + + +/** + The session has failed over to a different Diffusion server. + + The session is still open but is now connected to a different + Diffusion server. This server has evicted its view of the session + from its set of local sessions. + + @return Instance indicating the session has failed over to a + different Diffusion server. + + @since 6.5 + */ ++(instancetype)failedOver; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h new file mode 100644 index 0000000..ae4e164 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRemoteServer; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Interface for the result from the creation of a remote server. + + This is used by the Remote Servers feature. + + @since 6.5 + */ +@interface PTDiffusionCreateRemoteServerResult : NSObject + + +/** + The remote server. + + @since 6.5 + */ +@property (nonatomic, readonly) PTDiffusionRemoteServer *remoteServer; + + +/** + Whether the response successfully creates a remote server or not. + + @since 6.5 + */ +@property (nonatomic, readonly, getter=isSuccess) BOOL success; + + +/** + The list of errors resulting from attempting to create a remote server. + + @since 6.5 + */ +@property (nonatomic, readonly) NSArray *errors; + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h new file mode 100644 index 0000000..365608d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h @@ -0,0 +1,82 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Credentials contain the proof material to support an authentication request. + + The server passes the credentials through to the configured authentication + handlers for interpretation. + + A credentials object is immutable. + + @see PTDiffusionSessionConfiguration + + @since 5.6 + */ +@interface PTDiffusionCredentials : NSObject + +/** + Returns a credentials object initialized with the given plain-text password to use as proof material. + + @param password The plain-text password to authenticate with. + + @return Credentials instance initialized with the given plain-text password. + + @since 5.6 + */ +-(instancetype)initWithPassword:(NSString *)password; + +/** + Returns a credentials object initialized with the given custom data to use as proof material. + + @param data The application-specific, custom credentials to authenticate with. + + @return Credentials instance initialized with the given custom data. + + @since 5.6 + */ +-(instancetype)initWithData:(NSData *)data; + +/** + Returns a credentials object initialized with an empty type and password. + + @return Credentials objects initialized with an empty type and password. + + @since 6.5 + */ ++(instancetype)noCredentials; + +/** + The data defining the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly) NSData *data; + +/** + Compares the receiver to the given credentials. + + @param credentials The credentials object with which to compare the receiver. + + @return `YES` if the receiver and the given credentials have the same type and data. + + @since 5.6 + */ +-(BOOL)isEqualToCredentials:(nullable PTDiffusionCredentials *)credentials; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h new file mode 100644 index 0000000..a1af9f6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes providing data type implementations. + + A data type is specified for a particular class (its value class). It provides + methods to convert values of the value class to and from binary. Diffusion + provides several data type implementations. + + A data type can optionally support incremental changes to values, represented + by one or more types of delta. + + @see PTDiffusionDataTypes + + @since 6.0 + */ +@protocol PTDiffusionDataType + +/** + The unique external identifier for this data type. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* typeName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h new file mode 100644 index 0000000..8821a4f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h @@ -0,0 +1,118 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionDataType; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Diffusion data type implementations. + + @since 6.0 + */ +@interface PTDiffusionDataTypes : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Data type that supports arbitrary binary data. + + @see PTDiffusionBinary + + @return Data type that supports arbitrary binary data. + + @since 6.0 + */ ++(id)binary; + +/** + Data type that supports double-precision floating point numbers (Eight-byte + IEEE 754) presented as `NSNumber` instances. + + The integer value is serialized as CBOR-format binary. A serialized value can + be read using the #json datatype. + + This data type does not support binary deltas but does support `nil` values. + + @return Data type that supports double-precision floating point numbers. + + @see PTDiffusionPrimitive + + @since 6.0 + */ ++(id)doubleFloat; + +/** + Data type that supports 64-bit, signed integer values presented as `NSNumber` + instances. + + The integer value is serialized as CBOR-format binary. A serialized value can + be read using the #json datatype. + + This data type does not support binary deltas but does support `nil` values. + + @return Data type that supports 64-bit, signed integer values. + + @see PTDiffusionPrimitive + + @since 6.0 + */ ++(id)int64; + +/** + Data type that supports JSON "JavaScript Object Notation", a lightweight + data-interchange format, serialized as CBOR-format binary. + + @return Data type that supports JSON values. + + @see PTDiffusionJSON + + @since 6.0 + */ ++(id)json; + +/** + Data type that supports string values presented as `NSString` instances. + + The string value is serialized as CBOR-format binary. A serialized value can be + read using the #json datatype. + + This data type supports binary deltas and `nil` values. + + @return Data type that supports string values. + + @see PTDiffusionPrimitive + + @since 6.0 + */ ++(id)string; + +/** + Data type that supports data in the form of records and fields. + + This data type supports binary deltas but does not support `nil` values. + + @return Data type that supports data in the form of records and fields. + + @see PTDiffusionRecordV2 + + @since 6.0 + */ ++(id)recordV2; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h new file mode 100644 index 0000000..9b8d5e5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received error messages at PTDiffusionLoggingLevel::warn level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultSessionResponseStreamDelegate : PTDiffusionDefaultStreamDelegate + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h new file mode 100644 index 0000000..d246a84 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received closure messages at PTDiffusionLoggingLevel::debug level and + error messages at PTDiffusionLoggingLevel::warn level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultStreamDelegate : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h new file mode 100644 index 0000000..a9f9a99 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received messages at PTDiffusionLoggingLevel::debug level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultSubscriberStreamDelegate : PTDiffusionDefaultStreamDelegate + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h new file mode 100644 index 0000000..04a802a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received messages at PTDiffusionLoggingLevel::debug level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultTopicNotificationListener : PTDiffusionDefaultStreamDelegate + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h new file mode 100644 index 0000000..cc32f47 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received closure messages at PTDiffusionLoggingLevel::debug level and + error messages at PTDiffusionLoggingLevel::warn level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultTopicTreeRegistrationDelegate : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h new file mode 100644 index 0000000..8513903 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Base class for objects offering a selection of predefined constant values. + + Classes inheriting from this class share more in common with Java's `enum` type than + they do with C's `enum` (even using Core Foundation's `NS_ENUM` macro) in that they + are object-based. Benefits of this include: + + - Ability to use `nil` in a meaningful way - e.g. to indicate 'not set'. + - Standard `description` method to aid logging clarity during debug sessions. + - Extensible to include additional properties. + + @since 5.7 + */ +@interface PTDiffusionEnumeration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns the constant values offered by this enumeration. + + @return the constant values offered by this enumeration. + + @since 5.7 + */ ++(NSSet *)elements; + +/** + Compares the receiver to the given enumeration. + + @param enumeration The enumeration object with which to compare the receiver. + + @return `YES` if the enumeration is equal to the receiver, otherwise `NO`. + + @since 5.7 + */ +-(BOOL)isEqualToEnumeration:(nullable PTDiffusionEnumeration *)enumeration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionError.h new file mode 100644 index 0000000..fb285ca --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionError.h @@ -0,0 +1,1183 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Key used in the `userInfo` dictionary of an array of NSError objects, having + the potential to convey more than one error encountered by an underlying + implementation. + + The associated value is an array of one or more NSError objects. + + @since 6.0 + */ +extern NSString *const PTDiffusionUnderlyingErrorsKey; + + +/** + @file PTDiffusionError.h + + Collection of errors that can be raised by the Apple Client SDK. + + Errors with values from 100 to 501 originate from the Diffusion server. + Remaining errors are unique to the Diffusion Apple Client SDK. + + @since 6.7 + */ +typedef NS_ENUM(NSInteger, PTDiffusionError) { + /** + * Communication with the server failed. + */ + PTDiffusionError_CommunicationFailure = 100, + + /** + * Communication with the server failed because the session is closed. + */ + PTDiffusionError_SessionClosed = 101, + + /** + * Communication with the server failed due to a service request timeout. + */ + PTDiffusionError_RequestTimeOut = 102, + + /** + * The request was rejected because the used principal has insufficient permissions. + */ + PTDiffusionError_AccessDenied = 103, + + /** + * The request was rejected because the requested service is unsupported for this client. + * @since 5.9 + */ + PTDiffusionError_Unsupported = 104, + + /** + * An application callback threw an exception. Check logs for more information. + * @since 5.9 + */ + PTDiffusionError_CallbackException = 105, + + /** + * An operation failed because invalid data was received. + * @since 6.0 + */ + PTDiffusionError_InvalidData = 106, + + /** + * The session does not exist on the server. + * @since 6.0 + */ + PTDiffusionError_NoSuchSession = 107, + + /** + * A datatype operation has failed due to incompatibility. + * @since 6.0 + */ + PTDiffusionError_IncompatibleDataType = 108, + + /** + * A message was not handled by the server. + * @since 6.0 + */ + PTDiffusionError_UnhandledMessage = 109, + + /** + * The cluster was repartitioning and the request could not be routed. + * @since 6.0 + */ + PTDiffusionError_ClusterRepartition = 110, + + /** + * A topic update could not be performed because the topic is managed by a component which prohibits external updates. + * @since 6.0 + */ + PTDiffusionError_IncompatibleState = 111, + + /** + * The cluster operation could not be routed. + * @since 6.0 + */ + PTDiffusionError_ClusterRouting = 112, + + /** + * A conflicting registration exists on the same branch of the topic tree. + * @since 6.5 + */ + PTDiffusionError_TopicTreeRegistrationConflict = 200, + + /** + * A conflicting registration exists. + */ + PTDiffusionError_HandlerConflict = 201, + + /** + * An invalid path was supplied. + */ + PTDiffusionError_InvalidPath = 202, + + /** + * Incompatible update. + */ + PTDiffusionError_IncompatibleUpdate = 500, + + /** + * Topic update failed. + */ + PTDiffusionError_UpdateFailed = 501, + + /** + * No topic was found. + */ + PTDiffusionError_NoSuchTopic = 9000, + + /** + * Topic is not a time series topic. + */ + PTDiffusionError_TopicIsNotTimeSeries = 9001, + + /** + * No times series event was found. + */ + PTDiffusionError_NoSuchEvent = 9002, + + /** + * A request has been rejected. + */ + PTDiffusionError_RejectedRequest = 9003, + + /** + * A topic could not be added because one already exists with a different specification. + */ + PTDiffusionError_TopicExistsMismatch = 9004, + + /** + * A topic could not be added because an invalid path was specified. + */ + PTDiffusionError_InvalidTopicPath = 9005, + + /** + * A topic could not be added because an invalid specification was supplied. + */ + PTDiffusionError_InvalidTopicSpecification = 9006, + + /** + * A topic could not be added because the topic would breach a licensing limit. + */ + PTDiffusionError_TopicLicenseLimit = 9007, + + /** + * A topic could not be added because an incompatible topic already exists at the specified path. + */ + PTDiffusionError_IncompatibleTopicExists = 9010, + + /** + * An unexpected error occurred when creating a topic. + */ + PTDiffusionError_UnexpectedTopicAddFailure = 9011, + + /** + * The topic update failed because the constraint was not satisfied. + */ + PTDiffusionError_UnsatisfiedConstraint = 9012, + + /** + * The topic update failed because the update stream is no longer valid. + */ + PTDiffusionError_InvalidUpdateStream = 9013, + + /** + * Parsing the JSON patch failed. + */ + PTDiffusionError_InvalidJsonPatch = 9014, + + /** + * The JSON patch failed to apply. This happens when attempting to parse an illegal CBOR value. + */ + PTDiffusionError_ApplyPatchFail = 9015, + + /** + * A remote server with the specified name already exists. + */ + PTDiffusionError_RemoteServerExists = 9016, + + /** + * An invalid branch mapping was supplied. + * @since 6.7 + */ + PTDiffusionError_InvalidBranchMappings = 9017, + + /** + * Overflow occurred during a function. + * @since 6.7 + */ + PTDiffusionError_Overflow = 20001, + + /** + * Error while deserializing information. + * @since 6.7 + */ + PTDiffusionError_DeserialisationError = 20002, + + /** + * Unexpected class detected when setting session properties. + * @since 6.7 + */ + PTDiffusionError_UnknownValueType = 20003, + + /** + * Unexpected value detected when setting session properties. + * @since 6.7 + */ + PTDiffusionError_UnexpectedValue = 20004, + + /** + * Invalid session filter. + * @since 6.7 + */ + PTDiffusionError_InvalidFilter = 20005, + + /** + * Unexpected encoding detected while deserialising data. + * @since 6.7 + */ + PTDiffusionError_UnknownEncoding = 20006, + + /** + * Unexpected value detected for enumeration in question. + * @since 6.7 + */ + PTDiffusionError_ValueNotInEnumeration = 20007, + + /** + * Error while serialising message from the transport layer. + * @since 6.7 + */ + PTDiffusionError_MessageSerialisationFailed = 20008, + + /** + * JSON cannot be encoded as JSON string due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_StringWillNotEncodeToUTF8Losslessly = 20009, + + /** + * Unable to read value as CBOR is empty. + * @since 6.7 + */ + PTDiffusionError_EmptyCBOR = 20010, + + /** + * Unhandled CBOR operation. + * @since 6.7 + */ + PTDiffusionError_UnhandledCBOR = 20011, + + /** + * Value has been read multiple times. + * @since 6.7 + */ + PTDiffusionError_SetReadValueCalledMultipleTimes = 20012, + + /** + * Unable to authenticate the principal, in the context of changing principal for the current session. + * @since 6.7 + */ + PTDiffusionError_AuthenticationFailure = 20013, + + /** + * An internal error occurred that prevented the session from creating the transport layer. + * @since 6.7 + */ + PTDiffusionError_SessionFailedToCreateTransport = 20014, + + /** + * Session has been closed by the transport layer. + * @since 6.7 + */ + PTDiffusionError_SessionClosedByTransport = 20015, + + /** + * Connection has been aborted by the reconnection strategy. + * @since 6.7 + */ + PTDiffusionError_ConnectionAbortedByReconnectionStrategy = 20016, + + /** + * Session has been closed due to inactivity. + * @since 6.7 + */ + PTDiffusionError_SessionClosedDueToInactivity = 20017, + + /** + * The received message type is not supported for routing. + * @since 6.7 + */ + PTDiffusionError_MessageTypeNotSupportedForRouting = 20018, + + /** + * Conversation ID was not found in the message headers. + * @since 6.7 + */ + PTDiffusionError_MessageHeadersMissingFetchConversationId = 20019, + + /** + * Reconnection has timed out. + * @since 6.7 + */ + PTDiffusionError_ReconnectionTimeout = 20020, + + /** + * Invalid string representation for session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdComponentCount = 20021, + + /** + * Invalid string representation for session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdCharacterCount = 20022, + + /** + * Invalid hex characters detected in session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdInvalidHexCharacters = 20023, + + /** + * Invalid value detected for token in session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdScanHigh = 20024, + + /** + * Invalid value detected for token in session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdScanLow = 20025, + + /** + * Session lock has been cancelled. + * @since 6.7 + */ + PTDiffusionError_SessionLockCancelled = 20026, + + /** + * Incompatible datatypes. + * @since 6.7 + */ + PTDiffusionError_DataTypeNotCompatible = 20027, + + /** + * Unable to deserialize required information from stream. + * @since 6.7 + */ + PTDiffusionError_StreamExhausted = 20028, + + /** + * Failed to create topic view. + * @since 6.7 + */ + PTDiffusionError_FailedToCreateTopicView = 20029, + + /** + * CBOR functionality is not supported. + * @since 6.7 + */ + PTDiffusionError_CBORNotSupported = 20030, + + /** + * Unexpected item detected while parsing CBOR. + * @since 6.7 + */ + PTDiffusionError_CBORUnexpectedItem = 20031, + + /** + * Unable to append object as the container is immutable. + * @since 6.7 + */ + PTDiffusionError_CBORImmutableContainer = 20032, + + /** + * No instructions were parsed by the CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORMissingCodec = 20033, + + /** + * Insufficient instructions were parsed by the CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORUnfinishedContainer = 20034, + + /** + * Unable to append more objects as the document is already set. + * @since 6.7 + */ + PTDiffusionError_CBORDocumentAlreadySet = 20035, + + /** + * A map entry in the CBOR is incomplete. + * @since 6.7 + */ + PTDiffusionError_CBORIncompleteMapEntry = 20036, + + /** + * Unable to support 64-bit CBOR encoding in the current environment. + * @since 6.7 + */ + PTDiffusionError_CBOR64BitUnsupportedOnThisRuntime = 20037, + + /** + * Value is out of range. + * @since 6.7 + */ + PTDiffusionError_OutOfRange = 20038, + + /** + * Provided additional information was unhandled. + * @since 6.7 + */ + PTDiffusionError_CBORUnhandledInfoValue = 20039, + + /** + * Unable to parse string due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_CBORInvalidUTF8 = 20040, + + /** + * Parsing of a particular type is unhandled. + * @since 6.7 + */ + PTDiffusionError_CBORParsingUnhandledType = 20041, + + /** + * Unable to serialize a type using CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORSerialisationUnhandledType = 20042, + + /** + * Unable to serialize a class using CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORSerialisationUnhandledClass = 20043, + + /** + * Maximum recursion depth reached while running CBOR serialisation. + * @since 6.7 + */ + PTDiffusionError_CBORSerialisationMaximumRecursionDepthExceeded = 20044, + + /** + * Unexpected item detected while parsing the binary delta. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaUnexpectedItem = 20045, + + /** + * Unsupported item for the purposes of binary delta parsing. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaUnsupportedItem = 20046, + + /** + * Binary delta parsing is expecting the size of the copy. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaPendingCopyLength = 20047, + + /** + * Binary delta parsing is expecting a break. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaPendingBreak = 20048, + + /** + * Value is out of range for the current runtime environment. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaOutOfRangeForRuntime = 20049, + + /** + * Delegate was not found. + * @since 6.7 + */ + PTDiffusionError_DelegateNotFound = 20050, + + /** + * Multiple topic constraints found. + * @since 6.7 + */ + PTDiffusionError_MultipleTopicConstraintsFound = 20051, + + /** + * Insufficient data for complete deserialisation. + * @since 6.7 + */ + PTDiffusionError_ConnectionResponseInsufficientData = 20052, + + /** + * Unknown value detected for a given field. + * @since 6.7 + */ + PTDiffusionError_ConnectionResponseUnknownValue = 20053, + + /** + * The service is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_InvalidState = 20054, + + /** + * Topic cache does not have enough information to resolve the received delta. + * @since 6.7 + */ + PTDiffusionError_NoOldValueToApplyDeltaTo = 20055, + + /** + * Topic cache does not have enough information to resolve the received delta type. + * @since 6.7 + */ + PTDiffusionError_NoDeltaTypeAvailable = 20056, + + /** + * Encoding of message headers to string failed. + * @since 6.7 + */ + PTDiffusionError_MessageHeadersToStringEncodingFailed = 20057, + + /** + * Unknown message type. + * @since 6.7 + */ + PTDiffusionError_UnknownMessageType = 20058, + + /** + * Update Stream has an invalid value set for its datatype. + * @since 6.7 + */ + PTDiffusionError_UpdateStreamInvalidNilValue = 20059, + + /** + * Unable to convert received class into expected class. + * @since 6.7 + */ + PTDiffusionError_UnsupportedValueClass = 20060, + + /** + * Unexpected type received. + * @since 6.7 + */ + PTDiffusionError_UnhandledTypeReceived = 20061, + + /** + * Unexpected string start detected. + * @since 6.7 + */ + PTDiffusionError_UnexpectedStringStart = 20062, + + /** + * Unexpected break detected. + * @since 6.7 + */ + PTDiffusionError_UnexpectedBreak = 20063, + + /** + * Unknown datatype for received name. + * @since 6.7 + */ + PTDiffusionError_UnknownDataTypeName = 20064, + + /** + * Received topic data which contradicts the topic cache. + * @since 6.7 + */ + PTDiffusionError_DataLossTopicPathNotInCache = 20065, + + /** + * Topic path is already present in the topic cache. + * @since 6.7 + */ + PTDiffusionError_InvalidSequenceOnCheckByPath = 20066, + + /** + * Topic id is already present in the topic cache. + * @since 6.7 + */ + PTDiffusionError_InvalidSequenceOnCheckById = 20067, + + /** + * Unable to generate notifier from stream. + * @since 6.7 + */ + PTDiffusionError_UnableToGenerateNotifier = 20068, + + /** + * Stream registry is closed. + * @since 6.7 + */ + PTDiffusionError_StreamRegistryClosed = 20069, + + /** + * Buffered data reader has been requested while transport layer is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_BufferedDataReaderRequestInvalidState = 20070, + + /** + * Connection response received while transport layer is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_ConnectionResponseInvalidState = 20071, + + /** + * Message received while transport layer is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_MessageReceivedInvalidState = 20072, + + /** + * Error occurred for unknown reason. + * @since 6.7 + */ + PTDiffusionError_UnknownReason = 20073, + + /** + * Error occurred while appending data to the HTTP message. + * @since 6.7 + */ + PTDiffusionError_HTTPMessageAppendDataError = 20074, + + /** + * Invalid status code received. + * @since 6.7 + */ + PTDiffusionError_InvalidStatusCode = 20075, + + /** + * Authentication challenge handler is not set. + * @since 6.7 + */ + PTDiffusionError_MissingAuthenticationChallengeHandler = 20076, + + /** + * Maximum number of conversations has been reached. + * @since 6.7 + */ + PTDiffusionError_MaximumConversationsReached = 20077, + + /** + * Invalid start of a JSON pointer expression. + * @since 6.7 + */ + PTDiffusionError_JsonPointerExpressionInvalidStart = 20078, + + /** + * Failed to write to stream. + * @since 6.7 + */ + PTDiffusionError_FailedWriteToStream = 20079, + + /** + * Unknown stream error. + * @since 6.7 + */ + PTDiffusionError_UnknownStreamError = 20080, + + /** + * Failed to verify SSL. + * @since 6.7 + */ + PTDiffusionError_FailedToVerifySSL = 20081, + + /** + * Maximum message queue exceeded when writing to stream. + * @since 6.7 + */ + PTDiffusionError_WriteFailedMaxQueueSize = 20082, + + /** + * Failed to write to stream of fixed size or reached capacity. + * @since 6.7 + */ + PTDiffusionError_WriteFailedFixedSize = 20083, + + /** + * Failed to enable SSL. + * @since 6.7 + */ + PTDiffusionError_FailedToEnableSSL = 20084, + + /** + * Failed to configure SSL. + * @since 6.7 + */ + PTDiffusionError_FailedToConfigureSSL = 20085, + + /** + * Connection timeout. + * @since 6.7 + */ + PTDiffusionError_ConnectionTimeout = 20086, + + /** + * Unexpected HTTP response code. + * @since 6.7 + */ + PTDiffusionError_UnexpectedHttpResponseCode = 20087, + + /** + * Unexpected HTTP response header value. + * @since 6.7 + */ + PTDiffusionError_UnexpectedHttpResponseHeaderValue = 20088, + + /** + * Unexpected frame operation code. + * @since 6.7 + */ + PTDiffusionError_UnexpectedFrameOperationCode = 20089, + + /** + * Maximum payload length exceeded. + * @since 6.7 + */ + PTDiffusionError_MaximumPayloadLengthExceeded = 20090, + + /** + * Connection is closed. + * @since 6.7 + */ + PTDiffusionError_ConnectionClosed = 20091, + + /** + * Invalid frame start. + * @since 6.7 + */ + PTDiffusionError_InvalidFrameStart = 20092, + + /** + * Payload data is masked. + * @since 6.7 + */ + PTDiffusionError_MaskedPayloadData = 20093, + + /** + * Unable to support 64-bit encoding in the current environment. + * @since 6.7 + */ + PTDiffusionError_64BitNotSupportedForRuntime = 20094, + + /** + * Failed to initialize compression stream. + * @since 6.7 + */ + PTDiffusionError_ZlibInitFailed = 20095, + + /** + * Failed to process compression. + * @since 6.7 + */ + PTDiffusionError_ZlibProcessFailed = 20096, + + /** + * Failed to destroy compression stream. + * @since 6.7 + */ + PTDiffusionError_ZlibDestroyFailed = 20097, + + /** + * Compressed data is too small. + * @since 6.7 + */ + PTDiffusionError_ZlibCompressedDataTooSmall = 20098, + + /** + * Compressed data header is incorrect. + * @since 6.7 + */ + PTDiffusionError_ZlibCompressedDataHeaderIncorrect = 20099, + + /** + * Last record is not variable. + * @since 6.7 + */ + PTDiffusionError_LastRecordIsNotVariable = 20100, + + /** + * Last record has reached maximum occurrences. + * @since 6.7 + */ + PTDiffusionError_LastRecordHasReachedMaximumOccurrences = 20101, + + /** + * Last record has no occurrences to add field to. + * @since 6.7 + */ + PTDiffusionError_LastRecordHasNoOccurrencesToAddFieldTo = 20102, + + /** + * Last field is not variable. + * @since 6.7 + */ + PTDiffusionError_LastFieldIsNotVariable = 20103, + + /** + * Adding values would exceed maximum field occurrences. + * @since 6.7 + */ + PTDiffusionError_AddingValuesWouldExceedMaximumFieldOccurrences = 20104, + + /** + * Removal would violate the minimum number of occurrences. + * @since 6.7 + */ + PTDiffusionError_RemovalWouldViolateTheMinimumNumberOfOccurrences = 20105, + + /** + * Formatter failed to generate field. + * @since 6.7 + */ + PTDiffusionError_FormatterFailedToGenerate = 20106, + + /** + * String contains invalid characters. + * @since 6.7 + */ + PTDiffusionError_InvalidCharactersInString = 20107, + + /** + * Operation has resulted in an error. + * @since 6.7 + */ + PTDiffusionError_OperationError = 20108, + + /** + * String cannot be encoded due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_EncodeFromUTF8Error = 20109, + + /** + * Data cannot be decoded into string due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_DecodeToUTF8Error = 20110, + + /** + * Field key's name is missing. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyMissingName = 20111, + + /** + * Field key is missing a closing bracket. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyMissingClosingBracket = 20112, + + /** + * Characters found after closing bracket. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyCharactersFoundAfterClosingBracket = 20113, + + /** + * Index in key could not be parsed. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyIndexCouldNotBeParsed = 20114, + + /** + * The key has too many parts. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyTooManyKeyParts = 20115, + + /** + * The total number of records is less than the minimum required. + * @since 6.7 + */ + PTDiffusionError_InsufficientRecords = 20116, + + /** + * The total number of records exceeds the maximum allowed. + * @since 6.7 + */ + PTDiffusionError_TooManyRecords = 20117, + + /** + * The total number of fields is less than the minimum required. + * @since 6.7 + */ + PTDiffusionError_InsufficientFields = 20118, + + /** + * The model size exceeds the maximum size. + * @since 6.7 + */ + PTDiffusionError_RecordModelTooBig = 20119, + + /** + * The record size exceeds the maximum size. + * @since 6.7 + */ + PTDiffusionError_RecordTooBig = 20120, + + /** + * The total number of fields exceeds the maximum allowed. + * @since 6.7 + */ + PTDiffusionError_TooManyFields = 20121, + + /** + * The record size exceeds the maximum size. + * @since 6.7 + */ + PTDiffusionError_ResolvedRecordIndexExceedsModelSize = 20122, + + /** + * The total number of fields exceeds the maximum allowed. + * @since 6.7 + */ + PTDiffusionError_ResolvedFieldIndexExceedsModelSize = 20123, + + /** + * Root of the JSON is not a dictionary. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaRootIsNotObject = 20124, + + /** + * Value in JSON is not a string. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaNameIsNotString = 20125, + + /** + * Value in JSON is not a dictionary. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaValueIsNotObject = 20126, + + /** + * Value in JSON is not a number. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaValueIsNotNumber = 20127, + + /** + * Record has no fields. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaRecordHasNoFields = 20128, + + /** + * Value in JSON is not an array. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaValueIsNotArray = 20129, + + /** + * Records not found. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldRecordsNotDefined = 20130, + + /** + * Cannot find field with given name. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaCannotFindField = 20131, + + /** + * Record name is not defined. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaRecordNameNotDefined = 20132, + + /** + * Field name is not defined. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldNameNotDefined = 20133, + + /** + * Key is not a string. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaKeyIsNotString = 20134, + + /** + * Unknown key. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaUnknownKey = 20135, + + /** + * Record not found. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaUnknownRecordName = 20136, + + /** + * Need to add a record before adding the fields. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderNoCurrentRecord = 20137, + + /** + * Field already exists with the same name. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderDuplicateFieldName = 20138, + + /** + * Cannot add a field after a variable multiplicity field. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderFieldAfterVariableMultiplicityField = 20139, + + /** + * There are no fields for the current record. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderEmptyFields = 20140, + + /** + * Records are empty. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderEmptyRecords = 20141, + + /** + * Record already exists with the same name. + */ + PTDiffusionError_RecordBuilderDuplicateRecordName = 20142, + + /** + * The scale is not positive. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaScaleNotPositive = 20143, + + /** + * Field is negative. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaNegativeField = 20144, + + /** + * Field is invalid. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaInvalidField = 20145, + + /** + * The string supplied has been encoded incorrectly. + * @since 6.2 + */ + PTDiffusionError_MisquotedInput = 20146, + + /** + * The filter was rejected. The message was not sent to any clients. + * @since 6.5 + */ + PTDiffusionError_SendToFilterRejected = 20147, + + /** + * The session was closed after being unexpectedly disconnected. + * @since 6.0 + */ + PTDiffusionError_Disconnected = 20148, + + /** + * The session was closed locally. + * @since 6.0 + */ + PTDiffusionError_ClosedByClient = 20149, + + /** + * There was a problem when establishing a session. The session is closed. No further operations are possible. + * @since 6.0 + */ + PTDiffusionError_Establishment = 20150, + + /** + * The session operation failed due to a security constraint. Repeating the operation with the same security credentials is likely to fail. + * @since 6.0 + */ + PTDiffusionError_Security = 20151, + + /** + * The session operation failed due to an unrecognized response code. + * @since 6.3 + */ + PTDiffusionError_UnrecognizedResponseCode = 20152, + + /** + * The session was closed remotely. + * @since 6.6 + */ + PTDiffusionError_ClosedByServer = 20153, + + /** + * Server unexpectedly aborted. + * @since 6.0 + */ + PTDiffusionError_ServerAborted = 20154, + + /** + * Dictionary does not contain requested key. + * @since 6.7 + */ + PTDiffusionError_KeyNotFoundInDictionary = 20155, + + /** + * Update Stream recovery buffer limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamBuffer = 20156, + + /** + * Update Stream recovery attempt limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamRecoveryLimit = 20157, + + /** + * Failed to serialise value. + @since 6.9 + */ + PTDiffusionError_ValueSerialisation = 20158, + + /** + * Invalid Protocol Version. + * @since 6.9 + */ + PTDiffusionError_ClientVersionDowngrade = 20159, + + /** + * Invalid argument for the method. + * @since 6.9 + */ + PTDiffusionError_InvalidArgument = 20160, + +}; + +NS_ASSUME_NONNULL_END + diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h new file mode 100644 index 0000000..a5b575b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes wishing to listen to error notifications. + + Error reports indicate that an unexpected condition has occurred. + They are used sparingly. Error conditions that occur in the context of an API + operation and that an application can reasonably handle are reported to + operation-specific delegates or completion handlers, not as error reports. + + A client can typically do nothing about an error report other than to report it + for diagnosis. The server log should be examined for further information. + + @note The PTDiffusionSessionErrorHandler protocol was deprecated in 5.9 and + removed in 6.0. + + @since 6.0 + */ +@protocol PTDiffusionErrorListener + +/** + Called when an error has been reported. + + @param error The error that was reported. + + @since 6.0 + */ +-(void)diffusionDidReportError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h new file mode 100644 index 0000000..38f926d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h @@ -0,0 +1,43 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A feature is a unit of functionality that is available to a client session. + + This is the base interface for features that may be added directly to a client session. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionFeature : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The session associated with the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly, weak) PTDiffusionSession* session; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h new file mode 100644 index 0000000..5bb54e9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h @@ -0,0 +1,428 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionFetchResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A parameterised query that can be used to search the topic tree. + + A new request can be created using the `fetchRequest` + method and modified to specify a range of topics and/or + various levels of detail. The request can then be issued to the server + using the `fetch` method + supplying a topic selector which specifies the selection of topics. The + results are returned via a `completionHandler`. + + As a minimum, the path and type of each selected topic will be returned. + It is also possible to request that the topic values + and/or properties are returned. + + The topics selected by the topic selector can be further restricted by + range. A range is defined by a start path and an end path, and contains + all paths in-between in path order. Given a topic tree containing the + topics: + +
+    a, a/b, a/c, a/c/x, a/c/y, a/d, a/e, b, b/a/x, b/b/x, c
+ 
+ + the range from `a/c/y` to `b/a/x` includes the topics with + paths: + +
+    a/c/x, a/c/y, a/d, a/e, b, b/a/x
+ 
+ + The start point of a range can be specified using #fromTopicPath: or + #afterTopicPath: and an end point using #toTopicPath: or #beforeTopicPath:. + #fromTopicPath: and #toTopicPath: include any topic with the specified path in + the selection, whereas #afterTopicPath: and #beforeTopicPath: are non-inclusive + and useful for paging through a potentially large range of topics. If no start + point is specified, the start point is assumed to be the logical beginning of + the topic tree. Similarly, if no end point is specified, the end point is the + logical end of the topic tree. Ranges should be within the scope indicated by + the topic selector used when issuing the fetch. + + As a minimum, the path and type of each topic selected will be returned. It is + also possible to request that the topic values and/or properties are returned. + + The topic types selected are naturally constrained by the data type indicated + when the fetch is requested. So if + PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: + is used, only PTDiffusionTopicType_String topics will be selected. However, if + PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: + is used, all types compatible with PTDiffusionJSON will be selected including + PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 and + PTDiffusionTopicType_Double. + + To select topic types when values are not required, or to further constrain the + selection when values are required, it is also possible to specify exactly + which topic types to select. + + A limit on the number of results returned can be specified using #first:. This + is advisable when the result set could potentially be large. When such a limit + is used then the result will indicate whether more results for the same + selection would be available via the PTDiffusionFetchResult#more property. + + The request can be sent to the server using one of the fetch methods provided + by data type extensions. Results are returned in path order, earliest path + first, starting from the beginning of any range specified. + + It is also possible to request results from the end of the range indicated by + specifying a limit to the number of results using #last:. This returns up to + the specified number of results from the end of the range, in path order. This + is useful for paging backwards through a range of topics. + + Routing topics are **not** supported, and if encountered will be ignored (i.e. + treated as if they did not exist). + + Instances of this class are immutable and can be safely shared and reused. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Specifies a logical start point within the topic tree. + + If specified, only results for topics with a path that is lexically 'after' the + specified path will be returned. + + This is the non-inclusive equivalent of #fromTopicPath: and if used will + override any previous #fromTopicPath: or #afterTopicPath: constraint. + + @param topicPath The topic path after which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics after the specified path (not inclusive). + + @since 6.2 + */ +-(instancetype)afterTopicPath:(NSString *)topicPath; + +/** + Specifies a logical end point within the topic tree. + + If specified, only results for topics with a path that is lexically 'before' + the specified path will be returned. + + This is the non-inclusive equivalent of #toTopicPath: and if used will override + any previous #toTopicPath: or #beforeTopicPath: constraint. + + @param topicPath The topic path before which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics before the specified path (not inclusive). + + @since 6.2 + */ +-(instancetype)beforeTopicPath:(NSString *)topicPath; + +/** + Specifies a logical start point within the topic tree. + + If specified, only results for topics with a path that is lexically equal to or + 'after' the specified path will be returned. + + This is the inclusive equivalent of #afterTopicPath: and if used will override + any previous #afterTopicPath: or #fromTopicPath: constraint. + + @param topicPath The topic path from which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics from the specified path onwards (inclusive). + + @since 6.2 + */ +-(instancetype)fromTopicPath:(NSString *)topicPath; + +/** + Specifies a logical end point within the topic tree. + + If specified, only results for topics with a path that is lexically equal to or + 'before' the specified path will be returned. + + This is the inclusive equivalent of #beforeTopicPath: and if used will override + any previous #beforeTopicPath: or #toTopicPath: constraint. + + @param topicPath The topic path to which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics including and before the specified path (inclusive). + + @since 6.2 + */ +-(instancetype)toTopicPath:(NSString *)topicPath; + +/** + Specifies that all properties associated with each topic's + PTDiffusionTopicSpecification should be returned. + + @return A new fetch request derived from this fetch request but specifying that + topic specification properties should be returned. + + @since 6.2 + */ +-(instancetype)withProperties; + + +/** + Include the details of reference topics that are not yet published. + + Topic views that use the {@code delay by} clause + create reference topics in an unpublished state. The topics are + published once the delay time has expired. A topic in the + unpublished state prevents a lower priority topic view from creating + a reference topic with the same path. + + A reference topic in the unpublished state which matches the query + will only be included in the fetch results if the session has + {@code PTDiffusionPathPermission.readTopic} permission for the + reference's source topic as well as {@code PTDiffusionPathPermission.readTopic} + permission for the reference topic. Requiring {@code PTDiffusionPathPermission.readTopic} + permission for the source topic ensures less privileged sessions + cannot derive information from the existence of the reference topic + before the delay time has expired. + + @return a new fetch request derived from this fetch request, + additionally specifying that unpublished reference topics + should be included in the results + + @since 6.5 + */ +-(instancetype)withUnpublishedDelayedTopics; + + +/** + Specifies a maximum number of topic results to be returned from the start of + the required range. + + If this is not specified, the number of results returned will only be limited + by other constraints of the request. + + This should be used to retrieve results in manageable batches and prevent very + large result sets. + + If there are potentially more results that would satisfy the other constraints, + then the fetch result will indicate so via the PTDiffusionFetchResult#hasMore + property. + + Either this or #last: may be specified. This will therefore override any + previous #last: or #first: constraint. + + @param number The maximum number of results to return from the start of the + range. + + @return A new fetch request derived from this fetch request but selecting only + the number of topics specified from the start of the range. + + @exception NSInvalidArgumentException if number is greater than `INT32_MAX`. + + @since 6.2 + */ +-(instancetype)first:(UInt32)number; + +/** + Specifies a maximum number of topic results to be returned from the end of the + required range. + + This is similar to #first: except that the specified number of results are + returned from the end of the range. This is useful for paging backwards through + a range of topics. Results are always returned in topic path order (not reverse + order). + + Either this or #first: may be specified. This will therefore override any + previous #first: or #last: constraint. + + @param number The maximum number of results to return from the end of the + range. + + @return A new fetch request derived from this fetch request but selecting only + the number of topics specified from the end of the range. + + @exception NSInvalidArgumentException if number is greater than `-INT32_MIN`. + + @since 6.2 + */ +-(instancetype)last:(UInt32)number; + +/** + Specifies the maximum data size of the result set. + + This may be used to constrain the size of the result. If not specified then by + default the maximum message size for the session (as specified by + PTDiffusionSessionConfiguration#maximumMessageSize ) is used. + + @param size The maximum size of the result set in bytes. If a value greater + than the session's maximum message size is specified, the maximum message size + will be used. + + @return A new fetch request derived from this fetch request but constraining + the size of the result to the specified maximum. + + @exception NSInvalidArgumentException if size is greater than `INT32_MAX`. + + @since 6.2 + */ +-(instancetype)maximumResultSize:(UInt32)size; + +/** + Specifies that only topics of the specified topic types should be returned. + + If this is not specified, #allTypes will be returned (unless constrained by + value data type). + + If the specified topic type matches the event type of a time series topic, + it will also be returned. The value will be delivered without the associated + metadata. To specify all time series topics use {@link + PTDiffusionTopicType_TimeSeries}. + + This may be used instead to further constrain the results when already + constraining by values. For example, you can use + PTDiffusionFetchRequest#withJSONValues then specify PTDiffusionTopicType_JSON + here to ensure that only JSON topics are returned and not those topics that are + logically value subtypes of JSON (e.g. PTDiffusionTopicType_String). + + If already constraining by value data type then the topic types specified here + must be compatible with the value class specified or the event type for time + series topics. + + PTDiffusionTopicType_Routing may not be specified. + + @param topicTypes Topic types to be selected, boxed as NSNumber instances. + + @return A new fetch request derived from this fetch request but specifying that + only topics of the specified topic types should be returned. + + @throws IllegalArgumentException if invalid topic types are specified + + @since 6.2 + */ +-(instancetype)topicTypes:(NSSet *)topicTypes; + +/** + Specifies a limit on the number of results returned for each deep + branch. + + A deep branch has a root path that has a number of parts equal to the + `deep_branch_depth` parameter. The `deep_branch_limit` specifies the + maximum number of results for each deep branch. + + This method is particularly useful for incrementally exploring a + topic tree from the root, allowing a breadth-first search strategy. + + For example, given a topic tree containing the topics with the + following paths: + +
+ x/0
+ x/x/1
+ x/x/x/2
+ y/y/y/y/3
+ y/y/y/4
+ z/5
+ z/z/6
+ 
+ + Then + +
+ PTDiffusionFetchRequest *const request =
+ [session.topics.fetchRequest limitDeepBranches:1
+                                          limit:1];
+
+ [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
+                                     completionHandler:
+ ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
+ 
+ + will return results with the paths `x/0`, `y/y/y/y/3`, + and `z/5`. The application can then determine the roots of the + tree are `x`, `y`, and `z`. + + The `deepBranchLimit` parameter can usefully be set to + `0`. For example, given the same example topic tree, + +
+ PTDiffusionFetchRequest *const request =
+ [session.topics.fetchRequest limitDeepBranches:3
+                                          limit:0];
+
+ [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
+                                     completionHandler:
+ ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
+ 
+ + will only return results having paths with fewer than three parts; + namely `x/0`, and `z/5`. + + The fetch result does not indicate whether this option caused some + results to be filtered from deep branches. It has no affect on the + ` result. If the result set + contains `deepBranchLimit` results for a particular deep + branch, some topics from that branch may have been filtered. + + @param deepBranchDepth The number of parts in the root path of a + branch for it to be considered deep + + @param deepBranchLimit The maximum number of results to return for + each deep branch + + @return A new fetch request derived from this fetch request but restricting + the number of results for deep branches. + + @since 6.4 + */ +-(instancetype)limitDeepBranches:(UInt32)deepBranchDepth + limit:(UInt32)deepBranchLimit; + +/** + A constant set of all topic types that can be fetched. + + @return Set of all topic types that can be fetched. + + @since 6.2 + */ ++(NSSet *)allTypes; + +/** + Sends a fetch request to the server, specifying that values should not be + returned for selected topics. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by #fromTopicPath: / + #afterTopicPath: and/or #toTopicPath: / #beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.2 + */ +-(void)fetchWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h new file mode 100644 index 0000000..b28c2bd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class PTDiffusionFetchTopicResult; + +/** + @brief Base class for results from fetch operations issued to the server. + + A fetch operation is issued using a PTDiffusionFetchRequest. + + @since 6.2 + */ +@interface PTDiffusionFetchResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * results; + +/** + Indicates whether the fetch could have returned more results if it had not been + constrained by the PTDiffusionFetchRequest#first: , + PTDiffusionFetchRequest#last: or + PTDiffusionFetchRequest#maximumResultSize: limits. + + `YES` if more results could have been returned, otherwise `NO`. + + @since 6.2 + */ +@property(nonatomic, readonly, getter=hasMore) BOOL more; + + + +/** + The number of elements in the fetch result + + @return the size of the results list + + @since 6.5 + */ +-(NSUInteger)size; + + +/** + Return `YES` if the result contains zero elements + + @return `YES` if result list is empty + + @since 6.5 + */ +-(BOOL)isEmpty; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h new file mode 100644 index 0000000..ba25ffd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h @@ -0,0 +1,52 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTopicSpecification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a fetch operation for a single selected + topic. + + @since 6.2 + */ +@interface PTDiffusionFetchTopicResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The topic path. + + @since 6.2 + */ +@property(nonatomic, readonly) NSString* path; + +/** + The topic specification. + + If the request specified PTDiffusionFetchRequest#withProperties, the result + reflects the topic's specification and can be used to create an identical + topic. If the request did not specify that properties were to be included, the + specification's property map will be empty. + + @since 6.2 + */ +@property(nonatomic, readonly) PTDiffusionTopicSpecification* specification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h new file mode 100644 index 0000000..68585a2 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result of a querying the server for the + session properties of a particular session ID or session filter + + @since 6.5 + */ +@interface PTDiffusionGetSessionPropertiesResult : NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Map of the requested session property values + + @since 6.5 + */ +@property(nonatomic, readonly) NSDictionary * properties; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h new file mode 100644 index 0000000..b82cebc --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h @@ -0,0 +1,139 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Permissions that protect globally scoped, access-controlled operations. + + There is no related object, permission is granted globally. + + @see PTDiffusionPathPermission + + @since 6.3 + */ +@interface PTDiffusionGlobalPermission : PTDiffusionEnumeration + +/** + Add an authentication handler. + + @return Instance indicating the permission to add an authentication handler. + + @since 6.3 + */ ++(instancetype)authenticate; + +/** + List or listen to client sessions. + + @return Instance indicating the permission to list of listen to client sessions. + + @since 6.3 + */ ++(instancetype)viewSession; + +/** + Alter a client session. This covers a range of actions including: + + - subscribe session to topic + - throttle session + - enable conflation for session + - close session + + @return Instance indicating permission to alter a client session. + + @since 6.3 + */ ++(instancetype)modifySession; + +/** + Required to register any server-side handler. + + This restricts clients from consuming resources by registering long lived + handlers (or example, addMessageHandler). Typically these would never be called + due to lack of other permissions. + + @return Instance indicating permission to register any server-side handler. + + @since 6.3 + */ ++(instancetype)registerHandler; + +/** + View the server's runtime state - for example, read metrics. + + @return Instance indicating permission to view the server's runtime state. + + @since 6.3 + */ ++(instancetype)viewServer; + +/** + Change the server's runtime state - for example, shut it down. + + @return Instance indicating permission to change the server's runtime state. + + @since 6.3 + */ ++(instancetype)controlServer; + +/** + Read the security configuration. + + @return Instance indicating permission to read the security configuration. + + @since 6.3 + */ ++(instancetype)viewSecurity; + +/** + Change the security configuration. + + @return Instance indicating permission to change the security configuration. + + @since 6.3 + */ ++(instancetype)modifySecurity; + +/** + A permission that is unsupported by the session. + + @return Instance indicating an unsupported permission by the session. + + @since 6.3 + */ ++(instancetype)unknownGlobalPermission; + +/** + Read topic views. + + @return Instance indicating the permission to read topic views. + + @since 6.3 + */ ++(instancetype)readTopicViews; + +/** + Modify topic views. + + @return Instance indicating the permission to modify topic views. + + @since 6.3 + */ ++(instancetype)modifyTopicViews; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h new file mode 100644 index 0000000..d82908f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionHTTPAuthenticationChallengeHandler; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The protocol implemented by classes providing authentication challenge + handler implementations for HTTP connections. + + Objects conforming to this protocol must be supplied with the session + configuration in order to support HTTP proxies that require authentication. + + @since 6.0 + */ +@protocol PTDiffusionHTTPAuthentication + +/** + Create a challenge handler to be responsible for responding to authentication + challenges during connection negotiation. + + @return the challenge handler + + @since 6.0 + */ +-(id)createHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h new file mode 100644 index 0000000..74c30b3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h @@ -0,0 +1,65 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionHTTPAuthenticationChallengeStatus; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An HTTP response from a server connection request, challenging the + client to authenticate. + + @see PTDiffusionHTTPAuthenticationChallengeHandler + + @since 6.0 + */ +@interface PTDiffusionHTTPAuthenticationChallenge : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The status received from the HTTP server. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionHTTPAuthenticationChallengeStatus* status; + +/** + The headers received from the HTTP server. + + @since 6.0 + */ +@property(nonatomic, readonly) NSDictionary* headers; + +/** + Compares the receiver to the given challenge. + + @param challenge The HTTP authentication challenge object with which to compare + the receiver. + + @return `YES` if the challenge is identical to the receiver, otherwise `NO`. + + @note Two challenge objects are equal if they have the same statusCode and + headers properties. The reasonPhrase property is not used when evaluating + equality. + + @since 6.0 + */ +-(BOOL)isEqualToHTTPAuthenticationChallenge:(nullable PTDiffusionHTTPAuthenticationChallenge *)challenge; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h new file mode 100644 index 0000000..f2125a6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionHTTPAuthenticationChallenge; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The protocol implemented by classes providing an authentication challenge + handler implementation for HTTP connections. + + @see PTDiffusionHTTPAuthentication + + @since 6.0 + */ +@protocol PTDiffusionHTTPAuthenticationChallengeHandler + +/** + Called when a challenge is received. The receiver must return a response to the + challenge. + + @param challenge The challenge received from the HTTP server, encapsulating + Status-Code and headers. + + @return HTTP headers to be sent in response to the challenge. + + @exception NSInvalidArgumentException If challenge is `nil`. + + @since 6.0 + */ +-(NSDictionary*)responseForChallenge:(PTDiffusionHTTPAuthenticationChallenge *)challenge; + +/** + The maximum number of HTTP transactions permitted before authentication fails. + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger maximumConversations; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h new file mode 100644 index 0000000..97ef12d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h @@ -0,0 +1,79 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An HTTP Status received as part of an authentication challenge. + + @see PTDiffusionHTTPAuthenticationChallenge + + @since 6.0 + */ +@interface PTDiffusionHTTPAuthenticationChallengeStatus : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The server responded to the connection request with HTTP Status-Code 401. + + @return The HTTP authentication challenge status response from the server. + + @note The reasonPhrase property for the static instance returned by this + method will always be `nil`. + + @since 6.0 + */ ++(instancetype)unauthorized; + +/** + The server responded to the connection request with HTTP Status-Code 407. + + @return The HTTP authentication challenge status response from the server. + + @note The reasonPhrase property for the static instance returned by this + method will always be `nil`. + + @since 6.0 + */ ++(instancetype)proxyAuthenticationRequired; + +/** + The HTTP Reason-Phrase provided by the server with the response that generated + this status. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) NSString* reasonPhrase; + +/** + Compares the receiver to the given status. + + @param status The HTTP authentication challenge status object with which to + compare the receiver. + + @return `YES` if the status is identical to the receiver, otherwise `NO`. + + @note Two status objects are equal if they mean the same thing. + The reasonPhrase property is not used when evaluating equality. + + @since 6.0 + */ +-(BOOL)isEqualToHTTPAuthenticationChallengeStatus:(nullable PTDiffusionHTTPAuthenticationChallengeStatus *)status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h new file mode 100644 index 0000000..d17e32d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionHTTPAuthentication; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Connection details for an HTTP proxy to be tunneled through in order to + reach the Diffusion server. + + @see PTDiffusionSessionConfiguration + + @since 6.0 + */ +@interface PTDiffusionHTTPProxyConfiguration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a HTTP proxy authentication object initialized with the given host and port. + + @param host The host name of the HTTP proxy. + + @param port The port of the HTTP proxy. + + @return A HTTP proxy authentication object initialized with the given host and port. + + @exception NSInvalidArgumentException If host is `nil`. + + @since 6.0 + */ +-(instancetype)initWithHost:(NSString *)host + port:(UInt32)port NS_DESIGNATED_INITIALIZER; + +/** + Returns a HTTP proxy authentication object initialized with the given host, port + and authentication. + + @param host The host name of the proxy. + + @param port The TCP port of the proxy. + + @param authentication The provider to be used if the proxy requests authentication. + + @return A HTTP proxy authentication object initialized with the given host, port + and authentication. + + @exception NSInvalidArgumentException If either host or authentication is `nil`. + + @see PTDiffusionBasicHTTPProxyAuthentication + + @since 6.0 + */ +-(instancetype)initWithHost:(NSString *)host + port:(UInt32)port + authentication:(id)authentication NS_DESIGNATED_INITIALIZER; + +/** + The host name of the proxy. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* host; + +/** + The TCP port of the proxy. + + @since 6.0 + */ +@property(nonatomic, readonly) UInt32 port; + +/** + The provider to be used if the proxy requests authentication. + + @see PTDiffusionBasicHTTPProxyAuthentication + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) id authentication; + +/** + Compares the receiver to the given configuration. + + @param configuration The HTTP proxy configuration object with which to compare + the receiver. + + @return `YES` if the configuration is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToHTTPProxyConfiguration:(nullable PTDiffusionHTTPProxyConfiguration *)configuration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h new file mode 100644 index 0000000..a702e5a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h @@ -0,0 +1,56 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Representation of the HTTP Response received from the server. + */ +@interface PTDiffusionHTTPResponse : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @brief Status code as defined by RFC 2616, section 6.1.1. + + The Status-Code element is a 3-digit integer result code of the + attempt to understand and satisfy the request. + + */ +@property(nonatomic, readonly) NSInteger statusCode; + +/** + @brief Reason Phrase as defined by RFC 2616, section 6.1.1. + + The Reason-Phrase is intended to give a short textual description of the Status-Code. + */ +@property(nonatomic, readonly) NSString* reasonPhrase; + +/** +@brief The headers of the HTTP response. + */ +@property(nonatomic, readonly) NSDictionary* headers; + +/** + @brief The message body of the HTTP response + + Will be nil if there was no message body. + */ +@property(nonatomic, readonly, nullable) NSData* bodyData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h new file mode 100644 index 0000000..2eadd76 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h @@ -0,0 +1,837 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionBinaryDelta; +@class PTDiffusionJSONFetchResult; +@class PTDiffusionJSONTimeSeriesQueryResult; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionResponse; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionJSONRequestDelegate; +@protocol PTDiffusionJSONRequestStreamDelegate; +@protocol PTDiffusionJSONSessionResponseStreamDelegate; +@protocol PTDiffusionJSONValueStreamDelegate; +@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" + + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable JSON value with support for both binary and JSON deltas. + + JSON is "JavaScript Object Notation", a lightweight data-interchange format. + See [www.json.org](http://www.json.org). + + Internally the value is stored and transmitted not as a JSON string, but in + CBOR format to reduce memory and network overhead. CBOR (Concise Binary + Object Representation) is a standardized format for binary representation of + structured data defined by [RFC 7049](https://tools.ietf.org/html/rfc7049). + See [www.cbor.io](http://www.cbor.io). + + Each JSON value is represented as a single CBOR data item. CBOR supports + composite data types just like JSON, so this data item can be an array or a + map of other data items. The `null` value is represented by the CBOR `Null` + value. + + @since 5.9 + */ +@interface PTDiffusionJSON : PTDiffusionBytes + +/** + Return a JSON object initialized with the given object. + + Object hierarchies passed to this method must be constructed from Foundation + objects which can be logically encoded with CBOR. This provides flexibility + above and beyond the basic capabilities of a 'pure JSON' encoding as well as + being less restrictive than the capabilities of NSJSONSerialization. + + This means: + - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, + `NSDictionary` or `NSNull`. + - Dictionary keys may be instances of any supported type. + - The top level object may be of any supported type. + + Being more permissive than NSJSONSerialization in that: + - `NSData` instances may be used. + - Dictionary keys are not restricted to instances of `NSString`. + - The top level object is not restricted to being a container (`NSArray` or + `NSDictionary`). + + Applications may take advantage of the more permissive nature of the + underlying CBOR encoding by using these capabilities, assuming: + 1. Encoding to JSON string is not required. + 2. Other client applications, perhaps developed in a different language and + against a different library, can also support the capabilities. + + @param object The object to be serialized to CBOR and stored internally to + represent the receiver. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return JSON object initialized with the given object. + + @exception NSInvalidArgumentException Raised if the `object` argument is `nil`. + + @since 5.9 + */ +-(nullable instancetype)initWithObject:(id)object + error:(NSError **)error; + +/** + Convenience wrapper around initWithObject:error: that first uses + NSJSONSerialization to generate the object to be serialized. + + @param jsonData A data object containing JSON data. See Apple's + NSJSONSerialization documentation for detailed information regarding + supported encodings. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return JSON object initialized with the given JSON data. + + @exception NSInvalidArgumentException Raised if the `jsonData` argument is `nil`. + + @since 5.9 + */ +-(nullable instancetype)initWithJSONData:(NSData *)jsonData + error:(NSError **)error; + +/** + Convenience wrapper around initWithJSONData:error: that first encodes the + given string as UTF-8 (NSUTF8StringEncoding), requiring lossless conversion. + + @param jsonString A JSON string. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return JSON object initialized with the given JSON string. + + @exception NSInvalidArgumentException Raised if the `jsonString` argument is `nil`. + + @since 6.0 + */ +-(nullable instancetype)initWithJSONString:(NSString *)jsonString + error:(NSError **)error; + +/** + Compare the receiver's JSON value with another (e.g. an earlier version) to + create a binary delta. + + @param json The original to which the delta should be able to be applied in + order to generate the value represented by the receiver. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return A delta representing the difference between json and the receiver, + or `nil` if there was an error (e.g. either the original or the receiver + don't represent a valid JSON value). + + @exception NSInvalidArgumentException Raised if the json argument is `nil`. + + @since 5.9 + */ +-(nullable PTDiffusionBinaryDelta *)binaryDiffFromJSON:(PTDiffusionJSON *)json + error:(NSError **)error; + +/** + Apply a binary delta to the receiver's JSON value to create a new value. + + @param delta The delta describing the changes to be applied to the receiver's + value in order to create the value to be returned. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return The new JSON value, or `nil` if there was an error (e.g. the receiver + does not represent a valid JSON value). + + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. + + @since 5.9 + */ +-(nullable PTDiffusionJSON *)applyDelta:(PTDiffusionBinaryDelta *)delta + error:(NSError **)error; + +/** + Check whether the receiver is valid. + + @param error If not valid, upon return contains an `NSError` object that + describes the problem. + + @return `YES` if this instance is valid. + + @since 5.9 + */ +-(BOOL)validateWithError:(NSError **)error; + +/** + Creates a Foundation object from the receiver's JSON value. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return An object, or `nil` if there was an error (e.g. the receiver doesn't + represent a valid JSON value). + + @since 5.9 + */ +-(nullable id)objectWithError:(NSError **)error; + +/** + Convenience wrapper around objectError: that then uses NSJSONSerialization to + generate the JSON data. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return A data object containing JSON, or `nil` if there was an error (e.g. + the receive doesn't represent a valid JSON value or cannot be converted to + pure JSON). + + @since 5.9 + */ +-(nullable NSData*)JSONDataWithError:(NSError **)error; + +/** + A request that can be used to send this value using messaging. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRequest* request; + +/** + A response that can be used to send this value using messaging. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionResponse* response; + +/** + An update constraint requiring the current value of a topic to match this + value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; + +/** + Creates a value stream capable of receiving JSON values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ ++(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving JSON time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving JSON requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving JSON requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving JSON responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; + +/** + Compares the receiver to the given JSON. + + @param json The JSON object with which to compare the receiver. + + @return `YES` if the data in json is equal to the contents of the receiver, otherwise `NO`. + + @note Two JSON objects are equal if they are internally represented by the + same CBOR encoding. + + @since 5.9 + */ +-(BOOL)isEqualToJSON:(nullable PTDiffusionJSON *)json; + +@end + +/** + @brief Extension adding support for responding to requests using JSON values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionJSON) + +/** + Dispatch a response to a request. + + @param json The value to send in response. + + @exception NSInvalidArgumentException Raised if the json argument is `nil`. + + @since 6.0 + */ +-(void)respondWithJSON:(PTDiffusionJSON *)json; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a JSON response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionJSON) + +/** + Send a request for which a JSON response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a JSON response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using JSON values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) + +/** + Update a time series topic by appending a new JSON value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + JSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + + +/** + Update a time series topic by appending a new JSON value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + JSONValue:(PTDiffusionJSON *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new JSON value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + JSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have JSON values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + JSONCompletionHandler:(void (^)(PTDiffusionJSONTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with JSON. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionJSON) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with JSON. + + The JSON data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as + JSON will be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchJSONValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionJSONFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with JSON values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionJSON) + +/** + Sets a topic to a specified JSON value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toJSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified JSON value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toJSONValue:(PTDiffusionJSON *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a JSON value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToJSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a JSON value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToJSONValue:(PTDiffusionJSON *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with JSON values + if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If either argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + JSON values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONDelta.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONDelta.h new file mode 100644 index 0000000..81a2962 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONDelta.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; +@class PTDiffusionJSONDeltaChangeMap; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable structural delta describing the differences between two + JSON values. + + Unlike a binary delta, a structural delta can be queried to determine its + effect. + + JSON deltas are useful for identifying small changes to complex JSON values. + + @see PTDiffusionJSON + + @since 6.3 + */ +@interface PTDiffusionJSONDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The parts of the first JSON value not found in the second JSON value. + + @note The pointer references used for the change map keys are relative to the + first JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* removed; + +/** + The parts of the second JSON value not found in the first JSON value. + + @note The pointer references used for the change map keys are relative to the + second JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* inserted; + +/** + Whether the two JSON values used to create this instance are different. + + @since 6.3 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h new file mode 100644 index 0000000..d09763e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h @@ -0,0 +1,86 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable map describing the changes to a JSON value. + + The map contains an entry for each change, as follows: + + - The key is a [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the change in the complete value. Since a JSON value is a + list of zero or more data items, the reference always begins with an array + index. For example, the first part is identified by the JSON Pointer `/0`. + - The value is part of the complete value. It is returned as a JSON object that + can be parsed independently as a unit, or converted to a Foundation object or + JSON string. + + @since 6.3 + */ +@interface PTDiffusionJSONDeltaChangeMap : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The entries forming the change map. + */ +@property(nonatomic, readonly) NSDictionary* map; + +/** + Returns a view of the portion of this map whose keys are descendants of + `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the descendants of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)descendantsOfPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Returns a view of the portion of this map whose keys are descendants or parents + of `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + This method can be used to determine whether a structural delta affects a + particular part of a JSON value. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the intersection of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)intersectionOfPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h new file mode 100644 index 0000000..7c5533e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSONFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a JSON fetch operation issued to the + server. + + A JSON fetch operation is issued using the + PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionJSONFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * jsonResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h new file mode 100644 index 0000000..0450807 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a JSON fetch operation for a single + selected topic. + + A JSON fetch operation is issued using the + PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionJSONFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) PTDiffusionJSON* json; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h new file mode 100644 index 0000000..ca6c7ad --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Result of calls to the Partial Update feature. + + See PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:completionHandler: and + PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:withConstraint:completionHandler: + + Check `failedOperation` to determine whether any of the operations failed. + + @since 6.4 + + */ +@interface PTDiffusionJSONPatchResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @brief an optional NSNumber which if non-null, contains the index of + the first operation which failed + */ +@property(nonatomic, nullable, readonly) NSNumber *failedOperation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h new file mode 100644 index 0000000..5a8bd92 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling JSON messaging requests with a + handler registered at the server. + + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionJSONRequestDelegate + +/** + Called when a JSON request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param json The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithJSON:(PTDiffusionJSON *)json + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h new file mode 100644 index 0000000..3b737e9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling JSON messaging requests. + + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionJSONRequestStreamDelegate + +/** + Called when a JSON request has been received. + + @param stream The stream that received the request. + + @param json The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithJSON:(PTDiffusionJSON *)json + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h new file mode 100644 index 0000000..e51bb2c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling JSON messaging responses from + individual sessions. + + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionJSONSessionResponseStreamDelegate + +/** + Called when a session responds to a request with JSON. + + @param stream The stream that received the response. + + @param json The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithJSON:(PTDiffusionJSON *)json + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h new file mode 100644 index 0000000..e0edc20 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as JSON. + + @since 6.0 + */ +@interface PTDiffusionJSONTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The JSON value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionJSON* json; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..fdf131e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSONTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + JSON values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with JSON values. + + @since 6.0 + */ +@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a JSON value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldJsonEvent The previous event. If `nil` then this is the first event. + + @param newJsonEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldJSONEvent:(nullable PTDiffusionJSONTimeSeriesEvent *)oldJsonEvent + newJSONEvent:(PTDiffusionJSONTimeSeriesEvent *)newJsonEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h new file mode 100644 index 0000000..bca18ac --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSONTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of JSON time series events. + + @since 6.0 + */ +@interface PTDiffusionJSONTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The JSON time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* jsonEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h new file mode 100644 index 0000000..5389c12 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with JSON + values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionJSONUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSON* value; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either value or completionHandler is + `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h new file mode 100644 index 0000000..bcb1b11 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for JSON + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for JSON + topics. + + @see PTDiffusionJSON + + @since 5.9 + */ +@protocol PTDiffusionJSONValueStreamDelegate + +/** + An update was received for a topic path handled by a JSON value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldJson The previous value. If `nil` then this is the first value. + + @param newJson The new value derived from the last update received from the + server. + + @since 5.9 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldJSON:(nullable PTDiffusionJSON *)oldJson + newJSON:(PTDiffusionJSON *)newJson; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h new file mode 100644 index 0000000..f835e7e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h @@ -0,0 +1,111 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionLoggingDestinationConfiguration; +@class PTDiffusionLoggingLevel; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Logging provides access to debug information that can be enabled at runtime. + + Changes to properties here have immediate effect on the verbosity or otherwise + of log output. + + The format of output log messages is subject to change. + + By default messages are sent to the Apple System Log facility using synchronous + calls to the Foundation framework's NSLog function. The destinationConfiguration + property can be used to change this behaviour. + + @since 5.7 + */ +@interface PTDiffusionLogging : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns the Diffusion logging object representing the current application process. + + @return Singleton Diffusion logging object representing the current application process. + + @since 5.7 + */ ++(PTDiffusionLogging *)logging; + +/** + Global switch to switch on or off logging. A value of `YES` switches logging on and + a value of `NO` switches it off. + + The default value for this property is `NO`. + + @note Logging may be switched on using this property but the amount of informational + messages output depends on the combination of other properties defined by this + interface. + + @since 5.7 + */ +@property(nonatomic, readwrite, getter=isEnabled) BOOL enabled; + +/** + The ranking of information messages required to be output. + This property allows the granularity of log output to be set. + Only messages ranked at this granularity or above will be enabled. + + The default value for this property is [PTDiffusionLoggingLevel info]. + + @since 5.7 + */ +@property(nonatomic, readwrite) PTDiffusionLoggingLevel* level; + +/** + Set the format of log message output. The syntax of this string is subject to change + so the required formatting tokens are not documented or intended to be constructed for use + by application developers unless instructed by a member of support staff in order to + assist in debugging an issue. + + @param format The format of log message output. + + @since 5.7 + */ +-(void)setFormat:(NSString *)format; + +/** + Set all properties to default values, as required for production use when + debugging information is not required or desired. + A call to this method turns off all runtime-switchable log output. + + @note This method intentionally does not reset the destinationConfiguration + property. + + @since 5.7 + */ +-(void)reset; + +/** + Options allowing log output to be directed to a custom location. + + The default value for this property is `nil`, specifying that messages should + be sent to the Apple System Log facility using synchronous calls to the + Foundation framework's NSLog function. + + @since 6.0 + */ +@property(nonatomic, readwrite, nullable) PTDiffusionLoggingDestinationConfiguration* destinationConfiguration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h new file mode 100644 index 0000000..89407c2 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h @@ -0,0 +1,61 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Options allowing log output to be directed to a custom location. + + @see PTDiffusionLogging + + @since 6.0 + */ +@interface PTDiffusionLoggingDestinationConfiguration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a logging destination configuration object initialized with the + given message printer. + + @param messagePrinter A block that may be called multiple times during the + lifetime of the current process. + + @return A logging destination configuration object initialized with the given + message printer. + + @note The message printer will always be called from a single GCD dispatch + queue managed by the client library and dedicated to this application process. + + @since 6.0 + */ +-(instancetype)initWithMessagePrinter:(PTDiffusionLoggingMessagePrinter)messagePrinter NS_DESIGNATED_INITIALIZER; + +/** + A block that may be called multiple times during the lifetime of the current + process in order to emit formatted log messages. + + @note This property has the `nullable` attribute in order to allow for future + expansion of this API. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable, copy) PTDiffusionLoggingMessagePrinter messagePrinter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h new file mode 100644 index 0000000..556f664 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h @@ -0,0 +1,80 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A level of information events useful for debugging. + + The levels defined here are modelled on those defined by SLF4J as used by + the Diffusion Java API. + + @see PTDiffusionLogging + + @since 5.7 + */ +@interface PTDiffusionLoggingLevel : PTDiffusionEnumeration + +/** + Designates error events that might still allow the application to continue + running normally. + + @return Instance representing the error logging level. + + @since 5.7 + */ ++(instancetype)error; + +/** + Designates potentially harmful situations. + + @return Instance representing the warning logging level. + + @since 5.7 + */ ++(instancetype)warn; + +/** + Designates informational messages that highlight the process of the application + at a coarse-grained level. + + @return Instance representing the informational logging level. + + @since 5.7 + */ ++(instancetype)info; + +/** + Designates fine-grained informational messages that are most useful to debug + an application. + + @return Instance representing the debug logging level. + + @since 5.7 + */ ++(instancetype)debug; + +/** + Designates finer-grained informational events than debug. + + @return Instance representing the trace logging level. + + @since 5.7 + */ ++(instancetype)trace; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h new file mode 100644 index 0000000..d15d48b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h @@ -0,0 +1,26 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The type definition for a block accepting formatted log messages. + + @see PTDiffusionLoggingDestinationConfiguration + + @since 6.0 + */ +typedef void (^PTDiffusionLoggingMessagePrinter)(NSString* message); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h new file mode 100644 index 0000000..15e6912 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h @@ -0,0 +1,297 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBytes; +@class PTDiffusionRequestStream; +@class PTDiffusionTopicSelector; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionSessionId; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTopicTreeRegistration; + + +/** + Values assigned to the `code` property of NSError objects generated by the + PTDiffusionMessagingFeature. + + @since 6.5 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionMessagingFeatureErrorCode) { + /** + The filter was rejected. The message was not sent to any clients. + + @see PTDiffusionUnderlyingErrorsKey + + @since 6.5 + + @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. + */ + PTDiffusionMessagingFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead.") = 1, +}; + + +NS_ASSUME_NONNULL_BEGIN + + +/** + The value assigned to the `domain` property of NSError objects generated by the + PTDiffusionMessagingFeature. + + @since 6.5 + + @deprecated since 6.7 Error domains have been converged into PTDiffusion. + */ +extern NSString *const PTDiffusionMessagingFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); + + +/** + @brief This feature provides a client session with request-response messaging + capabilities that can be used to implement application services. + + Request-response messaging allows a session to send requests to other + sessions. Each receiving session provides a corresponding response, which is + returned to the sending session. Each request and response carries an + application provided value. + + The method used to send a request determines which sessions will receive it. + Each request is routed using the provided *message path* – an + application provided string. Two addressing schemes are provided: + unaddressed requests and addressed requests. + + ### Unaddressed requests + + A session can provide an application service by implementing a handler and + registering it with the server. This is somewhat similar to implementing a + REST service, except that interactions between the sender and receiver are + asynchronous. + + Unaddressed requests sent using `sendRequest` + are routed by the server to a handler that has been pre-registered by another + session, and matches the message path. + + Handlers are registered with `#addRequestHandler:forPath:sessionProperties:completionHandler:`. + Each session may register at most one handler for a given message path. + Optionally, one or more session property names can be provided (see + PTDiffusionSession for a full description of session properties), in which + case the values of the session properties for each recipient session will be + returned along with its response. To add a request handler, the control client + session must have PTDiffusionGlobalPermission.registerHandler permission. If + registering to receive session property values, the session must also have + PTDiffusionGlobalPermission.viewSession permission. + + Routing works as follows: + + 1. The session sends the request, providing the message path, the response stream, + the request value and the completion handler that will be called once the server replies. + + 2. The server uses the message path to apply access control. The sender must have the + PTDiffusionPathPermission.sendToMessageHandler path permission for the message path, + or the request will be rejected. + + 3. The server uses the message path to select the appropriate recipient session. + Recipient sessions must pre-register a handler. If there is no registered recipient + session, the request will be rejected. + + 4. Otherwise, the server forwards the request to one of the sessions registered + to handle the message path. The message path is also passed to the recipient + session, providing a hierarchical context. + + 5. The recipient session processes the request and returns a response to the + server, which forwards the response to the sending session. + + Registration works across a cluster of servers. If no matching handler is + registered on the server to which the sending session is connected, the + request will be routed to another server in the cluster that has one. + + ### Addressed Requests + + Addressed requests provide a way to perform actions on a group of sessions, + or to notify sessions of one-off events (for repeating streams of events, use + a topic instead). + + An addressed request can be sent to a set of sessions using + `#sendRequest:toFilter:path:responseStream:completionHandler:`. For the details of session + filters, see PTDiffusionSession. Sending a request to a filter will match zero + or more sessions. Each response received will be passed to the provided + completionHandler. As a convenience, an addressed request can be sent a + specific session using the overloaded variant of + `sendRequest:toSessionId:completionHandler` that accepts a session id. + + Sending an addressed request requires PTDiffusionPathPermission.sendToSession + permission. + + If the sending session is connected to a server belonging to a cluster, the + recipient sessions can be connected to other servers in the cluster. The + filter will be evaluated against all sessions hosted by the cluster. + + To receive addressed requests, a session must set up a local request stream + to handle the specific message path, using `#setRequestStream:forPath:`. + When a request is received for the message path, the method + `diffusionStream:didReceive...Request:` responder from the + PTDiffusionStreamDelegate is triggered. + The session should respond using the provided responder. + Stream delegates receive a `diffusionDidCloseStream:` callback when + unregistered and a `diffusionStream:didFailOnError:` if the session is closed. + + If a request is sent to a session that does not have a matching stream for + the message path, an error will be returned to the sending session. + + ### Accessing the feature + Obtain this feature from a PTDiffusionSession as follows: + +
+ PTDiffusionMessagingFeature * messaging = session.messaging;
+ 
+ + For more detail, + see: @ref md_messaging "Messaging with the Apple client library". + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionMessagingFeature : PTDiffusionFeature + +/** + Assign the request stream to handle requests sent to the given path. + + @param stream The request stream which should be mapped to receive requests + sent to the given path. + + @param path The path for which received requests should be dispatched to the + given request stream. + + @return The previously set request stream for the given path, or `nil` if this + is a fresh dispatch mapping. + + @since 6.0 + */ +-(nullable PTDiffusionRequestStream *)setRequestStream:(PTDiffusionRequestStream *)stream + forPath:(NSString *)path; + +/** + Remove the request stream mapped to the given path. + + @param path The path for which any request stream mapping should be removed. + + @return The previously set request stream for the given path, or `nil` if there + was not an existing dispatch mapping. + + @since 6.0 + */ +-(nullable PTDiffusionRequestStream *)removeRequestStreamForPath:(NSString *)path; + + +/** + Register a request handler to handle messages received from other client + sessions on a path. + + @param handler Specifies the handler to be registered at the server. + + @param path The request path. + + @param sessionProperties a list of keys of session properties that should + be supplied with each message. See PTDiffusionSession for a full list of + available fixed property keys. To request no properties supply an empty list. + To request all fixed properties include PTDiffusionSession#allFixedProperties + as a key. In this case any other fixed property keys would be ignored. + To request all user properties include PTDiffusionSession#allUserProperties + as a key. In this case any other user properties are ignored. + + @param 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 the `registration` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.5 + */ +-(void)addRequestHandler:(PTDiffusionRequestHandler *)handler + forPath:(NSString *)path + sessionProperties:(NSArray *)sessionProperties + completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +/** + Register a request handler to handle requests from other client session + for a branch of the message path hierarchy. + + Each control session may register a single handler for a branch. When the + handler is no longer required, it may be closed using the + PTDiffusionTopicTreeRegistration provided by the completionHandler. To change + the handler for a particular branch the previous handler must first be + closed. + + This is equivalent to calling + `#addRequestHandler:forPath:sessionProperties:completionHandler:` + with an empty array for session properties. + + @param handler Specifies the handler to be registered at the server. + + @param path The request path. + + @param 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 the `registration` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.5 + */ +-(void)addRequestHandler:(PTDiffusionRequestHandler *)handler + forPath:(NSString *)path + completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +/** + Send a request to all sessions that satisfy a given session filter. + + @param request The request to send. + + @param filter The session filter expression. + + @param path The path to send the request to. + + @param responseStream The stream that will handle the incoming responses. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. Success indicates that the server has dispatched all + the requests. + + @note The completion handler block will be invoked with a `nil` for the `error` + argument and zero for the `count` argument if no client sessions matched the + filter. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toFilter:(NSString *)filter + path:(NSString *)path + responseStream:(PTDiffusionSessionResponseStream *)responseStream + completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h new file mode 100644 index 0000000..7a99879 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h @@ -0,0 +1,66 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The common base interface for metric collectors. + + @since 6.7 + */ +@interface PTDiffusionMetricCollector: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Name of the metric collector + + @since 6.7 + */ +@property(nonatomic, readonly) NSString *name; + + +/** + Indicates whether the metric collector exports to Prometheus. + + @since 6.7 + */ +@property(nonatomic, readonly) BOOL exportsToPrometheus; + + +/** + @brief Limit the number of groups maintained by this metric collector. + + Session metric collectors can {@link PTDiffusionSessionMetricCollector#groupByProperties + group metrics by property}. + Topic metric collectors can {@link PTDiffusionSessionTopicCollector#groupsByTopicType + group metrics by topic type}. + This property places an upper limit on the number of groups that will be maintained for the + metric collector. + + For example, if a session metric collector groups by `$SessionId` and `maximumGroups` is 10, + then metrics will only be collected for the first 10 sessions. + + @since 6.8 + */ +@property(nonatomic, readonly) NSInteger maximumGroups; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h new file mode 100644 index 0000000..3b99f77 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The common base interface for metric collectors. + + @since 6.7 + */ +@interface PTDiffusionMetricCollectorBuilder: NSObject + + +/** + @brief Resets the builder. + + @return the builder + */ +-(instancetype)reset; + + +/** + @brief Specifies whether the metric collector should export metrics + to Prometheus or not. + + The default is that metrics are not exported to Prometheus. + + @param export true to export metrics to Prometheus. + + @return the builder + */ +-(instancetype)exportToPrometheus:(BOOL)exportToPrometheus; + + +/** + @brief Set the maximum number of groups maintained by the metric collector. + + By default, the number of groups is not limited. + + @param limit a positive integer + + @return the builder + */ +-(instancetype)maximumGroups:(NSInteger)limit; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h new file mode 100644 index 0000000..df615f3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h @@ -0,0 +1,239 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionMetricCollector; +@class PTDiffusionTopicMetricCollector; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client to configure metric collectors. + + Diffusion servers provide metrics which are made available in several ways: +
    +
  • Java Management Extensions (JMX) MBeans. +
  • Through the Diffusion Management Console. +
  • As endpoints for Prometheus. +
+ + Metric collectors allow custom aggregation of metrics that are relevant to + your application. There are no default metric collectors, only the ones that + you create. + + There are two types of metric collector: Session Metric Collectors and Topic + Metric Collectors. + + For full details regarding the configuration and operation of metric + collectors see the user manual. + + ### Session Metric Collectors. + + These can be configured to record metric data for a subset of all sessions, + specified with a session filter. + + The set of metrics recorded by each session metric collector is the same as + those recorded for the whole server. For full details of session metrics, see + the table in the user manual. + + If the session filters of two different session metric collectors select the + same session, both will record metrics for that session. It is only valid to + add the metrics of different session metric collectors if their session + filters select distinct sets of sessions. + + You can optionally group the sessions within a collector by session + properties. + + ### Topic Metric Collectors + These can be configured to record metric data for a subset of all topics, + specified with a topic selector. + + You can optionally group the topics within a collector by topic type. + + The set of metrics recorded by each topic metric collector is the same as + those recorded for the whole server. For full details of topic metrics, see + the table in the user manual. + + If the topic selectors of two different topic metric collectors select the + same topic, both will record metrics for that topic. It is only valid to add + the metrics of different topic metric collectors if their topic selectors + select distinct sets of topics. + + ### Access control + + The following access control restrictions are applied: +
    +
  • To {@link #putSessionMetricCollector:completionHandler: put} or + {@link #removeSessionMetricCollector:completionHandler: remove} a session metric collector, a + session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} + global permission. +
  • To {@link #putTopicMetricCollector:completionHandler: put} or + {@link #removeTopicMetricCollector:completionHandler: remove} a topic metric collector, a + session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} + global permission. +
  • To list {@link #listSessionMetricCollectors: session metric collectors} or + {@link #listTopicMetricCollectors: topic metric collectors}, a session needs + the {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} global permission. +
+ + ### Accessing the feature + This feature may be obtained from a {@link Session session} as follows: +
+    PTDiffusionMetricsFeature *const metrics = session.metrics;
+  
+ + @author DiffusionData Limited + + @since 6.7 + */ +@interface PTDiffusionMetricsFeature : PTDiffusionFeature + +/** + Add a session metric collector, replacing any with the same name. + + @param collector the session metric collector + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_InvalidFilter if the metric collector session filter is invalid; +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void)putSessionMetricCollector:(PTDiffusionSessionMetricCollector *)collector + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + Retrieves the current session metric collectors. + + @param 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 the `collectors` will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) listSessionMetricCollectors:(void (^)(NSArray* _Nullable collectors, + NSError * _Nullable error)) completionHandler; + + +/** + Removes any session metric collector with the given name, if it exists. + + @param name the session metric collector name + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) removeSessionMetricCollector:(NSString *)name + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + Add a topic metric collector, replacing any with the same name. + + {@link PTDiffusionTopicMetricCollector} instance can be created using + {@link PTDiffusionTopicMetricCollectorBuilder}. + + @param collector the topic metric collector + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) putTopicMetricCollector:(PTDiffusionTopicMetricCollector *)collector + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + Retrieves the current topic metric collectors. + + @param 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 the `collectors` will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) listTopicMetricCollectors:(void (^)(NSArray* _Nullable collectors, + NSError * _Nullable error)) completionHandler; + + +/** + Removes any topic metric collector with the given name, if it exists. + + @param name the topic metric collector name + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) removeTopicMetricCollector:(NSString *)name + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h new file mode 100644 index 0000000..5b87b0b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionMissingTopicNotification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Handler called when a client session subscribes or fetches using a topic + selector that matches no topics. + + @see PTDiffusionTopicControlFeature + + @since 5.7 + */ +@protocol PTDiffusionMissingTopicHandler + +/** + Called when a session requests a topic that does not exist, and the + topic path belongs to part of the topic tree for which this handler + was registered. + + @param registration The topic tree registration for which this handler applies. + + @param notification The missing topic notification. + + @since 5.7 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + hadMissingTopicNotification:(PTDiffusionMissingTopicNotification *)notification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h new file mode 100644 index 0000000..f35483e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h @@ -0,0 +1,108 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Notification that a session has made a request using a selector that does + not match any topics. + + @see PTDiffusionMissingTopicHandler + + @since 5.7 + */ +@interface PTDiffusionMissingTopicNotification : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Cancel the client request on the server. + + @deprecated Since 6.6. + This method is a no-op. In previous releases this would + prevent the selector from being added to the session's + selections. + Since 6.6, the selector is always added to the session's + selections before this notification is issued regardless. + + @since 5.7 + */ +-(void)cancel +__deprecated_msg("Will be removed in a future release."); + + +/** + Instruct the server to complete processing of the request. + + @deprecated Since 6.6 + This method is a no-op. In previous releases this would + cause the selector to be added to the sessions's + selections and the selection to be re-evaluated. + Since 6.6, the selector is always added to the session's + selections before this notification is issued. + + + @since 5.7 + */ +-(void)proceed +__deprecated_msg("Will be removed in a future release."); + + +/** + The identity of the client session that made the request. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + + +/** + The topic selector expression that triggered this notification. + + @since 5.7 + */ +@property(nonatomic, readonly) NSString* topicSelectorExpression; + + +/** + The list of the names of the servers through which the notification + has been routed. + + The first name in this list will be the name of the server to which + the originating session was connected. If the notification was routed + through remote server connections before reaching the recipient then + those servers will also be listed in the order that the notification + passed through them. + + @since 6.7 + */ +@property (nonatomic, readonly) NSArray* serverNames; + + +/** + The session properties of the session that made the request. + + @since 6.7 + */ +@property (nonatomic, readonly) NSDictionary* sessionProperties; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h new file mode 100644 index 0000000..d25abaf --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h @@ -0,0 +1,294 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A mutable data model based upon a schema. + + An initial version of such a model can be created from a schema using + PTDiffusionRecordV2Schema#createMutableModel. A model created in this way will + have all mandatory fields set to default values. + + The model may then be updated as required and then at any time a + PTDiffusionRecordV2 object can be generated from the current state by reading + the PTDiffusionRecordV2Model#value property. That object may then be used to + update a topic. + + When values for integer or decimal type fields are supplied the values are + validated and normalized. All number values will have any insignificant + leading zeroes removed. A decimal value will also be rounded to its specified + scale using half-up rounding. + + @since 6.0 + */ +@interface PTDiffusionMutableRecordV2Model : PTDiffusionRecordV2Model + +/** + Appends a new initialized record occurrence to the end of a variable + multiplicity record list. + + As the only variable multiplicity record can be the last one there is no need + to name the record. This method will add to the list of occurrences of the last + defined record. The record will be initialized with default values appropriate + to the schema definition and may then have individual field items set + separately. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the last or only record is not a variable repeating record or has already + reached the maximum number of occurrences. + + @since 6.0 + */ +-(BOOL)addRecordError:(NSError **)error; + +/** + Appends new values to the end of a variable length field list. + + This is a convenience method for adding to the end of the last record and is + therefore useful when there is only one record type. + + @param fieldValues The values to add. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - details conflict with the schema, possibly because the last field of the last + record is not a variable multiplicity field or the maximum number of + occurrences for the field would be breached. + - one of the values is incompatible with the field type. + + @exception NSInvalidArgumentException If fieldValues is `nil`. + + @note This method does nothing if fieldValues is an empty array. + + @since 6.0 + */ +-(BOOL)addFieldValues:(NSArray *)fieldValues + error:(NSError **)error; + +/** + Appends new values to the end of a variable length field list. + + This can only be used for a variable multiplicity field which can only be the + last field in a record and therefore the field does not need to be named. + + @param recordName The name of the record. + + @param recordIndex The index identifying the occurrence of the record. + + @param fieldValues The values to add. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - details conflict with the schema, possibly because the last field of the + record is not a variable multiplicity field or the maximum number of + occurrences for the field would be breached. + - one of the values is incompatible with the field type. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If either recordName or fieldValues is + `nil`, or if recordIndex is negative. + + @note This method does nothing if fieldValues is an empty array. + + @since 6.0 + */ +-(BOOL)addToRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldValues:(NSArray *)fieldValues + error:(NSError **)error; + +/** + Remove all optional instances of a variable multiplicity field. + + As a variable repeating field can only be the last or only field within a + record then the field name does not need to be specified. + + This will only remove field occurrences down to the minimum number of + occurrences specified by the schema. + + If the last or only field within the record is not defined as variable + multiplicity, this would have no effect. + + @param recordName The name of the record. + + @param recordIndex The index of the record. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - `recordName` is not defined in the schema. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordName is `nil`, or if recordIndex + is negative. + + @since 6.0 + */ +-(BOOL)clearVariableFieldsForRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + error:(NSError **)error; + +/** + Removes all optional instances of a variable multiplicity record. + + As a variable repeating record can only be the last or only record then the + record name does not need to be specified. + + This will only remove record occurrences down to the minimum number of + occurrences specified by the schema. + + If the last or only record is not defined as variable multiplicity, calling + this method has no effect. + + @since 6.0 + */ +-(void)clearVariableRecords; + +/** + Removes the specified occurrence of a variable multiplicity field. + + A variable multiplicity field must be the last or only field within a record + and therefore the field name is not required. + + @param recordName The name of the record. + + @param recordIndex The record index. + + @param fieldIndex The index of the field to remove. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the record is not known or the last or only field within the record is not a + variable repeating field or can not be removed as it would violate the + minimum number of occurrences. + - either `recordIndex` or `fieldIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is + negative or fieldIndex is negative. + + @since 6.0 + */ +-(BOOL)removeFieldWithIndex:(SInt32)fieldIndex + fromRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + error:(NSError **)error; + +/** + Removes the specified occurrence of a variable multiplicity record. + + A variable multiplicity record must be the last or only record within a schema + and therefore the record name is not required. + + @param recordIndex The index of the record to remove. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the last or only record is not a variable multiplicity record or can not be + removed as it would violate the minimum number of occurrences. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordIndex is negative. + + @since 6.0 + */ +-(BOOL)removeRecordWithIndex:(SInt32)recordIndex + error:(NSError **)error; + +/** + Sets a specified field value. + + @param recordName The name of the record containing the field. + + @param recordIndex The index of the record containing the field. + + @param fieldName The name of the field. + + @param fieldIndex The index of the field. + + @param fieldValue The new value. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the details given conflict with the schema or the value is incompatible with + the schema field type. + - either `recordIndex` or `fieldIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is + negative, fieldName is `nil`, fieldIndex is negative or fieldValue is `nil`. + + @since 6.0 + */ +-(BOOL)setRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldName:(NSString *)fieldName + fieldIndex:(SInt32)fieldIndex + toFieldValue:(NSString *)fieldValue + error:(NSError **)error; + +/** + Sets a specified field value. + + This allows an item to be addressed using a key of the form + `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in + which case 0 is assumed. The record part may also be omitted in which case the + first occurrence of the first record is assumed. + + @param key The field key. + + @param fieldValue The field value. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the key does not address a valid field. + - a specified index is out of bounds. + - the key format is invalid. + - a specified index is not a valid number. + + @exception NSInvalidArgumentException If either key or fieldValue is `nil`. + + @since 6.0 + */ +-(BOOL)setFieldValue:(NSString *)fieldValue + forKey:(NSString *)key + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h new file mode 100644 index 0000000..c05250c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h @@ -0,0 +1,44 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionNumberFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a numeric fetch operation issued to the + server. + + A numeric fetch operation is issued using either of the + PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: + or + PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: + methods. + + @since 6.2 + */ +@interface PTDiffusionNumberFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * numberResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h new file mode 100644 index 0000000..5a3f194 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a numeric fetch operation for a single + selected topic. + + A numeric fetch operation is issued using either of the + PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: + or + PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: + methods. + + @since 6.2 + */ +@interface PTDiffusionNumberFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) NSNumber* number; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h new file mode 100644 index 0000000..ae0ba41 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling numeric messaging requests with + a handler registered at the server. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionNumberRequestDelegate + +/** + Called when a numeric request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param number The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithNumber:(nullable NSNumber *)number + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h new file mode 100644 index 0000000..5b784bd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h @@ -0,0 +1,47 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Number messaging requests. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionNumberRequestStreamDelegate + +/** + Called when a numeric request has been received. + + @param stream The stream that received the request. + + @param number The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithNumber:(nullable NSNumber *)number + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h new file mode 100644 index 0000000..49030b4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling numeric messaging responses from + individual sessions. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionNumberSessionResponseStreamDelegate + +/** + Called when a session responds to a request with a number. + + @param stream The stream that received the response. + + @param number The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithNumber:(nullable NSNumber *)number + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h new file mode 100644 index 0000000..ba41d8d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as a number. + + @since 6.0 + */ +@interface PTDiffusionNumberTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The numeric value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) NSNumber* number; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..03082c0 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionNumberTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + numeric values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with numeric values. + + @since 6.0 + */ +@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldNumberEvent The previous event. If `nil` then this is the first event. + + @param newNumberEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldNumberEvent:(nullable PTDiffusionNumberTimeSeriesEvent *)oldNumberEvent + newNumberEvent:(PTDiffusionNumberTimeSeriesEvent *)newNumberEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h new file mode 100644 index 0000000..ba80576 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionNumberTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of number time series events. + + @since 6.0 + */ +@interface PTDiffusionNumberTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The number time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* numberEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h new file mode 100644 index 0000000..fcf8324 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h @@ -0,0 +1,112 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + numerical primitive values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionNumberUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly, nullable) NSNumber* value; + +/** + Sets the topic to a specified value or no value. + + When a `nil` value is supplied to this method for a PTDiffusionTopicType_Int64 + or PTDiffusionTopicType_Double topic, the topic will be updated to have no + value. If a previous value was present subscribers will receive a notification + that the new value is null. New subscribers will not receive a value + notification. + + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h new file mode 100644 index 0000000..ca73355 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for number + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for numeric + topics. + + @see PTDiffusionPrimitive + + @since 6.0 + */ +@protocol PTDiffusionNumberValueStreamDelegate + +/** + An update was received for a topic path handled by a number value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldNumber The previous value. If `nil` then this is either the first + value, or the previous value was `nil` indicating no value. + + @param newNumber The new value derived from the last update received from the + server, or `nil` if there is no value. + + @since 6.0 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldNumber:(nullable NSNumber *)oldNumber + newNumber:(nullable NSNumber *)newNumber; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h new file mode 100644 index 0000000..e999346 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A constraint requiring the current value of a JSON topic to match the + partially described value. + + The Swift code: + + let constraint = try PTDiffusionUpdateConstraint + .jsonValue() + .withStringValue(idValue, atPointer: "/id") + .without("/cancellation") + + creates a constraint for a JSON object with a specific ID value and no value + for a "cancellation" property. + + Missing keys are matched differently to keys that are present with `null` + values. + + @since 6.3 + */ +@interface PTDiffusionPartialJSONUpdateConstraint : PTDiffusionUpdateConstraint + +/** + Require a `null` value at a specific position in the JSON object. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the `null` value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return A new constraint or `nil` if there was an error. + + @exception NSInvalidArgumentException If pointer is `nil`. + + @since 6.3 + */ +-(nullable instancetype)withNullAt:(NSString *)pointer + error:(NSError **)error; + +/** + Require a specific position in the JSON object to be absent. This does not + match positions that have `null` values. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference that should have no value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return A new constraint or `nil` if there was an error. + + @exception NSInvalidArgumentException If the pointer argument is `nil`. + + @since 6.3 + */ +-(nullable instancetype)without:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h new file mode 100644 index 0000000..bef37ec --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h @@ -0,0 +1,203 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Permissions protecting access-controlled operations that are evaluated + for a specific topic path. + + @see PTDiffusionGlobalPermission + + @since 6.5 + + */ + +@interface PTDiffusionPathPermission : PTDiffusionEnumeration + +/** + Required to receive information from a topic. + + If a session does not have read_topic permission for a path, the path will be + excluded from the results of subscription or fetch operations for the session, + and the path's details cannot be retrieved by the session. + + @see #selectTopic + + @return Instance indicating permission to receive information from a topic. + + @since 6.3 + */ ++(instancetype)readTopic; + +/** + Update a topic. + + @return Instance indicating permission to update a topic. + + @since 6.3 + */ ++(instancetype)updateTopic; + +/** + Add a topic or remove a topic. + + @return Instance indicating permission to add or remove a topic. + + @since 6.3 + */ ++(instancetype)modifyTopic; + +/** + Send a message to a handler registered with the server. + + @return Instance indicating permission to send a message to a handler + registered with the server. + + @since 6.3 + */ ++(instancetype)sendToMessageHandler; + +/** + Send a message to a client session. + + @return Instance indicating permission to send a message to a client session. + + @since 6.3 + */ ++(instancetype)sendToSession; + +/** + Use a topic selector that selects the topic path. + + A session must have this permission for the path prefix of any topic selector + used to subscribe or fetch. + + When the subscription or fetch request completes, the resulting topics are + further filtered based on the #readTopic permission. + + A session that has #readTopic but not #selectTopic for a particular topic path + cannot subscribe directly to topics belonging to the path. However, the session + can be independently subscribed by a control session that has + PTDiffusionGlobalPermission#modifySession permission in addition to the + appropriate #selectTopic permission. + + @return Instance indicating permission to use a topic selector that selects + the topic path. + + @since 6.3 + */ ++(instancetype)selectTopic; + +/** + Evaluate queries that return a non-current view of a time series path. + + The #readTopic permission is required to evaluate any type of query for a time + series path. This permission is additionally required for queries that + potentially return a non-current view of all or part of a time series. Such + queries include value range queries that specify an edit range, and all types + of edit range query. + + @return Instance indicating permission to evaluate queries that return a + non-current view of a time series path. + + @see PTDiffusionTimeSeriesFeature + + @since 6.3 + */ ++(instancetype)queryObsoleteTimeSeriesEvents; + +/** + Submit edits to time series topic events. + + The #updateTopic permission is required to update a time series path. This + permission is additionally required to submit edits to a time series path. + + @return Instance indicating permission to submit edits to time series + topic events. + + @see PTDiffusionTimeSeriesFeature + @see #editOwnTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editTimeSeriesEvents; + +/** + Submit edits to time series path events which have an author which is the same + as the principal of the calling session. + + This permission is a more restrictive alternative to #editTimeSeriesEvents. + + The #updateTopic permission is required to update a time series path. This + permission is additionally required to submit edits to a time series path + where the event author is the same as the principal of the calling session. + + @return Instance indicating permission to submit edits to time series path + events which have an author identical to the principal of the + calling session. + + @see PTDiffusionTimeSeriesFeature + @see #editTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editOwnTimeSeriesEvents; + +/** + Acquire a session lock. + + @return Instance indicating permission to acquire a session lock. + + @see PTDiffusionSessionLock + + @since 6.3 + */ ++(instancetype)acquireLock; + +/** + A permission that is unsupported by the session. + + @return Instance indicating an unsupported permission. + + @since 6.3 + */ ++(instancetype)unknownTopicPermission; + + +/** + Expose a branch of the topic tree as a virtual session tree. + + The EXPOSE_BRANCH path permission is powerful since it allows a + session to expose a whole branch of the topic tree under a different set + of path permissions. + + A session granted EXPOSE_BRANCH for a particular path effectively + has the permission for all descendant paths. From a security perspective, + if a role grants EXPOSE_BRANCH at branch X it is + ineffectual for it also to deny EXPOSE_BRANCH at a child branch + X/Y because a branch mapping to X can still expose paths + below X/Y. + + @return Instance indicating permission to expose branches. + + @see PTDiffusionSessionTrees + @since 6.7 +*/ ++(instancetype)exposeBranch; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h new file mode 100644 index 0000000..6d4d4f3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Details returned in response to a ping to the server. + + A ping details object is immutable. + + @see PTDiffusionPingsFeature + + @since 5.7 + */ +@interface PTDiffusionPingDetails : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The round trip time from when the ping was sent to the time + the response was received. + + @since 5.7 + */ +@property(nonatomic, readonly) NSTimeInterval roundTripTime; + +/** + The time the ping was sent. + + @since 5.7 + */ +@property(nonatomic, readonly) NSDate* timestamp; + +/** + Compares the receiver to the given content. + + @param pingDetails The ping details object with which to compare the receiver. + + @return `YES` if the ping details is equal to the contents of the receiver, otherwise `NO`. + + @since 5.7 + */ +-(BOOL)isEqualToPingDetails:(nullable PTDiffusionPingDetails *)pingDetails; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h new file mode 100644 index 0000000..7371089 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h @@ -0,0 +1,51 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionPingDetails; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Pings feature provides a client session with the ability to ping the server. + + The main purpose of a ping is to test, at a very basic level, the current + network conditions that exist between the client session and the server it is + connected to. Each ping request will return details on the latency + experienced in the form of a round-trip time value. + + The Pings feature for a session can be obtained from the session's `pings` property. + + @see PTDiffusionSession + + @since 5.7 + */ +@interface PTDiffusionPingsFeature : PTDiffusionFeature + +/** + Send a ping to the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if the completionHandler is `nil`. + + @since 5.7 + */ +-(void)pingServerWithCompletionHandler:(void (^)(PTDiffusionPingDetails * _Nullable details, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h new file mode 100644 index 0000000..22b31b5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h @@ -0,0 +1,2432 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionNumberFetchResult; +@class PTDiffusionNumberTimeSeriesQueryResult; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionStringFetchResult; +@class PTDiffusionStringTimeSeriesQueryResult; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionNumberRequestDelegate; +@protocol PTDiffusionNumberRequestStreamDelegate; +@protocol PTDiffusionNumberSessionResponseStreamDelegate; +@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionNumberValueStreamDelegate; +@protocol PTDiffusionStringRequestDelegate; +@protocol PTDiffusionStringRequestStreamDelegate; +@protocol PTDiffusionStringSessionResponseStreamDelegate; +@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionStringValueStreamDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Support for creating value streams for primitive values including + string and numeric types. + + @since 6.0 + */ +@interface PTDiffusionPrimitive : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Creates a value stream capable of receiving double-precision floating point + numbers (Eight-byte IEEE 754). + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)doubleFloatNumberValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving 64-bit integer values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)int64NumberValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving string values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)stringValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving double-precision floating point + numeric time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)doubleFloatNumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving 64-bit integer time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)int64NumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving string time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)stringTimeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving double-precision floating point + numeric requests (Eight-byte IEEE 754) for a handler registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)doubleFloatRequestHandlerWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving 64-bit integer requests for a + handler registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)int64RequestHandlerWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving string requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)stringRequestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving double-precision floating point + numeric requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)doubleFloatRequestStreamWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving 64-bit integer requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)int64RequestStreamWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving string requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)stringRequestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving double-precision floating point + numeric responses from discrete sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)doubleFloatSessionResponseStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving 64-bit integer responses from + discrete sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)int64SessionResponseStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving string responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)stringSessionResponseStreamWithDelegate:(id)delegate; + +/** + Creates a request that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param value The value to send as the request. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequest *)requestWithDouble:(double)value; + +/** + Creates a request that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param number The value to send as the request. This may be `nil` in order to + create a 'null' request. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(nullable PTDiffusionRequest *)requestWithDoubleFloatNumber:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a request that can be used to send the given 64-bit integer value using + messaging. + + @param value The value to send as the request. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequest *)requestWithLongLong:(long long)value; + +/** + Creates a request that can be used to send the given 64-bit integer value using + messaging. + + @param number The value to send as the request. This may be `nil` in order to + create a 'null' request. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(nullable PTDiffusionRequest *)requestWithInt64Number:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a request that can be used to send the given string using messaging. + + @param string The value to send as the request. This may be `nil` in order to + create a 'null' request. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(nullable PTDiffusionRequest *)requestWithString:(nullable NSString *)string + error:(NSError **)error; + +/** + Creates a response that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param value The value to send as the response. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionResponse *)responseWithDouble:(double)value; + +/** + Creates a response that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param number The value to send as the response. This may be `nil` in order to + create a 'null' response. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new response, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(nullable PTDiffusionResponse *)responseWithDoubleFloatNumber:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a response that can be used to send the given 64-bit integer value + using messaging. + + @param value The value to send as the response. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionResponse *)responseWithLongLong:(long long)value; + +/** + Creates a response that can be used to send the given 64-bit integer value + using messaging. + + @param number The value to send as the response. This may be `nil` in order to + create a 'null' response. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new response, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(nullable PTDiffusionResponse *)responseWithInt64Number:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a response that can be used to send the given string using messaging. + + @param string The value to send as the response. This may be `nil` in order to + create a 'null' response. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new response, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(nullable PTDiffusionResponse *)responseWithString:(nullable NSString *)string + error:(NSError **)error; + +/** + Returns an update constraint requiring the current value of a topic to match + the given double-precision floating point (Eight-byte IEEE 754) value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param value The value to be matched against the topic value. + + @return The new constraint, or `nil` on failure. + + @since 6.3 + */ ++(PTDiffusionUpdateConstraint *)updateConstraintWithDouble:(double)value; + +/** + Returns an update constraint requiring the current value of a topic to match + the given double-precision floating point (Eight-byte IEEE 754) value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param number The value to be matched against the topic value. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new constraint, or `nil` on failure. + + @exception NSInvalidArgumentException If the number argument is `nil`. + + @since 6.3 + */ ++(nullable PTDiffusionUpdateConstraint *)updateConstraintWithDoubleFloatNumber:(NSNumber *)number + error:(NSError **)error; + +/** + Returns an update constraint requiring the current value of a topic to match + the given 64-bit integer value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param value The value to be matched against the topic value. + + @return The new constraint, or `nil` on failure. + + @since 6.3 + */ ++(PTDiffusionUpdateConstraint *)updateConstraintWithLongLong:(long long)value; + +/** + Returns an update constraint requiring the current value of a topic to match + the given 64-bit integer value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param number The value to be matched against the topic value. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new constraint, or `nil` on failure. + + @exception NSInvalidArgumentException If the number argument is `nil`. + + @since 6.3 + */ ++(nullable PTDiffusionUpdateConstraint *)updateConstraintWithInt64Number:(NSString *)number + error:(NSError **)error; + +/** + Returns an update constraint requiring the current value of a topic to match + the given string value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param string The value to be matched against the topic value. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new constraint, or `nil` on failure. + + @exception NSInvalidArgumentException If the number argument is `nil`. + + @since 6.3 + */ ++(nullable PTDiffusionUpdateConstraint *)updateConstraintWithString:(NSString *)string + error:(NSError **)error; + +@end + +/** + @brief Extension adding support for responding to requests using primitive + values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionPrimitive) + +/** + Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a + request. + + @param value The value to send in response. + + @since 6.0 + */ +-(void)respondWithDouble:(double)value; + +/** + Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a + request. + + @param number The value to send in response. This may be `nil` in order to send + a 'null' response. + + @param error Location to store a reason if this method returns `NO` to + indicate failure. + + @return `YES` if a response was queued for dispatch or `NO` if the supplied + number could not be encoded using this data type. + + @since 6.0 + */ +-(BOOL)respondWithDoubleFloatNumber:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Dispatch a 64-bit integer response to a request. + + @param value The value to send in response. + + @since 6.0 + */ +-(void)respondWithLongLong:(long long)value; + +/** + Dispatch a 64-bit integer response to a request. + + @param number The value to send in response. This may be `nil` in order to send + a 'null' response. + + @param error Location to store a reason if this method returns `NO` to + indicate failure. + + @return `YES` if a response was queued for dispatch or `NO` if the supplied + number could not be encoded using this data type. + + @since 6.0 + */ +-(BOOL)respondWithInt64Number:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Dispatch a string response to a request. + + @param string The value to send in response. This may be `nil` in order to send + a 'null' response. + + @param error Location to store a reason if this method returns `NO` to + indicate failure. + + @return `YES` if a response was queued for dispatch or `NO` if the supplied + string could not be encoded using this data type. + + @since 6.0 + */ +-(BOOL)respondWithString:(nullable NSString *)string + error:(NSError **)error; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a primitive value in response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionPrimitive) + +/** + Send a request for which a string response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; + +/** + Send a request for which a double-precision floating point (Eight-byte IEEE 754) + response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; + +/** + Send a request for which a 64-bit integer response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a string response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; + +/** + Send a request to a session for which a double-precision floating point + (Eight-byte IEEE 754) response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; + +/** + Send a request to a session for which a 64-bit integer response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using primitive values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) + +/** + Update a time series topic by appending a new string value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + stringValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new string value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + stringValue:(nullable NSString *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new double-precision floating point + (Eight-byte IEEE 754) value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) appendToTopicPath:(NSString *)topicPath + doubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new double-precision floating point + (Eight-byte IEEE 754) value with a supplied timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void) appendToTopicPath:(NSString *)topicPath + doubleFloatNumberValue:(nullable NSNumber *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new 64-bit integer value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + int64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new 64-bit integer value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + int64NumberValue:(nullable NSNumber *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new string value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + stringValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new double-precision floating point + (Eight-byte IEEE 754) value that overrides the value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void) editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + doubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new 64-bit integer value that + overrides the value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + int64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have string values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + stringCompletionHandler:(void (^)(PTDiffusionStringTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have double-precision + floating point (Eight-byte IEEE 754) values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + doubleFloatNumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have 64-bit integer + values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + int64NumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with + primitive values. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionPrimitive) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with string. + + The string data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as strings will be + removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / + PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / + PTDiffusionFetchRequest::beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchStringValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionStringFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with double-precision floating point (Eight-byte IEEE + 754). + + The doubleFloat data type constrains the topic types. So, any topic types + specified in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as + double-precision floating point (Eight-byte IEEE 754) will be removed from the + list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / + PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / + PTDiffusionFetchRequest::beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchDoubleFloatNumberValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with 64-bit integer. + + The int64 data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as 64-bit integer will + be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / + PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / + PTDiffusionFetchRequest::beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchInt64NumberValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with primitive values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionPrimitive) + +/** + Sets a topic to a specified string value, or null. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toStringValue:(nullable NSString *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toDoubleValue:(double)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) number value, or null. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toDoubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified 64-bit integer value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toLongLongValue:(long long)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified 64-bit integer number value, or null. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toInt64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified string value, or null, if a constraint is + satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toStringValue:(nullable NSString *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toDoubleValue:(double)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) number value, or null, if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toDoubleFloatNumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified 64-bit integer value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toLongLongValue:(long long)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified 64-bit integer number value, or null, if a + constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toInt64NumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a string value, or null. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#string. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToStringValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleValue:(double)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) number value, or null. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a 64-bit integer value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToLongLongValue:(long long)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a 64-bit integer number value, or null. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToInt64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a string value, or null, if a constraint + is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#string. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToStringValue:(nullable NSString *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) value if a constraint is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleValue:(double)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) number value, or null, if a constraint is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleFloatNumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a 64-bit integer value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToLongLongValue:(long long)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a 64-bit integer number value, or null, + if a constraint is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToInt64NumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with string + values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values if a constraint is + satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + string values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#string. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + 64-bit integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#int64. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + string values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#string. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values if a constraint is + satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + 64-bit integer values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#int64. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +@end + +/** + @brief Extension adding support to partial JSON update constraints for + requiring primitive values at locations referenced with a JSON pointer. + + @since 6.3 + */ +@interface PTDiffusionPartialJSONUpdateConstraint (PTDiffusionPrimitive) + +/** + Require a double-precision floating point (Eight-byte IEEE 754) value at a + specific position in the JSON object. + + @param value The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given double value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If pointer is `nil`. + + @since 6.3 + */ +-(nullable instancetype)withDoubleValue:(double)value + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a double-precision floating point (Eight-byte IEEE 754) number value at + a specific position in the JSON object. + + @param number The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given number value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If number or pointer is `nil`. + + @note To match a JSON `null` at the referenced location use + PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: + + @since 6.3 + */ +-(nullable instancetype)withDoubleFloatNumberValue:(NSNumber *)number + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a 64-bit integer value at a specific position in the JSON object. + + @param value The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given long value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If pointer is `nil`. + + @since 6.3 + */ +-(nullable instancetype)withLongLongValue:(long long)value + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a 64-bit integer number value at a specific position in the JSON + object. + + @param number The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given 64-bit number value + at the given specific position in the JSON object. + + @exception NSInvalidArgumentException If number or pointer is `nil`. + + @note To match a JSON `null` at the referenced location use + PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: + + @since 6.3 + */ +-(nullable instancetype)withInt64NumberValue:(NSNumber *)number + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a string value at a specific position in the JSON object. + + @param string The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given string value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If string or pointer is `nil`. + + @note To match a JSON `null` at the referenced location use + PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: + + @since 6.3 + */ +-(nullable instancetype)withStringValue:(NSString *)string + atPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h new file mode 100644 index 0000000..8e03dfd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h @@ -0,0 +1,742 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionRecordV2Delta; +@class PTDiffusionRecordV2FetchResult; +@class PTDiffusionRecordV2Model; +@class PTDiffusionRecordV2Schema; +@class PTDiffusionRecordV2TimeSeriesQueryResult; +@class PTDiffusionRecordV2UpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionResponse; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionRecordV2RequestDelegate; +@protocol PTDiffusionRecordV2RequestStreamDelegate; +@protocol PTDiffusionRecordV2SessionResponseStreamDelegate; +@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionRecordV2ValueStreamDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable record value with support for binary deltas. + + @since 6.0 + */ +@interface PTDiffusionRecordV2 : PTDiffusionBytes + +/** + Parses the value into a model based upon a specified schema. + + This assumes that data is compatible with the schema and does not do any + validation. There is no need to validate the data if this has been done on + entry or at the server. However, if the data is invalid then issues may occur + when attempting to access it. + + If it is not certain that the data is valid then the + #validatedModelWithSchema:error: method should be used instead. + + @param schema The schema to use for parsing the data. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable model derived from the data value; or `nil` if an error + occurred, in which case `*error` will be populated with the failure reason. + Reasons for failure include: + - the data value does not contain correctly encoded record data. + + @since 6.0 + */ +-(nullable PTDiffusionRecordV2Model *)modelWithSchema:(PTDiffusionRecordV2Schema *)schema + error:(NSError **)error; + +/** + Parses the value into a model based upon a specified schema. + + @param schema The schema to use for parsing the data. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable model derived from the data value; or `nil` if an error + occurred, in which case `*error` will be populated with the failure reason. + Reasons for failure include: + - the data value does not contain correctly encoded record data. + - the data value is incompatible with the supplied schema. + */ +-(nullable PTDiffusionRecordV2Model *)validatedModelWithSchema:(PTDiffusionRecordV2Schema *)schema + error:(NSError **)error; + +/** + Returns the data value as an array of arrays of strings. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable array of records derived from the data value; or `nil` if + an error occurred, in which case `*error` will be populated with the failure + reason. + + @since 6.0 + */ +-(nullable NSArray *> *)recordsWithError:(NSError **)error; + +/** + Returns the data value as an array of fields. + + This disregards record boundaries. If there is more than one record, they are + concatenated to produce a list of all of the fields. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable array of fields derived from the data value; or `nil` if + an error occurred, in which case `*error` will be populated with the failure + reason. + + @note This method would normally only be used when it is known that there is + only one record. + + @since 6.0 + */ +-(nullable NSArray *)fieldsWithError:(NSError **)error; + +/** + Compare this value with an earlier version to calculate a structural delta. + + @param originalRecord The original value to compare with this value. + + @return Structural delta between the given value and the current value. + + @since 6.0.2 + */ +-(PTDiffusionRecordV2Delta *)diffFromOriginalRecord:(PTDiffusionRecordV2 *)originalRecord; + +/** + A request that can be used to send this value using messaging. + + @since 6.0.1 + */ +@property(nonatomic, readonly) PTDiffusionRequest* request; + +/** + A response that can be used to send this value using messaging. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionResponse* response; + +/** + An update constraint requiring the current value of a topic to match this + value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; + +/** + Creates a value stream capable of receiving record values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving record time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving record requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving record requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving record responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; + +/** + Compares the receiver to the given record. + + @param record The record object with which to compare the receiver. + + @return `YES` if the data in record is equal to the contents of the receiver, + otherwise `NO`. + + @note Two record objects are equal if they hold the same number of data bytes, + and if the bytes at the same position in the objects are the same. + + @since 6.3 + */ +-(BOOL)isEqualToRecord:(nullable PTDiffusionRecordV2 *)record; + +@end + +/** + @brief Extension adding support for responding to requests using record values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionRecordV2) + +/** + Dispatch a response to a request. + + @param record The value to send in response. + + @exception NSInvalidArgumentException Raised if the record argument is `nil`. + + @since 6.0 + */ +-(void)respondWithRecord:(PTDiffusionRecordV2 *)record; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a record response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionRecordV2) + +/** + Send a request for which a record response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a record response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using record values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionRecordV2) + +/** + Update a time series topic by appending a new record value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + recordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new record value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + recordValue:(PTDiffusionRecordV2 *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new record value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + recordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have record values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + recordCompletionHandler:(void (^)(PTDiffusionRecordV2TimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with + records. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionRecordV2) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with records. + + The record data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as + records will be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchRecordValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionRecordV2FetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with record values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionRecordV2) + +/** + Sets a topic to a specified record value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toRecordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified record value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toRecordValue:(PTDiffusionRecordV2 *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a record value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toRecordValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToRecordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a record value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toRecordValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToRecordValue:(PTDiffusionRecordV2 *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Creates an update stream to use for updating a specific topic with record + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + +/** + Creates an update stream to use for updating a specific topic with record + values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint; + +/** + Creates an update stream to use for creating and updating a specific topic with + record values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification; + +/** + Creates an update stream to use for creating and updating a specific topic with + record values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h new file mode 100644 index 0000000..3150322 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h @@ -0,0 +1,79 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Builds free format PTDiffusionRecordV2 values. + + This type of builder may be used to generate free format recordV2 values which + are not constrained by a PTDiffusionRecordV2Schema. + + Every mutating method returns the builder instance allowing calls to be + chained. + + @since 6.0.1 + */ +@interface PTDiffusionRecordV2Builder : NSObject + +/** + Adds a new record comprising the given fields. + + @param fields Field values. This may be an empty array, in which case the new + record is added with no fields. + + @return Builder instance with the new record added. + + @since 6.0.1 + */ +-(instancetype)addRecordWithFields:(NSArray *)fields; + +/** + Adds one or more field values. + + If there is a current record, adds the fields to the end of the current record; + otherwise, adds a new record and adds the fields to that. + + @param fields Field values. This may be an empty array, in which case nothing + changes. + + @return Builder instance with the new field values added. + + @since 6.0.1 + */ +-(instancetype)addFields:(NSArray *)fields; + +/** + Clears all current values from the builder allowing it to be reused to generate new data. + + @return Builder instance with all current values cleared. + + @since 6.0.1 + */ +-(instancetype)clear; + +/** + Returns an immutable record from the current state of this builder. + + @return Immutable record from the current state of this builder. + + @since 6.0.1 +*/ +-(PTDiffusionRecordV2 *)build; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h new file mode 100644 index 0000000..0b42ba3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h @@ -0,0 +1,66 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2DeltaChange; +@class PTDiffusionRecordV2Schema; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A description of the differences between two record values. + + @since 6.0.2 + */ +@interface PTDiffusionRecordV2Delta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a list of the changes represented by the delta with reference to the + specified schema. + + The schema supplied must comply with the data format of the delta. No + validation takes place, so if the schema does not match the data then the + results may be unpredictable. + + @param schema The schema to use for interpreting this delta. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return List of the changes represented by the delta with reference to the + specified schema. + + @since 6.0.2 + */ +-(nullable NSArray *)changesWithSchema:(PTDiffusionRecordV2Schema *)schema + error:(NSError **)error; + +/** + Compares the receiver to the given recordV2 delta. + + @param delta The object with which to compare the receiver. + + @return `YES` if the delta is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0.2 + */ +-(BOOL)isEqualToRecordV2Delta:(nullable PTDiffusionRecordV2Delta *)delta; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h new file mode 100644 index 0000000..c98bb5d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h @@ -0,0 +1,100 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2DeltaChangeType; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Represents a single change between one record value and another. + + @since 6.0.2 + */ +@interface PTDiffusionRecordV2DeltaChange : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @brief A change contained within a record delta. + + @since 6.0.2 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2DeltaChangeType* type; + +/** + The name of the affected record. + + @since 6.0.2 + */ +@property(nonatomic, readonly) NSString* recordName; + +/** + The index of the affected record. + + This will be `0` for the first (or only) record occurrence with the given name. + + @since 6.0.2 + */ +@property(nonatomic, readonly) SInt32 recordIndex; + +/** + The name of the affected field. + + This will be a zero length (empty) string if the type is + PTDiffusionRecordV2DeltaChangeType#recordsAdded or + PTDiffusionRecordV2DeltaChangeType#recordsRemoved. + + @since 6.0.2 + */ +@property(nonatomic, readonly) NSString* fieldName; + +/** + The index of the affected field. + + This will be `0` if the type is + PTDiffusionRecordV2DeltaChangeType#recordsAdded or + PTDiffusionRecordV2DeltaChangeType#recordsRemoved. + + @since 6.0.2 + */ +@property(nonatomic, readonly) SInt32 fieldIndex; + +/** + The string key representation of the affected item in the form + `recordName(recordIndex).fieldName(fieldIndex)` or just + `recordName(recordIndex)` if the type is + PTDiffusionRecordV2DeltaChangeType#recordsAdded or + PTDiffusionRecordV2DeltaChangeType#recordsRemoved. + + @since 6.0.2 + */ +@property(nonatomic, readonly) NSString* key; + +/** + Compares the receiver to the given recordV2 delta change. + + @param change The object with which to compare the receiver. + + @return `YES` if the change is equal to the contents of the receiver, + otherwise `NO`. + + @since 6.0.2 + */ +-(BOOL)isEqualToRecordV2DeltaChange:(nullable PTDiffusionRecordV2DeltaChange *)change; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h new file mode 100644 index 0000000..35b3210 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h @@ -0,0 +1,98 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The type of change represented by a record delta. + + @since 6.0.2 + */ +@interface PTDiffusionRecordV2DeltaChangeType : PTDiffusionEnumeration + +/** + The change indicates that a field had its value changed. + + This could be a field that has had its value changed or a new field that has + been added at the end of a variable length record. + + The change will contain name and index details of both the record and the + field. + + @return Instance indicating that a field had its value changed. + + @since 6.0.2 + */ ++(instancetype)fieldChanged; + +/** + The change indicates that one or more field values have been added. + + This will only occur when variable multiplicity fields are used within records. + + The change will contain name and index of the record and the name and index of + the first field added. + + @return Instance indicating that one or more field values have been added. + + @since 6.0.2 + */ ++(instancetype)fieldsAdded; + +/** + The change indicates that a field value has been removed. + + This will only occur when variable multiplicity fields are used within records. + + The change will contain name and index details of the record and the name and + index of the first field removed. + + @return Instance indicating that a field value has been removed. + + @since 6.0.2 + */ ++(instancetype)fieldsRemoved; + +/** + The change indicates that one or more records have been added. + + This will only occur when variable multiplicity records are in use. + + The change will contain only the record name and the index of the first record + added. + + @return Instance indicating that one or more records have been added. + + @since 6.0.2 + */ ++(instancetype)recordsAdded; + +/** + The change indicates that one or more records have been removed. + + This will only occur when variable multiplicity records are in use. + + The change will contain only the record name and the index of the first record + removed. + + @return Instance indicating that one or more records have been removed. + + @since 6.0.2 + */ ++(instancetype)recordsRemoved; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h new file mode 100644 index 0000000..ce9ae6e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2FetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a record fetch operation issued to the + server. + + A record fetch operation is issued using the + PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionRecordV2FetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * recordResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h new file mode 100644 index 0000000..a3808c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a record fetch operation for a single + selected topic. + + A record fetch operation is issued using the + PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionRecordV2FetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) PTDiffusionRecordV2* record; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h new file mode 100644 index 0000000..407076f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h @@ -0,0 +1,183 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A data model based upon a schema. + + A read only model can be created from any PTDiffusionRecordV2 object using the + PTDiffusionRecordV2#modelWithSchema: method. The model then provides direct + access to the fields within the data. Fields may be accessed either by + explicitly specifying the record and field occurrence or by specifying a key of + the form: + + `recordName(recordIndex).fieldName(fieldIndex)` + + Indexes start from 0 and if omitted then 0 is assumed. The record name may also + be omitted, in which case the first record definition. This form of addressing + is useful when there is only one record definition. + + Examples of valid keys include: + + | Key | Meaning | + | --------------------------- | ----------------------------------------------------------------------------- | + | `Address(4).AddressLine(3)` | The 4th `AddressLine` occurrence within the 5th `Address` record. | + | `Address.Name` | The first (or only) `Name` field within the first (or only) `Address` record. | + | `AddressLine(1)` | The 2nd `AddressLine` field within the first (or only) record. | + | `Name` | The first (or only) `Name` field within the first (or only) record. | + + The #recordCountWithRecordName:error: and + #fieldCountWithRecordName:recordIndex:fieldName:error: methods are useful for + determining the actual number of occurrences of variable multiplicity items. + + @since 6.0 + */ +@interface PTDiffusionRecordV2Model : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns an immutable record instance generated from this model; or `nil` if an + error occurred, in which case `*error` will be populated with the failure + reason. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return Immutable record instance generated from this model. + + @since 6.0 + */ +-(nullable PTDiffusionRecordV2 *)valueWithError:(NSError **)error; + +/** + Returns the actual number of occurrences of a named field within a specified + record occurrence. + + For all but variable fields this returns the schema defined number of + occurrences of the field. + + @param recordName The record name. + + @param recordIndex The record index. + + @param fieldName The field name. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The actual number of occurrences of the field as an unsigned integer; + or `nil` if an error occurred, in which case `*error` will be populated with + the failure reason. Reasons for failure include: + - either `recordName` or `fieldName` are not defined in the schema. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If either recordName or fieldName is + `nil`, or if recordIndex is negative. + + @since 6.0 + */ +-(nullable NSNumber *)fieldCountWithRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldName:(NSString *)fieldName + error:(NSError **)error; + +/** + Returns the actual number of occurrences of a named record. + + If the record is not variable, this is the same as the defined number of + occurrences in the schema. + + @param recordName The record name. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The actual number of occurrences of the record as an unsigned integer; + or `nil` if an error occurred, in which case `*error` will be populated with + the failure reason. Reasons for failure include: + - `recordName` is not defined in the schema. + + @exception NSInvalidArgumentException If recordName is `nil`. + + @since 6.0 + */ +-(nullable NSNumber *)recordCountWithRecordName:(NSString *)recordName + error:(NSError **)error; + +/** + Get a field value. + + This allows an item to be addressed using a key of the form + `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in + which case 0 is assumed. The record part may also be omitted in which case the + first occurrence of the first record is assumed. + + @param key The field key. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The field value; or `nil` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the key does not address a valid field. + - an index is out of bounds. + - the key format is invalid. + - an index is not a valid number. + + @exception NSInvalidArgumentException If key is `nil`. + + @since 6.0 + */ +-(nullable NSString *)fieldValueForKey:(NSString *)key + error:(NSError **)error; + +/** + Get a field value. + + @param recordName The name of the record. + + @param recordIndex the index of the record. + + @param fieldName The name of the field. + + @param fieldIndex The index of the field. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The field value; or `nil` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - either `recordName` or `fieldName` are not defined in the schema. + - either `recordIndex` or `fieldIndex` is out of bounds. + + @exception NSInvalidArgumentException If either recordName or fieldName is + `nil`, recordIndex is negative or fieldIndex is negative. + + @since 6.0 + */ +-(nullable NSString *)fieldValueForRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldName:(NSString *)fieldName + fieldIndex:(SInt32)fieldIndex + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h new file mode 100644 index 0000000..f840fb6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling record messaging requests with a + handler registered at the server. + + @see PTDiffusionRecordV2 + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionRecordV2RequestDelegate + +/** + Called when a record request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param record The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h new file mode 100644 index 0000000..9902618 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling RecordV2 messaging requests. + + @see PTDiffusionRecordV2 + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionRecordV2RequestStreamDelegate + +/** + Called when a record request has been received. + + @param stream The stream that received the request. + + @param record The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h new file mode 100644 index 0000000..9eb1c8b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h @@ -0,0 +1,114 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionMutableRecordV2Model; +@class PTDiffusionRecordV2SchemaRecord; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A schema. + + A schema describes data value format in terms of one or more record definitions. + A record definition describes the layout of a record and comprises one or more + field definitions. + + Within the data value there can be multiple occurrences of a record or field + described by a single definition. The defined (or allowed, when describing + variable numbers) number of occurrences of each definition is referred to as + its 'multiplicity'. The multiplicity can be fixed (the item occurs a fixed + number of times), or variable (the item occurs from a minimum number of times + to a maximum number of times). If a variable field is used it must be the last + in a record definition and if a variable record is used it must be the last in + the schema definition. + + A field may be defined as of type 'string', 'integer' or 'decimal'. A decimal + type has a further property of 'scale' which defines the number of digits to + the right of the decimal point. + + @see PTDiffusionRecordV2SchemaBuilder + + @since 6.0 + */ +@interface PTDiffusionRecordV2Schema : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a schema object initialized from the given JSON definition. + + @param jsonData Encoded JSON string representation of the schema. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable schema derived from the JSON representation; or `nil` if + an error occurred, in which case `*error` will be populated with the failure + reason. + + @since 6.0 + */ ++(nullable instancetype)schemaWithJSONData:(NSData *)jsonData + error:(NSError **)error; + +/** + Returns the schema in a JSON format. + + @return Schema in a JSON format. + + @since 6.0 + */ +-(NSData *)JSONData; + +/** + Create a mutable model based upon the schema. + + The model will be created with all mandatory record occurrences and all + mandatory field occurrences initialized to default values. + + Such a model may be mutated and used to generate updated PTDiffusionRecordV2 + instances for updating purposes. + + @return a new initialized model. + + @since 6.0 + */ +-(PTDiffusionMutableRecordV2Model *)createMutableModel; + +/** + An immutable, ordered list of record definitions. + + There will be at least one. + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray * records; + +/** + Compares the receiver to the given schema. + + @param schema The schema object with which to compare the receiver. + + @return `YES` if the schema is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2Schema:(nullable PTDiffusionRecordV2Schema *)schema; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h new file mode 100644 index 0000000..c709608 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h @@ -0,0 +1,342 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2Schema; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Used to build an immutable PTDiffusionRecordV2Schema. + + A schema defines the records and fields that may occur in a RecordV2 topic + value. + + The schema must declare at least one record type and every record must have at + least one field type declared. + + Every record type and field type has a 'multiplicity' which defines the number + of times that the record or field may occur within the data. Multiplicity is + specified as a 'minimum' and 'maximum' number of occurrences or where the + minimum and maximum are the same (fixed multiplicity) then the multiplicity may + be specified as a single 'occurs' value. If the minimum and maximum are + different, this is referred to a 'variable' multiplicity. Only the last record + declared or the last field within a record may have variable multiplicity. The + maximum value may be declared as -1 to indicate that the record or field can + have an unlimited number of occurrences. + + The builder is used to add a record definition followed by the fields within + it. After all fields have been added to a record another may then be added, and + so on, and then finally #build is queried to return an immutable schema + object. + + Every mutating method returns the builder instance allowing calls to be + chained. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaBuilder : NSObject + +/** + Returns an immutable schema from the current state of this builder. + + @return Immutable schema from the current state of this builder. + + @exception NSInternalInconsistencyException No records have been specified yet + for this builder instance. + + @since 6.0 + */ +-(PTDiffusionRecordV2Schema *)build; + +/** + Add a new single occurrence record to the schema. + + This is the equivalent to calling #addRecordWithName:occurs: with a value of + `1` for `occurs`. + + @param name The record name. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addRecordWithName:(NSString *)name; + +/** + Add a new fixed multiplicity record to the schema. + + This is the equivalent to calling #addRecordWithName:min:max: with the value of + `occurs` for both `min` and `max`. + + @param name The record name. + + @param occurs The number of times the record is to occur. This must be a + positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addRecordWithName:(NSString *)name + occurs:(SInt32)occurs; + +/** + Add a new record to the schema. + + @param name The record name. + + @param min The minimum number of occurrences of the record. + + @param max The maximum number of occurrences of the record. This must either be + `-1` to indicate an unlimited number or it must be a positive number greater + than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addRecordWithName:(NSString *)name + min:(SInt32)min + max:(SInt32)max; + +/** + Add a new single occurrence string field to the current record. + + This is the equivalent to calling #addStringWithName:occurs: with a value of + `1` for `occurs`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addStringWithName:(NSString *)name; + +/** + Add a new fixed multiplicity string field to the current record. + + This is the equivalent to calling #addStringWithName:min:max: with the value of + `occurs` for both `min` and `max`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param occurs The number of times the field is to occur within the record. This + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addStringWithName:(NSString *)name + occurs:(SInt32)occurs; + +/** + Add a new string field to the current record. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param min The minimum number of occurrences of the field within the record. + + @param max The maximum number of occurrences of the field within the record. + This must either be `-1` to indicate an unlimited number or it must be a + positive number greater than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addStringWithName:(NSString *)name + min:(SInt32)min + max:(SInt32)max; + +/** + Add a new single occurrence integer field to the current record. + + This is the equivalent to calling #addIntegerWithName:occurs: with a value of + `1` for `occurs`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addIntegerWithName:(NSString *)name; + +/** + Add a new fixed multiplicity integer field to the current record. + + This is the equivalent to calling #addIntegerWithName:min:max: with the value + of `occurs` for both `min` and `max`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param occurs The number of times the field is to occur within the record. This + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addIntegerWithName:(NSString *)name + occurs:(SInt32)occurs; + +/** + Add a new integer field to the current record. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param min The minimum number of occurrences of the field within the record. + + @param max The maximum number of occurrences of the field within the record. + This must either be `-1` to indicate an unlimited number or it must be a + positive number greater than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addIntegerWithName:(NSString *)name + min:(SInt32)min + max:(SInt32)max; + +/** + Add a new single occurrence decimal field to the current record. + + This is the equivalent to calling #addDecimalWithName:scale:occurs: with a + value of `1` for `occurs`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param scale The scale of the field (the number of decimal places). This must + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `scale` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addDecimalWithName:(NSString *)name + scale:(SInt32)scale; + +/** + Add a new fixed multiplicity decimal field to the current record. + + This is the equivalent to calling #addDecimalWithName:scale:min:max: with the + value of `occurs` for both `min` and `max`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param scale The scale of the field (the number of decimal places). This must + must be a positive value. + + @param occurs The number of times the field is to occur within the record. This + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`, `scale` is less than + one or `occurs` is less than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addDecimalWithName:(NSString *)name + scale:(SInt32)scale + occurs:(SInt32)occurs; + +/** + Add a new decimal field to the current record. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param scale The scale of the field (the number of decimal places). This must + must be a positive value. + + @param min The minimum number of occurrences of the field within the record. + + @param max The maximum number of occurrences of the field within the record. + This must either be `-1` to indicate an unlimited number or it must be a + positive number greater than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addDecimalWithName:(NSString *)name + scale:(SInt32)scale + min:(SInt32)min + max:(SInt32)max; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h new file mode 100644 index 0000000..18e6233 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2SchemaFieldType; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A field definition within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaField : PTDiffusionRecordV2SchemaNode + +/** + The field type. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2SchemaFieldType* type; + +/** + The scale of a decimal field or zero for other types. + + @since 6.0 + */ +@property(nonatomic, readonly) SInt32 scale; + +/** + Compares the receiver to the given schema field. + + @param field The schema field object with which to compare the receiver. + + @return `YES` if the field is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2SchemaField:(nullable PTDiffusionRecordV2SchemaField *)field; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h new file mode 100644 index 0000000..9370ef7 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Type of field defined within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaFieldType : PTDiffusionEnumeration + +/** + Plain string. + + @return Instance representing the plain string schema field type. + + @since 6.0 + */ ++(instancetype)string; + +/** + Integer. + + @return Instance representing the integer schema field type. + + @since 6.0 + */ ++(instancetype)integer; + +/** + Decimal. + + @return Instance representing the decimal schema field type. + + @since 6.0 + */ ++(instancetype)decimal; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h new file mode 100644 index 0000000..6e796e9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A node within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaNode : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The node name. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* name; + +/** + The minimum number of occurrences of the node within its parent. + + This may be zero for a variable multiplicity field, otherwise it will be a + positive value. + + @since 6.0 +*/ +@property(nonatomic, readonly) SInt32 min; + +/** + The maximum number of occurrances of the node within its parent. + + This will be a positive value greater than or equal to the minimum value, or + -1 to indicate an unlimited number. + + @since 6.0 +*/ +@property(nonatomic, readonly) SInt32 max; + +/** + `YES` if the node has variable multiplicity - i.e. `min != max`. + + @since 6.0 + */ +@property(nonatomic, readonly, getter=isVariable) BOOL variable; + +/** + Compares the receiver to the given schema node. + + @param node The schema node object with which to compare the receiver. + + @return `YES` if the node is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2SchemaNode:(nullable PTDiffusionRecordV2SchemaNode *)node; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h new file mode 100644 index 0000000..2cf810e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h @@ -0,0 +1,50 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2SchemaField; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A record definition within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaRecord : PTDiffusionRecordV2SchemaNode + +/** + An ordered list of the field definitions within the record. + + There will be at least one. + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* fields; + +/** + Compares the receiver to the given schema record. + + @param record The schema record object with which to compare the receiver. + + @return `YES` if the record is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2SchemaRecord:(nullable PTDiffusionRecordV2SchemaRecord *)record; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h new file mode 100644 index 0000000..a122db1 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling record messaging responses from + individual sessions. + + @see PTDiffusionRecordV2 + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionRecordV2SessionResponseStreamDelegate + +/** + Called when a session responds to a request with a record. + + @param stream The stream that received the response. + + @param record The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithRecord:(PTDiffusionRecordV2 *)record + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h new file mode 100644 index 0000000..c6c096b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as a record. + + @since 6.0 + */ +@interface PTDiffusionRecordV2TimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The record value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2* record; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..1baa01e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2TimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + record values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with record values. + + @since 6.0 + */ +@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a record value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldRecordEvent The previous event. If `nil` then this is the first event. + + @param newRecordEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldRecordEvent:(nullable PTDiffusionRecordV2TimeSeriesEvent *)oldRecordEvent + newRecordEvent:(PTDiffusionRecordV2TimeSeriesEvent *)newRecordEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h new file mode 100644 index 0000000..4b532e6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2TimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of record time series events. + + @since 6.0 + */ +@interface PTDiffusionRecordV2TimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The record time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* recordEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h new file mode 100644 index 0000000..9d92497 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + record values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionRecordV2UpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2* value; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either value or completionHandler is + `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h new file mode 100644 index 0000000..0a94cc5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for record + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for record + topics. + + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@protocol PTDiffusionRecordV2ValueStreamDelegate + +/** + An update was received for a topic path handled by a record value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldRecord The previous value. If `nil` then this is the first value. + + @param newRecord The new value derived from the last update received from the + server. + + @since 6.0 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldRecord:(nullable PTDiffusionRecordV2 *)oldRecord + newRecord:(PTDiffusionRecordV2 *)newRecord; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h new file mode 100644 index 0000000..ca77e51 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A reference to a registered handle. + + Such a reference is provided once a handler with a server-side presence has + been registered. + + @since 6.1 + */ +@interface PTDiffusionRegistration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Request that the handler is unregistered from the server. + + After the handler is unregistered, the completionHandler will be notified. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.1 + */ +-(void)closeWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Request that the handler is unregistered from the server. + + If the handler has already been unregistered, calling this method has no effect. + + @note Before 6.1 this method was defined on PTDiffusionTopicTreeRegistration. + + @since 5.7 + */ +-(void)close; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h new file mode 100644 index 0000000..de32eb6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h @@ -0,0 +1,78 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRemoteServerConnectionOption; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Interface for a RemoteServer specification + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionRemoteServer : NSObject + + +/** + The remote server name + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *name; + + +/** + The URL for connection to remote server. + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *url; + + +/** + The principal used for the remote server connection + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *principal; + + +/** + The remote server connection options + + @since 6.5 + */ +@property (nonatomic, readonly) NSDictionary *connectionOptions; + + +/** + The missing topic notification filter expression or null if + one has not been specified. + + @since 6.7 + */ +@property (nonatomic, readonly) NSString *missingTopicNotificationFilter; + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h new file mode 100644 index 0000000..4251fa9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h @@ -0,0 +1,157 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRemoteServerConnectionOption; +@class PTDiffusionRemoteServer; +@class PTDiffusionCredentials; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A Remote Server builder. + + A builder of this type is used to create instances of {@link PTDiffusionRemoteServer} + that can be supplied to {@link PTDiffusionRemoteServersFeature#createRemoteServer:completionHandler: createRemoteServer:}. + + @since 6.7 + */ +@interface PTDiffusionRemoteServerBuilder : NSObject + +/** + Reset the builder. + + @return this builder. + + @since 6.7 + */ +-(instancetype)reset; + + +/** + Specifies the name of a principal used by the remote server to + connect to the primary server. + + The default, if not specified, is the anonymous principal. + + @param principal principal name of a zero length string to indicate an + anonymous connection. + + @return this builder. + + @since 6.7 + */ +-(instancetype)principal:(NSString * _Nullable)principal; + + +/** + Specifies the credentials to use when connecting to the primary server. + + The default, if not specified, is {@link PTDiffusionCredentials.noCredentials}. + + @param credentials the credentials to use. + + @return this builder. + + @since 6.7 + */ +-(instancetype)credentials:(PTDiffusionCredentials * _Nullable)credentials; + + +/** + Specifies a map of {@link PTDiffusionRermoteServerConnectionOption} settings. + + This will replace any options currently set for the builder. + + Any options not supplied will take their default values. + + If no connection options are specified, either using this method or + {@link PTDiffusionRemoteServerBuilder#connectionOption:withValue:} then all options + will take their default values. + + @param connectionOptions the map of options. + + @return this builder. + + @since 6.7 + */ +-(instancetype)connectionOptions:(NSDictionary* _Nullable)connectionOptions; + + +/** + Specifies a single connection option. + + This will add to the options currently specified to the builder, or replace a value if + it has already been specified. + + @param option the connection option. + + @param value the connection option value or null to remove the option. + + @return this builder. + + @since 6.7 + */ +-(instancetype)connectionOption:(PTDiffusionRemoteServerConnectionOption *)option + withValue:(NSString * _Nullable)value; + + +/** + Specifies a topic selector expression which will filter missing + topic notifications propagated from secondary to primary servers. + + {@link PTDiffusionMissingTopicNotification}s are notified when a client + subscribes using a topic selector that matches no existing topics. + By specifying a missing topic notification filter, all notifications that + match the filter on the secondary server will be propagated to the primary server. + + A match occurs if the path prefix of the subscription selector matches the path + prefix of the specified selector. + + If no filter is specified then no missing topic notifications will be propagated. + + The special selector expression `*.*` may be used to indicate that all missing topic + notifications should be propagated. + + Only the path prefix of the specified selector(s) is considered when matching therefore, + any use of regular expressions would be ignored. + + @param filter a topic selector expression specifying the filter to apply or null to remove + any existing filter. + + @return this builder. + + @since 6.7 + */ +-(instancetype)missingTopicNotificationFilter:(NSString * _Nullable)filter; + + +/** + Creates a remote server object using the current values known + to this builder. + + @param name the name of the remote server. + + @param url the URL to use to connect to the primary server. + + @return a new remote server instance. + + @since 6.7 + */ +-(PTDiffusionRemoteServer *)createWithName:(NSString *)name + andURL:(NSString *)url; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h new file mode 100644 index 0000000..45be376 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h @@ -0,0 +1,165 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Connection option key for a remote server + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionRemoteServerConnectionOption : PTDiffusionEnumeration + + +/** + Specifies the reconnection timeout session attribute. + + This is the total time in milliseconds that will be allowed to + reconnect a failed connection to the remote server. + + For reconnection to work the remote server connector must have + been configured to support reconnection. + + If a value is not specified + `PTDiffusionSessionConfiguration.reconnectionTimeout` is used. + + @return Instance representing the key for the reconnection timeout session attribute. + + @since 6.5 + */ ++(instancetype)reconnectionTimeout; + + +/** + Specifies the delay after losing a connection before attempting a + reconnection. + + The value is specified in milliseconds. Default 1000 (1 second). + + @return Instance representing the key for the delay after losing a + connection before attempting a reconnection. + + @since 6.5 + */ ++(instancetype) retryDelay; + + +/** + Specifies the recovery buffer size session attribute. + + If the remote server is configured to support reconnection, a + session established with a non-zero reconnect-timeout retains a + buffer of sent messages. If the session disconnects and + reconnects, this buffer is used to re-send messages that the + server has not received. + + The default value is 10,000 messages. If reconnect-timeout is 0 + then this value is ignored. + + @return Instance representing the key for the recovery buffer size + session attribute. + + @since 6.5 + */ ++(instancetype)recoveryBufferSize; + + +/** + Specifies the input buffer size session attribute. + + This is the size of the input buffer to use for the connection + with the remote server. It is used to receive messages from the + remote server. This should be set to the same size as the output + buffer used at the remote server. + + If not specified, a default of 1024k is used. + + @return Instance representing the key for the input buffer size + session attribute. + + @since 6.5 + */ ++(instancetype)inputBufferSize; + + +/** + Specifies the output buffer size session attribute. + + This is the size of the output buffer to use for the connection + with the remote server. It is used to send messages to the remote + server. This should be set to the same size as the input buffer + used by the remote server. + + If not specified, a default of 1024k is used. + + @return Instance representing the key for output buffer size + session attribute. + + @since 6.5 + */ ++(instancetype)outputBufferSize; + + +/** + Specifies the maximum queue size session attribute. + + This is the maximum number of messages that can be queued to send + to the remote server. If this number is exceeded, the connection + will be closed. This must be sufficient to cater for messages + that may be queued whilst disconnected (awaiting reconnect). + + The default value is 10,000 messages. + + @return Instance representing the key for the maximum queue size + session attribute. + + @since 6.5 + */ ++(instancetype)maximumQueueSize; + + +/** + Specifies the connection timeout session attribute value (in + milliseconds). + + If a value is not specified + `PTDiffusionSessionConfiguration.connectionTimeout` is used. + + @return Instance representing the key for the connection timeout + session attribute. + + @since 6.5 + */ ++(instancetype)connectionTimeout; + + + +/** + Specifies the write timeout session attribute value (in + milliseconds). + + @return Instance representing the key for the write timeout + session attribute. + + @since 6.5 + */ ++(instancetype)writeTimeout; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h new file mode 100644 index 0000000..ed52d78 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h @@ -0,0 +1,97 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Represents the current connection state of the remote server + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionRemoteServerConnectionState : PTDiffusionEnumeration + + +/** + The connection is inactive. + + This means that the remote server can successfully connect but a + physical connection is not being maintained as there are no + components that require the remote server. + + If in an inactive or failed state, a test connection will have + been tried to check that the connection can be made and the + connection will then have been closed. + + @return Instance representing the inactive connection state. + + @since 6.5 + */ ++(instancetype)inactive; + + +/** + The remote server is connected and actively in use by components + that require it. + + @return Instance representing the connected connection state. + + @since 6.5 + */ ++(instancetype)connected; + + +/** + The connection has failed but a retry is scheduled. + + In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` + will provide details of the failure that resulted in a retry. + + @return Instance representing the retrying connection state. + + @since 6.5 + */ ++(instancetype)retrying; + + +/** + The connection failed to establish. + + If the connection was in an inactive or failed state state, a + test connection was tried and failed. + + In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` + will provide more detail. + + @return Instance representing the failed connection state. + + @since 6.5 + */ ++(instancetype)failed; + + +/** + The named remote server did not exist. + + @return Instance representing the remote server missing connection state. + + @since 6.5 + */ ++(instancetype)missing; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h new file mode 100644 index 0000000..cedcce6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h @@ -0,0 +1,272 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionCredentials; +@class PTDiffusionRemoteServer; +@class PTDiffusionRemoteServerConnectionOption; +@class PTDiffusionRemoteServerConnectionState; +@class PTDiffusionCheckRemoteServerResult; +@class PTDiffusionCreateRemoteServerResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client session to manage remote servers. + + A remote server provides the configuration to connect to a Diffusion server + belonging to a different cluster. Each server in the local cluster will + establish a session with each remote server. + + Higher level components, such as remote topic views, can specify the use of + such remote servers by name. The connecting and disconnecting is handled + automatically by the server (or servers in the same cluster) where the remote + servers are defined. + + A component can specify a remote server by name even if it does not exist + (has not yet been created) and when the remote server is created the + connection will take place automatically. + + If a remote server is removed and there are components that depend upon it, + those components will be disabled. + + An example of the use of remote servers is within remote topic views (those + that indicate that their source topics are to be taken from a different + server) where the name of such a server can be specified. + + ### Remote Server persistence and replication + + Remote server configurations created through this feature are replicated + across a cluster and persisted to disk. + + ### Access control + + The following access control restrictions are applied: + +
    +
  • To create, remove or check a remote server, a session needs the + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission. +
  • To list remote servers, a session needs the + {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission. +
+ + ### Accessing the feature + + This feature may be obtained from a {@link PTDiffusionSession session} as follows: + +
+ PTDiffusionRemoteServersFeature *remoteServers = session.remoteServersFeature;
+ 
+ + @since 6.5 + */ +@interface PTDiffusionRemoteServersFeature : PTDiffusionFeature + + +/** + @brief Create a new remote server instance at the server. + + If a remote server with the same name already exists an error will be returned. + + @param remoteServer remote server definition using a {@link PTDiffusionRemoteServerBuilder + remote server builder}. + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a full definition of the remote server created + by the operation. + If the remote server definition is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.7 + */ +-(void)createRemoteServer:(PTDiffusionRemoteServer *const)remoteServer + completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler; + + +/** + @brief Create a new remote server instance with default connection options. + + If a remote server with the same name already exists an error will be returned. + + @param name the name of the remote server + + @param url the URL used to connect to the primary server + + @param principal the name of a principal used by the remote server to + connect to the primary server. A zero length string may be + supplied to indicate an anonymous connection + + @param credentials used for connecting to the primary server + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a full definition of the remote server created + by the operation. + If the remote server definition is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + + @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. + This method will be removed in a future release. + */ +-(void)createRemoteServer:(NSString *const)name + withURL:(NSString *const)url + principal:(NSString *const)principal + credentials:(PTDiffusionCredentials *const)credentials + completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); + + +/** + @brief Create a new remote server instance. + + If a remote server with the same name already exists an error will be returned. + + @param name the name of the remote server + + @param url the URL used to connect to the primary server + + @param principal the name of a principal used by the remote server to + connect to the primary server. A zero length string may be + supplied to indicate an anonymous connection + + @param credentials used for connecting to the primary server + + @param connectionOptions map of connection option settings. Any options + not supplied will take their default values + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a full definition of the remote server + created by the operation. + If the remote server definition is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + + @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. + This method will be removed in a future release. + */ +-(void)createRemoteServer:(NSString *const)name + withURL:(NSString *const)url + principal:(NSString *const)principal + credentials:(PTDiffusionCredentials *const)credentials + connectionOptions:(NSDictionary const*)connectionOptions + completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); + + + +/** + @brief Check the current state of a named remote server. + + This will report back the current state of the remote server, but also + can be used to forcibly retry a failed remote server connection. + + @param name the name of the remote server + + @param completionHandler a completion handler that returns when a response is + received from the server, return the details of the remote server state. + If the state is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + */ +-(void)checkRemoteServer:(NSString *const)name + completionHandler:(void (^)(PTDiffusionCheckRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler; + + +/** + @brief List all the remote servers that have been created + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a list of remote servers. + If the list is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + */ +-(void)listRemoteServers:(void (^)(NSArray * _Nullable result, + NSError * _Nullable error))completionHandler; + + +/** + @brief Remove a named remote server if it exists + + If the named remote server does not exist the completionHandler + will return without an error + + When a named remote server is removed, any components that specify it + would be disabled. + + @param name the name of the remote server + + @param completionHandler a completion handler that returns when a response is + received from the server. + If the error is not nil, this means an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - + if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - + if the session is closed +
+ + @since 6.5 + */ +-(void)removeRemoteServer:(NSString *const)name + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h new file mode 100644 index 0000000..c1c1ce8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A request to be sent using messaging. + + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionRequest : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h new file mode 100644 index 0000000..7bd3717 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A request context provides additional contextual information for + received messaging requests. + + @since 6.0 + */ +@interface PTDiffusionRequestContext : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The ID of the session that sent the request. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + +/** + The message path of the request. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* path; + +/** + Properties of the session that sent the request. + + @since 6.0 + */ +@property(nonatomic, readonly) NSDictionary* sessionProperties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h new file mode 100644 index 0000000..89599c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Handler to receive request notifications. + + @see PTDiffusionMessagingFeature + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionRequestHandler : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h new file mode 100644 index 0000000..d546be8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A request stream represents an asynchronous, variable length feed of + messaging requests. + + @see PTDiffusionMessagingFeature + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionRequestStream : PTDiffusionStream + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h new file mode 100644 index 0000000..58d4204 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h @@ -0,0 +1,62 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionResponse; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Responder provided with requests, used to dispatch responses. + + @see PTDiffusionRequestHandler + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionResponder : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Dispatch a response to a request. + + @param response The value to send in response. + + @exception NSInvalidArgumentException Raised if the response argument is `nil`. + + @since 6.1 + */ +-(void)respondWithResponse:(PTDiffusionResponse *)response; + +/** + Dispatch a rejection to a request, indicating that a response could not be + generated. + + @param reason Freeform text to provide to the requestor by way of explanation + for this rejection. + + @exception NSInvalidArgumentException Raised if the reason argument is `nil`. + + @since 6.0 + */ +-(void)rejectWithReason:(NSString *)reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h new file mode 100644 index 0000000..2dbb969 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A response to be sent using messaging. + + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.1 + */ +@interface PTDiffusionResponse : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h new file mode 100644 index 0000000..068bed3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Defines a retry strategy. + + A retry strategy will be applied when an initial to attempt to open a session + fails with a SessionEstablishmentTransientException + + The strategy is defined in terms of the number of milliseconds between retries and + the maximum number of retries to attempt. + + @since 6.9 + */ +@interface PTDiffusionRetryStrategy : NSObject + +/** + The retry strategy that indicates that no retry is to be attempted. + */ ++(instancetype)NO_RETRY; + +/** + Creates a new retry strategy object. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + @param attempts the number of retry attempts + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval andAttempts:(const NSInteger) attempts; + + +/** + Creates a new retry strategy that will retry indefinitely at the + specified interval. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval; + + +/** + No retry constructor + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)init; + + +/** + The number of milliseconds between retries + + @since 6.9 + */ +@property(nonatomic, readonly) NSUInteger interval; + + +/** + The maximum number of retries to attempt + + @since 6.9 + */ +@property(nonatomic, readonly) NSInteger attempts; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h new file mode 100644 index 0000000..5d8212d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h @@ -0,0 +1,87 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionCredentials; +@class PTDiffusionGlobalPermission; +@class PTDiffusionPathPermission; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature provides a client session with the ability to change its + associated principal as well as to query permissions assigned to it. + + The Security feature for a session can be obtained from the session's + `security` property. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSecurityFeature : PTDiffusionFeature + +/** + Change the security principal associated with the current session. + + If authentication fails, the current principal will remain valid. + + @param principal The new principal name. + + @param credentials The credentials authenticating the new principal. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if the completionHandler argument + is `nil`. + + @since 5.6 + */ +-(void)changePrincipal:(nullable NSString *)principal + credentials:(nullable PTDiffusionCredentials *)credentials + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Query the global permissions assigned to the calling session. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.3 + */ +-(void)getGlobalPermissionsWithCompletionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; + +/** + Query the topic permissions assigned to the calling session on a given path. + + @param path the path to query for permissions + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.3 + */ +-(void)getTopicPermissionsForPath:(NSString *)path + completionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h new file mode 100644 index 0000000..58b20c8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +/** + Delivery priority for a sent message. + + @since 5.6 + */ +typedef NS_ENUM(NSUInteger, PTDiffusionSendDeliveryPriority) { + /** + Normal priority. + + @since 5.6 + */ + PTDiffusionSendDeliveryPriority_Normal = 1, + + /** + Highest priority. + + @since 5.6 + */ + PTDiffusionSendDeliveryPriority_High = 2, + + /** + Lowest priority. + + @since 5.6 + */ + PTDiffusionSendDeliveryPriority_Low = 3, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a localized string representation of the given send delivery priority. + + @param priority The send delivery priority for which a description is to be + returned. + + @since 5.7 + */ +NSString* PTDiffusionSendDeliveryPriorityToString(PTDiffusionSendDeliveryPriority priority); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSession.h new file mode 100644 index 0000000..d11fd1f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSession.h @@ -0,0 +1,613 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionClientControlFeature; +@class PTDiffusionMessagingFeature; +@class PTDiffusionPingsFeature; +@class PTDiffusionSecurityFeature; +@class PTDiffusionSessionConfiguration; +@class PTDiffusionSessionId; +@class PTDiffusionSessionLock; +@class PTDiffusionSessionLockAttempt; +@class PTDiffusionSessionLockScope; +@class PTDiffusionSessionState; +@class PTDiffusionSubscriptionControlFeature; +@class PTDiffusionTimeSeriesFeature; +@class PTDiffusionTopicControlFeature; +@class PTDiffusionTopicNotificationsFeature; +@class PTDiffusionTopicsFeature; +@class PTDiffusionTopicUpdateFeature; +@class PTDiffusionTopicViewsFeature; +@class PTDiffusionRemoteServersFeature; +@class PTDiffusionSessionTreesFeature; +@class PTDiffusionMetricsFeature; +@class PTDiffusionHTTPResponse; + +@protocol PTDiffusionErrorListener; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A client session to a server or cluster of servers. + + The @ref md_quick_start "Quick Start" guide provides basic instructions on how + to connect to a Diffusion server. + + Also see: + - @ref md_session_filters "Session Filters". + - @ref md_session_properties "Session Properties". + + A new session can be created by connecting to a server using + `#openWithURL:completionHandler:` specifying the server URL. + A `PTDiffusionSessionConfiguration` can also be configured to control + the behaviour of the session using `#openWithURL:configuration:completionHandler:` + + The session provides a variety of operations to the application. These are + grouped into feature interfaces, such as Topics and Messaging, + exposed to the application through the following methods: +
    +
  • #clientControl +
  • #messaging +
  • #pings +
  • #remoteServers +
  • #security +
  • #subscriptionControl +
  • #timeSeries +
  • #topicControl +
  • #topics +
  • #topicUpdate +
  • #topicViews +
+ + ###Session lifecycle + + Each session is managed by a server. The server assigns the session a + unique identity, and manages the session's topic subscriptions, + security details, and session properties. + + A session can be terminated using `close`. A session may also be + terminated by the server because of an error or a time out, or by other + privileged sessions using the ClientControl feature. + + A client can become disconnected from the server, and reconnect to the server + without loss of the session. Reconnection can be configured using + `PTDiffusionSessionConfiguration.reconnectionStrategy`. The server + must be configured to allow reconnection. + + If a session is connected to a server that belongs to a cluster with session + replication enabled, and then becomes disconnected, it will attempt to + reconnect to the original server. A properly configured load balancer can + detect that the original server is unavailable and re-route the reconnection + request to a second server in the cluster. The second server can recover + session data and continue the session. This process is known as "fail over". + Unlike reconnection, in-flight messages can be lost during failover, and the + application will be unsubscribed and re-subscribed to topics. + + The current state of the session can be retrieved with `state`. + This property is Key-Value Observable with changes being notified on + the main dispatch queue when the session state changes. + + ### Session locks + + The actions of multiple sessions can be coordinated using session locks. See + PTDiffusionSession#lockWithName:completionHandler: + + @since 5.6 + */ +@interface PTDiffusionSession : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Starts asynchronously connecting to a Diffusion server using the given session configuration. + + @param url The location of the server to connect to. Encapsulates host, port and protocol to use. + Must be absolute. + + @param configuration The configuration options to connect with. + + @param completionHandler The completion handler to call on connection success or failure. + The completion handler will be called from the main dispatch queue and will only be called once. + + @note Your completion handler _must_ store a strong reference to the session instance in order + for it to remain open. + + @note The completion handler block is called after the session's state property has been set + to connected but before those observing through the notification center are informed. + + @since 5.6 + */ ++(void)openWithURL:(NSURL *)url + configuration:(PTDiffusionSessionConfiguration *)configuration + completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; + + +/** + Starts asynchronously connecting to a Diffusion server using the default session configuration. + + @param url The location of the server to connect to. Encapsulates host, port and protocol to use. + Must be absolute. + + @param completionHandler The completion handler to call on connection success or failure. + The completion handler will be called from the main dispatch queue and will only be called once. + + @note Your completion handler _must_ store a strong reference to the session instance in order + for it to remain open. + + @note The completion handler block is called after the session's state property has been set + to connected but before those observing through the notification center are informed. + + @since 5.6 + */ ++(void)openWithURL:(NSURL *)url + completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; + + +/** + The configuration used to open the session. + + @since 5.6 + */ +@property(nonatomic, readonly, copy) PTDiffusionSessionConfiguration* configuration; + + +/** + The unique identifier for the session as assigned by the server it connects to. + + This property is Key-Value Observable with changes being notified on the main dispatch queue. + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + + +/** + The name of the security principal associated with the session. + + @return The principal name. If the session has no associated principal, it is + known as an anonymous session, in which case the empty string + anonymousPrincipal will be assigned to this property. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* principal; + + +/** + The current state of the session. + + This property is Key-Value Observable with changes being notified on the main dispatch queue. + KVO notifications are sent before the invocation of any callback handler blocks. + + @note Session state can also be observed using the notification center. + See PTDiffusionSessionStateChange for details. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionSessionState* state; + + +/** + The delegate to use to report unexpected, non-fatal errors to. + + @since 6.0 + */ +@property(nonatomic, weak) id errorListener; + + +/** + Close the session. Once closed a session cannot be restarted. + + @since 5.6 + */ +-(void)close; + + +/** + Attempt to acquire a session lock. + + The completion handler block will be called with the requested lock if the + server assigns it to the session. Otherwise, the completion handler block will + be called with an error indicating why the lock could not be acquired. + + Acquiring the lock can take an arbitrarily long time if other sessions are + competing for the lock. The server will retain the session's request for the + lock until it is assigned to the session, the session is closed, or the session + cancels the CompletableFuture. + + A session can call this method multiple times. If the lock is acquired, all + calls will complete successfully with equal SessionLocks. + + Calling cancel on the returned PTDiffusionCancellable has no effect on other + pending calls to acquire this lock. + + Upon successful acquisition, the session owns the lock and is responsible for + unlocking it. When calling cancel on the returned PTDiffusionCancellable, take + care that it has not already completed by checking the return value. The + following Swift code releases the lock if the request could not be canceled. + + let attempt = session.lock(withName: "my-lock") { (lock, error) in + / / .. + } + + if (!attempt.cancel()) { + attempt.lock?.unlock() { (wasOwned, error) in } + } + + A session that acquires a lock will remain its owner until it is unlocked or + the session closes. The variant of this methods that takes a scope parameter + provides the further option of releasing the lock when the session loses its + connection to the server. + + ### Access control + + To allow fine-grained access control, lock names are interpreted as path names, + controlled with the `PTDiffusionPathPermission.acquireLock` path permission. This allows permission to + be granted to a session to acquire the lock `update-topic/a` while preventing + the session from acquiring the lock `update-topic/b`, for example. + + @param name The name of the session lock. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + If this session has successfully acquired the session lock, or this session + already owns the session lock, the completion handler will be called with the + lock instance. + + If the completion handler is called with an error to indicate failure, this + session does not own the session lock. Common reasons for failure include: + + - The calling session does not have the `PTDiffusionPathPermission.acquireLock` permission for this lock + name. + - The session is closed. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @see #lockWithName:scope:completionHandler: + + @since 6.3 + */ +-(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name + completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; + + +/** + Variant of #lockWithName:completionHandler: that provides control over when a + lock will be released. + + If called with PTDiffusionSessionLockScope#unlockOnSessionLoss, this method + behaves exactly like #lockWithName:completionHandler:. + + If called with PTDiffusionSessionLockScope#unlockOnConnectionLoss, any lock + that is returned will be unlocked if the session loses its connection to the + server. This is useful to allow another session to take ownership of the lock + while this session is reconnecting. + + @param name The name of the session lock + + @param scope Preferred scope. The scope of a lock controls when it will be + released automatically. If a session makes multiple requests for a lock using + different scopes, and the server assigns the lock to the session fulfilling the + requests, the lock will be given the weakest scope + (PTDiffusionSessionLockScope#unlockOnConnectionLoss). + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @see #lockWithName:completionHandler: + + @since 6.3 + */ +-(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name + scope:(PTDiffusionSessionLockScope *)scope + completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; + + +/** + Returns the last HTTP response received from the server. + + @since 6.3.6 + */ +-(PTDiffusionHTTPResponse * _Nullable)websocketHTTPResponse; + + + +#pragma mark - Features + +/** + The Client control feature provides the capability to listen and set session properties + + @since 6.5 + */ +@property(nonatomic, readonly) PTDiffusionClientControlFeature *clientControl; + + +/** + The Topics feature provides the capability to receive streamed topic updates and/or + fetch the state of topics. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionTopicsFeature* topics; + + +/** + The Topic Control features provides the capability to manage topics. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionTopicControlFeature* topicControl; + + +/** + The Topic Update feature provides a client session with the ability to update + topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionTopicUpdateFeature* topicUpdate; + + +/** + The Messaging feature provides messaging capabilities. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionMessagingFeature* messaging; + + +/** + The Security feature provides a client session with the ability to change + the associated principal. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionSecurityFeature* security; + + +/** + The Pings feature provides a client session with the ability to test the + roundtrip time associated with sending a request to the server and receiving + the associated response. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionPingsFeature* pings; + + +/** + The Time Series feature provides a client session with the ability to update + and query time series topics. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionTimeSeriesFeature* timeSeries; + + +/** + The Topic Notifications feature allows a client session to receive + notifications about changes to selected topics. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionTopicNotificationsFeature* topicNotifications; + + +/** + The Subscription Control feature allows a client session to subscribe or + unsubscribe other sessions to topics, as well as also providing a mechanism for + handling requests to subscribe to routing topics. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionSubscriptionControlFeature* subscriptionControl; + + +/** + The Topic Views feature allows a client session to manage topic views. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionTopicViewsFeature* topicViews; + + +/** + The Remote Servers feature allows a client session to create, remove, list + and check remote servers. + + @since 6.5 + */ +@property(nonatomic, readonly) PTDiffusionRemoteServersFeature* remoteServers; + + +/** + The Session Trees feature allows the creation and alteration of branch mapping tables. + + @see PTDiffusionSessionTreesFeature + + @since 6.7 + */ +@property(nonatomic, readonly) PTDiffusionSessionTreesFeature* sessionTrees; + + +/** + The Metrics feature allows a client to configure metric collectors. + + @see PTDiffusionMetricsFeature + + @since 6.7 + */ +@property(nonatomic, readonly) PTDiffusionMetricsFeature* metrics; + + + + +#pragma mark - Session properties + +/** + Value assigned to the principal property if this is an anonymous session. + + @since 6.0 + */ ++(NSString *)anonymousPrincipal; + + +/** + This constant can be used instead of a property key in requests for session + property values to indicate that all fixed session properties are required. + + @since 6.0 + */ ++(NSString *)allFixedProperties; + + +/** + This constant can be used instead of a property key in requests for session + property values to indicate that all user defined session properties are + required. + + @since 6.0 + */ ++(NSString *)allUserProperties; + + +/** + Session property key for session roles. + + @since 6.2 + */ ++(NSString *)rolesPropertyKey; + + +/** + Session property key for session identifier. + + @see PTDiffusionSessionId + + @since 6.2 + */ ++(NSString *)sessionIdPropertyKey; + + +/** + Session property key for principal. + + @since 6.2 + */ ++(NSString *)principalPropertyKey; + + +/** + Session property key for connector name. + + @since 6.2 + */ ++(NSString *)connectorPropertyKey; + + +/** + Session property key for transport. + + @since 6.2 + */ ++(NSString *)transportPropertyKey; + + +/** + Session property key for client type. + + @since 6.2 + */ ++(NSString *)clientTypePropertyKey; + + +/** + Session property key for country code. + + @since 6.2 + */ ++(NSString *)countryPropertyKey; + + +/** + Session property key for language code. + + @since 6.2 + */ ++(NSString *)languagePropertyKey; + + +/** + Session property key for server name. + + @since 6.2 + */ ++(NSString *)serverNamePropertyKey; + + +/** + Session property key for client IP address. + + @since 6.2 + */ ++(NSString *)clientIPPropertyKey; + + +/** + Session property key for client latitude. + + @since 6.2 + */ ++(NSString *)latitudePropertyKey; + + +/** + Session property key for client longitude. + + @since 6.2 + */ ++(NSString *)longitudePropertyKey; + + +/** + Session property key for client start time. + + @since 6.2 + */ ++(NSString *)startTimePropertyKey; + +/** + Session property key for gateway client type. + + @since 6.6 + */ ++(NSString *)gatewayTypePropertyKey; + +/** + Session property key for gateway client id. + + @since 6.6 + */ ++(NSString *)gatewayIdPropertyKey; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h new file mode 100644 index 0000000..01639df --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h @@ -0,0 +1,517 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionCredentials; +@class PTDiffusionHTTPProxyConfiguration; +@class PTDiffusionRetryStrategy; + +@protocol PTDiffusionSessionReconnectionStrategy; +@protocol PTDiffusionSessionStateChangeDelegate; + +extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; + + +NS_ASSUME_NONNULL_BEGIN + + +/** + @brief A session configuration defines behavior and policies to use when connecting to Diffusion. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSessionConfiguration : NSObject + + +/** + Returns a session configuration object initialized with the given principal and credentials. + + @param principal The security principal to use when opening the session. + A value of `nil` dictates that no principal name will be associated with the session, + indicating anonymous authentication. + + @param credentials The security credentials to use when opening the session. + A value of `nil` dictates that no credentials will be used when authenticating the session. + + @return The session configuration instance initialized with the given principal and credentials. + + @since 5.6 + */ +-(instancetype)initWithPrincipal:(nullable NSString *)principal + credentials:(nullable PTDiffusionCredentials *)credentials; + + +/** + The security principal to use when opening the session. + + A value of `nil` dictates that no principal name will be associated with the session, + indicating anonymous authentication. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly, copy) NSString *principal; + + +/** + The security credentials to use when opening the session. + + A value of `nil` dictates that no credentials will be used when authenticating the session. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; + + +/** + The reconnection timeout in seconds that will be used on connection failure. + + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. + + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; + + +/** + The reconnection strategy that will be used on connection failure. + + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default + reconnection strategy will be employed. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly) id reconnectionStrategy; + + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) PTDiffusionRetryStrategy* initialRetryStrategy; + + +/** + The default recovery buffer size in messages. + + @return Number representing the default recovery buffer size in messages. + + @see recoveryBufferSize + + @since 6.0 + */ ++(NSUInteger)defaultRecoveryBufferSize; + +/** + The recovery buffer size in messages; can be zero. + + If the server is configured to support reconnection, a session established with + a non-zero reconnection time retains a buffer of sent messages. + If the session disconnects and reconnects, this buffer is used to re-send + messages that the server has not received. + + Higher values increase the chance of successful reconnection, but increase the + per-session memory footprint. + + @see defaultRecoveryBufferSize + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger recoveryBufferSize; + + +/** + The default connection timeout (2 seconds). + + @return Time interval representing the default connection timeout. + + @since 5.7 + */ ++(NSTimeInterval)defaultConnectionTimeout; + + +/** + The lowest value that the maximum message size can be set to in bytes. + + @return Number representing the lowest value in bytes that the maximum message size can be set to. + + @see maximumMessageSize + + @since 6.0 + */ ++(NSUInteger)maximumMessageSizeMinimum; + + +/** + The default maximum message size in bytes. + + The maximum message size limits the + size of received messages. This default value is NSUIntegerMax, so the message + size is effectively unlimited. + + @return Number representing the default maximum message size in bytes. + + @see maximumMessageSize + + @since 6.0 + */ ++(NSUInteger)defaultMaximumMessageSize; + + +/** + The default maximum outbound queue size in messages. + + @return Number representing the default maximum outbound queue size in messages. + + @see maximumQueueSize + + @since 6.0 + */ ++(NSUInteger)defaultMaximumQueueSize; + + +/** + The maximum message size in bytes. + + This constrains the size of messages that may be received from the server and + thus the size of any content that can be received. The limit protects against + unexpectedly large messages. + + @see defaultMaximumMessageSize + @see maximumMessageSizeMinimum + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger maximumMessageSize; + + +/** + The maximum size of the outbound message queue for the connection. + + The outbound message queue should be large enough to accommodate all the + messages sent to the server. This would include topic updates, messaging and + service requests such as registering a handler. + + It may be necessary to increase this value for applications that send messages + in bursts, or continue to send messages when a session is disconnected and + reconnecting. Larger values allow more messages to be queued, and increase the + memory footprint of the session. + + If the outbound message queue fills, sending a message will cause the session + to close with an error. + + @see defaultMaximumQueueSize + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger maximumQueueSize; + + +/** + The connection timeout. + + This constrains the time taken to establish an initial connection to the server. + The server is responsible for limiting the overall time taken to complete a connection + once it has received the request. + + @since 5.7 + */ +@property(nonatomic, readonly) NSTimeInterval connectionTimeout; + + +/** + Security settings to be applied to the underlying transport streams for SSL/TLS + encrypted connections. + + A value of `nil` or an empty dictionary indicates that default settings, as + defined by the host operating system, will be applied. + + Supported keys are documented by Apple under 'CFStream Property SSL Settings + Constants' in their Core Foundation + [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). + + For example, a rudimentary approach to allowing otherwise disallowed self-signed + certificates could be to disable validation of the certificate chain entirely: + + configuration.sslOptions = + [NSDictionary dictionaryWithObject:kCFBooleanFalse + forKey:kCFStreamSSLValidatesCertificateChain]; + + @since 5.7.1 + */ +@property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; + + +/** + User-defined @ref md_session_properties "session properties". + + These properties will be provided to the server when a session is created using + this session configuration. They will be validated during authentication and + may be discarded or changed. + + A value of `nil` or an empty dictionary indicates that no user-defined session + properties will be provided to the server on connection. + + @since 6.3 + */ +@property(nonatomic, nullable, readonly, copy) NSDictionary* properties; + + +/** + Configuration of the HTTP Proxy that should be used to make connections to the server. + + This allows connection to a server using HTTP CONNECT tunneling through the + specified proxy. + + A value of `nil` dictates that a proxy is not used. This is the default. + + @since 6.0 + */ +@property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) id sessionStateListener; + + +/** + Compares the receiver to the given session configuration. + + @param sessionConfiguration The session configuration object with which to compare the receiver. + + @return `YES` if the receiver and the given session configuration will have the same effect. + + @since 5.6 + */ +-(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; + + +@end + + + + +/** + @brief A mutable session configuration can be modified prior to being used to define + behaviour and policies to use when connecting to Diffusion. + + @since 5.6 + */ +@interface PTDiffusionMutableSessionConfiguration : PTDiffusionSessionConfiguration + +/** + The security principal to use when opening the session. + + A value of `nil` dictates that no principal name will be associated with the session, + indicating anonymous authentication. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite, copy) NSString *principal; + + +/** + The security credentials to use when opening the session. + + A value of `nil` dictates that no credentials will be used when authenticating the session. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; + + +/** + The reconnection timeout in seconds that will be used on connection failure. + + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. + + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite) NSNumber* reconnectionTimeout; + +/** + The reconnection strategy that will be used on connection failure. + + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default + reconnection strategy will be employed. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite) id reconnectionStrategy; + + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) PTDiffusionRetryStrategy* initialRetryStrategy; + + +/** + The recovery buffer size in messages; can be zero. + + If the server is configured to support reconnection, a session established with + a non-zero reconnection time retains a buffer of sent messages. + If the session disconnects and reconnects, this buffer is used to re-send + messages that the server has not received. + + Higher values increase the chance of successful reconnection, but increase the + per-session memory footprint. + + @see defaultRecoveryBufferSize + + @since 6.0 + */ +@property(nonatomic, readwrite) NSUInteger recoveryBufferSize; + + +/** + The maximum message size in bytes. + + This constrains the size of messages that may be received from the server and + thus the size of any content that can be received. The limit protects against + unexpectedly large messages. + + @exception NSInvalidArgumentException On writing to this property if the + given size is below the allowable minimum. + + @see defaultMaximumMessageSize + @see maximumMessageSizeMinimum + + @since 6.0 + */ +@property(nonatomic, readwrite) NSUInteger maximumMessageSize; + + +/** + The maximum size of the outbound message queue for the connection. + + The outbound message queue should be large enough to accommodate all the + messages sent to the server. This would include topic updates, messaging and + service requests such as registering a handler. + + It may be necessary to increase this value for applications that send messages + in bursts, or continue to send messages when a session is disconnected and + reconnecting. Larger values allow more messages to be queued, and increase the + memory footprint of the session. + + If the outbound message queue fills, sending a message will cause the session + to close with an error. + + @see defaultMaximumQueueSize + + @since 6.0 + */ +@property(nonatomic, readwrite) NSUInteger maximumQueueSize; + + +/** + The connection timeout. + + This constrains the time taken to establish an initial connection to the server. + The server is responsible for limiting the overall time taken to complete a connection + once it has received the request. + + If not explicitly set, defaultConnectionTimeout will be assumed. + + @note If this exceeds one hour (3,600 seconds) a warning will be logged and the + connection timeout will be constrained to one hour. + + @since 5.7 + */ +@property(nonatomic, readwrite) NSTimeInterval connectionTimeout; + + +/** + Security settings to be applied to the underlying transport streams for SSL/TLS + encrypted connections. + + A value of `nil` or an empty dictionary indicates that default settings, as + defined by the host operating system, will be applied. + + Supported keys are documented by Apple under 'CFStream Property SSL Settings + Constants' in their Core Foundation + [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). + + For example, a rudimentary approach to allowing otherwise disallowed self-signed + certificates could be to disable validation of the certificate chain entirely: + + configuration.sslOptions = + [NSDictionary dictionaryWithObject:kCFBooleanFalse + forKey:kCFStreamSSLValidatesCertificateChain]; + + @since 5.7.1 + */ +@property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; + + +/** + User-defined @ref md_session_properties "session properties". + + These properties will be provided to the server when a session is created using + this session configuration. They will be validated during authentication and + may be discarded or changed. + + A value of `nil` or an empty dictionary indicates that no user-defined session + properties will be provided to the server on connection. + + @since 6.3 + */ +@property(nonatomic, nullable, readwrite, copy) NSDictionary* properties; + +/** + Configuration of the HTTP Proxy that should be used to make connections to the server. + + This allows connection to a server using HTTP CONNECT tunneling through the + specified proxy. + + A value of `nil` dictates that a proxy is not used. This is the default. + + @since 6.0 + */ +@property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) id sessionStateListener; + + +@end + + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h new file mode 100644 index 0000000..f65cc34 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h @@ -0,0 +1,100 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The value assigned to the `domain` property of NSError objects generated when + establishing or reestablishing a session's connection to the server. + + @see PTDiffusionSessionErrorCode + + @since 6.0 + + @deprecated since 6.7, use PTDiffusion instead. + */ +extern NSString *const PTDiffusionSessionErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + Values assigned to the `code` property of NSError objects generated when + establishing or reestablishing a session's connection to the server. + + @see PTDiffusionSessionErrorDomain + + @since 6.0 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { + /** + The session was closed after being unexpectedly disconnected. + + @since 6.0 + + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Disconnected instead. instead. + */ + PTDiffusionSessionErrorCode_Disconnected __deprecated_enum_msg("Use PTDiffusionError_Disconnected instead.") = 2, + + /** + The session was closed locally. + + @since 6.0 + + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_ClosedByClient instead. instead. + */ + PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, + + /** + There was a problem when establishing a session. + + The session is closed. No further operations are possible. + + @since 6.0 + + @deprecated since 6.7, use PTDiffusionError_Establishment instead. + */ + PTDiffusionSessionErrorCode_Establishment __deprecated_enum_msg("Use PTDiffusionError_Establishment instead.") = 4, + + /** + The session operation failed due to a security constraint. + + Repeating the operation with the same security credentials is likely to + fail. + + @since 6.0 + + @deprecated since 6.7, use PTDiffusionError_Security instead. + */ + PTDiffusionSessionErrorCode_Security __deprecated_enum_msg("Use PTDiffusionError_Security instead.") = 5, + + /** + The session operation failed due to an unrecognised response code. + + @since 6.3 + + @deprecated since 6.7, use PTDiffusionError_UnrecognizedResponseCode instead. + */ + PTDiffusionSessionErrorCode_UnrecognisedResponseCode __deprecated_enum_msg("Use PTDiffusionError_UnrecognizedResponseCode instead.") = 6, + + /** + The session was closed remotely. + + @since 6.6 + + @deprecated since 6.7, use PTDiffusionError_ClosedByServer instead. + */ + PTDiffusionSessionErrorCode_ClosedByServer __deprecated_enum_msg("Use PTDiffusionError_ClosedByServer instead") = 7, +}; + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h new file mode 100644 index 0000000..f21d301 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h @@ -0,0 +1,74 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session ID is a unique session identifier, allocated by the server. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSessionId : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a session ID object initialized with the given string. + + @param string A string, previously returned by the `description` method on an + instance of this class. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @note The string representation used is the same as that provided by our Java + client library (see the `toString()` method on `SessionId`). This is a client + operation. A session that has been closed will not be recreated. + + @return The session ID instance initialised with the given string. + + @exception NSInvalidArgumentException If the given string is `nil`. + + @since 6.0 + */ +-(nullable instancetype)initWithString:(NSString *)string + error:(NSError **)error NS_DESIGNATED_INITIALIZER; + +/** + Compares the receiver to the given session ID. + + @param sessionId The session ID object with which to compare the receiver. + + @return `YES` if the given session ID is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToSessionId:(nullable PTDiffusionSessionId *)sessionId; + +/** + Returns the description of the session ID. + + @return The description of the session ID. + + @since 6.5 + */ +-(NSString *)description; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h new file mode 100644 index 0000000..f7f2264 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h @@ -0,0 +1,165 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionLockScope; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A server-managed resource that can be used to coordinate exclusive + access to shared resources across sessions. + + For example, to ensure a single session has the right to update a topic; to + ensure at most one session responds to an event; or to select a single session + to perform a housekeeping task. Session locks support general collaborative + locking schemes. The application architect is responsible for designing a + suitable locking scheme and for ensuring each application component follows the + scheme appropriately. + + Session locks are identified by a lock name. Lock names are arbitrary and + chosen at will to suit the application. Each lock is owned by at most one + session. Locks are established on demand; there is no separate operation to + create or destroy a lock. + + A session lock is acquired using the + PTDiffusionSession#lockWithName:completionHandler: method. If no other session + owns the lock, the server will assign the lock to the calling session + immediately. Otherwise, the server will record that the session is waiting to + acquire the lock. A session can call `lock` more than once for a given session + lock; if the lock is acquired, all calls will complete successfully with equal + PTDiffusionSessionLock instances. + + If a session closes, the session locks it owns are automatically released. A + session can also release a lock using the #unlockWithCompletionHandler: method. + When a session lock is released and other sessions are waiting to acquire the + lock, the server will arbitrarily select one of the waiting sessions and notify + it that it has acquired the lock. All of the newly selected session's pending + `lock` calls will complete normally. Other sessions will continue to wait. + + The PTDiffusionSession#lockWithName:scope:completionHandler: method takes a + scope parameter that provides the further option of automatically releasing the + lock when the session loses its connection to the server. + + There is no association between a lock and a thread. If a session calls `lock` + for a lock it already owns, the call will complete normally and immediately + with a PTDiffusionSessionLock instance that is equal to the one returned when + the lock was originally acquired. A single call to `unlock` will release this + session's claim to a lock. + + Lock ownership can be lost due to an independent event such as loss of + connection, and not only due to the use of the locking API by the owner. + Consequently, the session should poll using #owned to check that it still owns + the lock before accessing the protected resource. + + ### Race conditions + + This session lock API has inherent race conditions. Even if an application is + coded correctly to protect a shared resource using session locks, there may be + a period where two or more sessions concurrently access the resource. The races + arise for several reasons including + + - due to the *check-then-act* approach of polling #owned, the lock can be lost + after the check has succeeded but before the resource is accessed; + - the server can detect a session is disconnected and assign the lock to + another session before the original session has detected the disconnection. + + Despite this imprecision, session locks provide a useful way to coordinate + session actions. + + @since 6.3 + */ +@interface PTDiffusionSessionLock : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The name of the session lock. + + @since 6.3 + */ +@property(nonatomic, readonly) NSString* name; + +/** + A value that identifies the acquisition of the lock with the given #name. + Session locks that are acquired later are guaranteed to have bigger sequence + values, allowing the sequence number to be used as a fencing token. + + @since 6.3 + */ +@property(nonatomic, readonly) SInt64 sequence; + +/** + Whether the session lock is still owned by the session. This method may be + manually polled but does not support KVO. + + @since 6.3 + */ +@property(readonly, getter=isOwned) BOOL owned; + +/** + The scope of the lock. + + The scope determines when the lock will be released automatically. + + If a session makes multiple lock requests for a lock using different scopes, + and the server assigns the lock to the session fulfilling the requests, the + lock will be given the weakest scope + (PTDiffusionSessionLockScope#unlockOnConnectionLoss). Consequently, an + individual request can complete with a lock that has a different scope to that + requested. + + @see PTDiffusionSession#lockWithName:scope:completionHandler: + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionSessionLockScope* scope; + +/** + Release the session lock, if owned. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + On successful completion, this session will no longer own the named session + lock, and `wasOwned` will wrap a `BOOL` value where `YES` indicates this + session previously owned the lock and `NO` indicates that it did not. + + On completion with failure, this session does not own the session lock. The + common reason for failure, indicated by the error reported, is that the session + is closed. + + @exception NSInvalidArgumentException Raised if completionHandler is `nil`. + + @since 6.3 + */ +-(void)unlockWithCompletionHandler:(void (^)(NSNumber * _Nullable wasOwned, NSError * _Nullable error))completionHandler; + +/** + Compares the receiver to the given session lock. + + @param sessionLock The session lock object with which to compare the receiver. + + @return `YES` if the session lock is equal to the receiver, otherwise `NO`. + + @since 6.3 + */ +-(BOOL)isEqualToSessionLock:(nullable PTDiffusionSessionLock *)sessionLock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h new file mode 100644 index 0000000..9a8588a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h @@ -0,0 +1,57 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionLock; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A handle to a session lock request. + + Instances of this object may be used to cancel the session lock attempt as well + as to query the lock instance once acquired. + + @since 6.3 + */ +@interface PTDiffusionSessionLockAttempt : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The acquired lock, if the attempt was successful. Until a response has come + back from the server, this property will be `nil`. It will remain `nil` if that + response indicates that the session lock attempt failed. + + @since 6.3 + */ +@property(nullable, readonly) PTDiffusionSessionLock * lock; + +/** + Compares the receiver to the given session lock attempt. + + @param sessionLockAttempt The session lock attempt object with which to compare + the receiver. + + @return `YES` if the session lock attempt is equal to the receiver, otherwise `NO`. + + @since 6.3 + */ +-(BOOL)isEqualToSessionLockAttempt:(nullable PTDiffusionSessionLockAttempt *)sessionLockAttempt; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h similarity index 100% rename from Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h rename to Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h new file mode 100644 index 0000000..b642626 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h @@ -0,0 +1,59 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The definition of a session metric collector. + + These can be configured to record metric data for a subset of all + sessions, specified with a session filter. + + @since 6.7 + */ +@interface PTDiffusionSessionMetricCollector : PTDiffusionMetricCollector + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + The session filter. + + @since 6.7 + */ +@property(nonatomic, readonly) NSString *sessionFilter; + + +/** + The list of properties to group by. + + @since 6.7 + */ +@property(nonatomic, readonly) NSArray* groupByProperties; + + +/** + Indicates whether metrics with no matches should be removed. + + @since 6.7 + */ +@property(nonatomic, readonly) BOOL removesMetricsWithNoMatches; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h new file mode 100644 index 0000000..c73e9da --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h @@ -0,0 +1,93 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionMetricCollector; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session metric collector builder. + + @since 6.7 + */ +@interface PTDiffusionSessionMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder + + +/** + Adds the name of a session property to group by to the list known + to this builder. + + @param propertyName the name of the session property. + See {@link PTDiffusionSession Session} for details of session properties. + + @return the builder + + @since 6.7 + */ +-(instancetype)groupByProperty:(NSString *)propertyName; + + +/** + Specifies a list of session property names to group by, replacing + any current list known to this builder. + + @param propertyNames a list of session property names. + See {@link PTDiffusionSession Session} for details of session properties. + + @return the builder + + @since 6.7 + */ +-(instancetype)groupByProperties:(NSArray*) propertyNames; + + +/** + Specifies whether the metric collector should remove any metrics + that have no matches. + + The default is that the metric collector will not remove metrics + with no matches. + + @param remove true to indicate that metrics with no matches + should be removed. + + @return the builder + + @since 6.7 + */ +-(instancetype)removeMetricsWithNoMatches:(BOOL)remove; + + +/** + @brief Create a new {@link PTDiffusionSessionMetricCollector} using the values + currently known to this builder. + + @param name the name of the {@link PTDiffusionSessionMetricCollector} + + @param sessionFilter the session filter indicating the sessions + this filter should apply to. The format of a session property + filter is documented in {@link PTDiffusionSession} + + @return a new {@link PTDiffusionSessionMetricCollector} with all of the + current settings of this builder. + + @since 6.7 + */ +-(PTDiffusionSessionMetricCollector *) createCollectorWithName:(NSString *const)name + andSessionFilter:(NSString *const)sessionFilter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h new file mode 100644 index 0000000..9ca6e01 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h @@ -0,0 +1,136 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import + + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Listener for Session properties events from the server. + + @see PTDiffusionClientControlFeature + + @since 6.5 + */ +@protocol PTDiffusionSessionPropertiesDelegate + +/** + A new session was opened + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the opened session + + @param properties The properties for the opened session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionOpened:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has closed + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the closed session + + @param closeReason The reason why the session closed + + @param properties The properties for the closed session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionClosed:(PTDiffusionSessionId *)sessionId + withCloseReason:(PTDiffusionCloseReason *) closeReason + andProperties:(NSDictionary*)properties; + + + +/** + A session has been updated + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the updated session + + @param properties The properties for the updated session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionUpdated:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has disconnected + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the disconnected session + + @param properties The properties for the disconnected session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionDisconnected:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has reconnected + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the reconnected session + + @param properties The properties for the reconnected session + + @since 6.6 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionReconnected:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has failed over to a different host + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the failed over session + + @param properties The properties for the failed over session + + @since 6.6 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionFailedOver:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + + + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h new file mode 100644 index 0000000..b39b8dd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h @@ -0,0 +1,39 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A reference to a handler registered for a particular set of + session properties + + A topic tree registration is provided once a handler with a server-side + presence has been registered. + + @since 6.5 + */ + +@interface PTDiffusionSessionPropertiesListenerRegistration : PTDiffusionRegistration + +/** + The set of session properties registered. + + @since 6.5 + */ +@property(nonatomic, readonly) NSArray* properties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h new file mode 100644 index 0000000..e788596 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionPropertiesListenerRegistration; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Common protocol for delegates that establish a server side control presence for the + client session at a particular set of session properties. + + @since 6.5 + */ +@protocol PTDiffusionSessionPropertiesListenerRegistrationDelegate + +/** + Called if the handler is closed. + + No further calls will be made to this handler. + + @param registration The session properties registration for which this delegate applies. + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistrationDidClose:(PTDiffusionSessionPropertiesListenerRegistration *)registration; + +/** + Called in the event of a contextual error relating to this handler. + + No further calls will be made to this handler. + + @param registration The session properties registration for which this delegate applies. + + @param error The failure reason. + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + didFailWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h new file mode 100644 index 0000000..8adf4c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session reconnection attempt can either be started or aborted. + + @see PTDffusionSessionReconnectionStrategy + + @since 5.6 + */ +@interface PTDiffusionSessionReconnectionAttempt : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Request that the session starts the reconnection attempt. + + @since 5.6 + */ +-(void)start; + +/** + Request that the session aborts the reconnection attempt. + + @since 5.6 + */ +-(void)abort; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h new file mode 100644 index 0000000..174d5b8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h @@ -0,0 +1,97 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionReconnectionAttempt; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The session reconnection strategy protocol defines the behaviour for a session when + recovering a failed connection. + + @see PTDiffusionSessionConfiguration + + @since 5.6 + */ +@protocol PTDiffusionSessionReconnectionStrategy + +/** + The connection has failed when connecting or connected and the session is now in + a recovering state. + + @param session The session which is recovering. + + @param attempt The reconnection attempt object providing `start` and `abort` methods + to be used by the implementing strategy immediately or at some point in the future + to instruct the session how to proceed. + + @since 5.6 + */ +-(void) diffusionSession:(PTDiffusionSession *)session + wishesToReconnectWithAttempt:(PTDiffusionSessionReconnectionAttempt *)attempt; + +@end + +/** + @brief Immediate abort is a default reconnection strategy supplied with the client library. + + This strategy immediately aborts. + + @since 5.6 + */ +@interface PTDiffusionSessionImmediateAbortReconnectionStrategy : NSObject +@end + +/** + @brief Delayed is a default reconnection strategy supplied with the client library. + + This strategy attempts to reconnect after a fixed delay specified in seconds. + + @since 5.6 + */ +@interface PTDiffusionSessionDelayedReconnectionStrategy : NSObject + +/** + Returns a delayed reconnection strategy initialised with a default 5 second delay. + + @return The delayed reconnection strategy instance initialised with a 5 second delay. + + @since 5.6 + */ +-(instancetype)init; + +/** + Returns a delayed reconnection strategy initialised with the given delay. + + @param delay The delay in seconds, after which point the receiver will call the session reconnection + attempt's `start` method. + + @return The delayed reconnection strategy instance initialised with the given delay. + + @since 5.6 + */ +-(instancetype)initWithDelay:(NSTimeInterval)delay NS_DESIGNATED_INITIALIZER; + +/** + The delay, in seconds, after which point the receiver will call the session reconnection + attempt's `start` method. + + @since 5.6 + */ +@property(nonatomic, readonly) NSTimeInterval delay; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h new file mode 100644 index 0000000..8910630 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A response stream represents an asynchronous, variable length feed of + messaging responses from other sessions. + + @see PTDiffusionMessagingFeature + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.1 + */ +@interface PTDiffusionSessionResponseStream : PTDiffusionStream + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h new file mode 100644 index 0000000..0df709f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h @@ -0,0 +1,83 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling messaging responses from + individual sessions. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionSessionResponseStreamDelegate + +/** + Called when a session responds to a request with an error. + + @param stream The stream that received the response. + + @param error The error generated by the responding session. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void)diffusionStream:(PTDiffusionStream *)stream + didReceiveError:(NSError *)error + fromSessionId:(PTDiffusionSessionId *)sessionId; + +/** + The stream closed prematurely. + + @param stream The stream that closed. + + @param error The reason why the stream closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + + @deprecated since 6.6 this method is no longer called; in a future + release, PTDiffusionSessionResponseStreamDelegate will no longer extend + PTDiffusionStreamDelegate + */ +-(void)diffusionStream:(PTDiffusionStream *)stream + didFailWithError:(NSError *)error +__deprecated_msg("Will be removed in a future release."); + +/** + The stream closed normally. + + @param stream The stream that closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + + @deprecated since 6.6 this method is no longer called; in a future + release, PTDiffusionSessionResponseStreamDelegate will no longer extend + PTDiffusionStreamDelegate + */ +-(void)diffusionDidCloseStream:(PTDiffusionStream *)stream +__deprecated_msg("Will be removed in a future release."); + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h new file mode 100644 index 0000000..3aa6ec9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h @@ -0,0 +1,135 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Session state represents the condition a session has in respect + of connectivity to a Diffusion server. + + A session state object is immutable. + + @see PTDiffusionSessionStateChange + + @since 5.6 + */ +@interface PTDiffusionSessionState : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + `YES` if the session has an active connection to the server, otherwise `NO`. + + @since 5.6 + */ +@property(nonatomic, readonly, getter=isConnected) BOOL connected; + +/** + `YES` if the session is in the process of attempting reconnection to the server, + otherwise `NO`. + + @since 5.6 + */ +@property(nonatomic, readonly, getter=isRecovering) BOOL recovering; + +/** + `YES` if the session is closed, otherwise `NO`. + + This might mean that the session lost its connection to the server and + could not be recovered. + + @since 5.6 + */ +@property(nonatomic, readonly, getter=isClosed) BOOL closed; + +/** + If the session is closed then this property will be `nil` if the closure + was normal and expected, otherwise it will contain the failure reason. + + @note This property is to be considered as an auxiliary, informational + attachment to this session state instance. As such it is not incorporated + within the result of the hash method and is not checked on calls to isEqual: + or isEqualToSessionState:. + + @since 5.9 + */ +@property(nonatomic, readonly, nullable) NSError* error; + +/** + Compares the receiver to the given session state. + + @param sessionState The session state object with which to compare the receiver. + + @return `YES` if the given session state is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; + + + +/** + The session has been closed by the client. + + @since 6.9 + */ ++(instancetype)ClosedByClient; + + +/** + The session has been closed (or rejected) by the server. + + @since 6.9 + */ ++(instancetype)ClosedByServer; + + +/** + The session has lost its connection to a server and could not be recovered. + + @since 6.9 + */ ++(instancetype)ClosedFailed; + + +/** + An active connection with the server has been established. + + @since 6.9 + */ ++(instancetype)ConnectedActive; + + +/** + The session is establishing its initial connection. + + @since 6.9 + */ ++(instancetype)Connecting; + + +/** + Connection with a server has been lost and the session is attempting reconnection. + + @since 6.9 + */ ++(instancetype)RecoveringReconnect; + + +@end + + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h new file mode 100644 index 0000000..8a4712f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + The name used for session state change notifications. + + The notification's `userInfo` dictionary contains a PTDiffusionSessionStateChange object that describes the state change, + accessed using #PTDiffusionSessionStateChangeUserInfoKey. + + @relates PTDiffusionSessionStateChange + @see PTDiffusionSessionStateChangeUserInfoKey + + @note Session state change notifications are notified from the main dispatch queue and are delivered after + both KVO notifications on the session's state property and any invocations of completion callback handler blocks. + + @since 5.6 + */ +extern NSString *const PTDiffusionSessionStateDidChangeNotification; + +/** + The notification `userInfo` dictionary key used to access the PTDiffusionSessionStateChange object on + receipt of a #PTDiffusionSessionStateDidChangeNotification. + + @relates PTDiffusionSessionStateChange + @see PTDiffusionSessionStateDidChangeNotification + + @since 5.6 + */ +extern NSString *const PTDiffusionSessionStateChangeUserInfoKey; + +/** + @brief A session state change represents a change in a session's state. + + A session state change object is immutable. + + The @ref md_quick_start "Quick Start" guide provides an example of observing session state changes broadcast + through the default notification center. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSessionStateChange : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The previous state. This is the state that the session was in prior to transitioning to its current state. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionSessionState* previousState; + +/** + The current state. This is the state that the session has now transitioned to. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionSessionState* state; + +/** + Compares the receiver to the given session state change. + + @param sessionStateChange The session state change object with which to compare the receiver. + + @return `YES` if the given session state change is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToSessionStateChange:(nullable PTDiffusionSessionStateChange *)sessionStateChange; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h new file mode 100644 index 0000000..8b2e30a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2023 DiffusionData Ltd., All Rights Reserved. +// +// Use is subject to licence terms. +// +// NOTICE: All information contained herein is, and remains the +// property of DiffusionData. The intellectual and technical +// concepts contained herein are proprietary to DiffusionData and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The optional delegate for a session which may be used to receive state notifications. + + By default a session will not have a listener. + + @since 6.9 + */ +@protocol PTDiffusionSessionStateChangeDelegate + + +/** + Called whenever the state of a session changes. + + @param session the session + @param previousState the previous state + @param state the current state + + @since 6.9 + */ +-(void)onSession:(PTDiffusionSession *)session + stateChangeFrom:(PTDiffusionSessionState *)previousState + to:(PTDiffusionSessionState *)state; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h new file mode 100644 index 0000000..e896078 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h @@ -0,0 +1,209 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBranchMappingTable; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client session to configure session trees. + + A session tree is a virtual view of the topic tree presented to a session by + fetch and subscription operations. Custom session trees for different + sessions can be configured using declarative rules maintained by the server + to meet data security, data optimisation, or personalisation and localisation + requirements. Each session can be presented with a unique session tree based + on its session properties. + + A session tree is produced by applying branch mappings to the topic + tree. Branch mappings are organised into branch mapping tables. Each + branch mapping table is assigned to a unique path – the session tree branch. + + A session tree is composed of session paths. Each session path is + mapped via the branch mapping tables to a unique topic path. + + A branch mapping table is an ordered list of (session filter, topic tree branch) + pairs. For example, the branch mapping table for the session tree branch + market/prices might be: + +
+ Session filter                           Topic tree branch
+ =========                                =============
+ USER_TIER is '1' or $Country is 'DE'     backend/discounted_prices
+ USER_TIER is '2'                         backend/standard_prices
+ $Principal is ''                         backend/delayed_prices
+ 
+ + With this configuration, if an unauthenticated session (one that matches the + $Principal is '' session filter) subscribes to the session path + market/prices/X, and there is a topic bound to the topic path + backend/delayed_prices/X, the subscription will complete. The session + will receive a subscription notification under the session path + market/prices/X, together with the topic properties and the value of + the topic. The session is unaware that the data originates from a topic bound + to a different topic path. If no topic is bound to + backend/delayed_prices/X, the subscription will not resolve and the + session will receive no data, even if there is a topic bound to + market/prices/X. + + Session trees complement the data transformation capabilities of + {@link PTDiffusionTopicViewsFeature topic views}. In our example, the time delayed + time feed at backend/delayed_prices could be maintained by a topic + view using the delay by clause. + + Branch mappings are persisted by the server and shared across a cluster, in a + similar manner to topic views, security stores, and metric collectors. Branch + mappings are editable using this feature, and via the management console. + + For a given session and session path, at most one branch mapping applies. The + applicable branch mapping is chosen as follows: +
    +
  • Each branch mapping table with session tree branch that is a prefix of the + session path is considered. For a given table, the first branch mapping with + a condition that matches the session's properties is the one that applies. A + branch mapping table may have no applicable branch mappings for a session. +
  • If there are several such branch mapping tables with a branch mapping + that for the session, the one with the longest prefix of the session path + applies. +
  • If no branch mapping table has a branch mapping for the session, the + session path is translated to the identical topic path. +
+ + ### Access control + + To subscribe to or fetch from a session path, a session must be granted the + appropriate path permission to the session path for the operation + ({@link PTDiffusionPathPermission#selectTopic SELECT_TOPIC}, or + {@link PTDiffusionPathPermission#readTopic READ_TOPIC}). The session + doesn't require any permissions to the topic path of the topic providing + the data. + + To create or replace branch mappings, a session needs the + {@link PTDiffusionPathPermission#modifyTopic MODIFY_TOPIC} path permission + for the session tree branch of the branch mapping table, + {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} path permission + for the topic tree branch of each branch mapping, and (if an existing table with + the same session tree branch is being replaced) + {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for + each branch mapping of existing table. + + To retrieve a branch mapping table, a session needs the + {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for + its session tree branch. + + ### Accessing the feature + + This feature may be obtained from a {@link PTDiffusionSession session} as follows: +
+ PTDiffusionSessionTreesFeature *const sessionTrees = session.sessionTrees;
+ 
+ + @see PTDiffusionSession + + @since 6.7 + */ +@interface PTDiffusionSessionTreesFeature : PTDiffusionFeature + +/** + @brief Create or replace a branch mapping table. + + The server ensures that there is at most one branch mapping table for a + session tree branch. Putting a new branch mapping table will replace any previous + branch mapping table with the same session tree branch. To remove all branch + mappings for a session tree branch, put an empty branch mapping table. + + @param branchMappingTable the new table + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • InvalidBranchMappingError – if branchMappingTable or one of its + branch mappings is invalid; +
  • SessionSecurityError – if the calling + session does not have the {@link PTDiffusionPathPermission#modifyTopic + MODIFY_TOPIC} permission for the session tree branch of the branch + mapping table, {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} + permission for each branch mapping of branchMappingTable, and (if + there is an existing table for the session tree branch) + {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for + each branch mapping of existing table; +
  • ClusterRoutingError – if the operation failed due to a transient + cluster error; +
  • SessionClosedError – if the session is closed. +
+ + @since 6.7 +*/ +-(void) putBranchMappingTable:(PTDiffusionBranchMappingTable *)branchMappingTable + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + @brief Retrieve the session tree branches of the server's branch mapping tables. + + The results will only include the session tree branches of branch mapping tables + that have at least one branch mapping and for which the calling session + has {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for + the session tree branch. + + Individual branch mapping tables can be retrieved using + {@link #getBranchMappingTableForSessionTreeBranch:completionHandler: getBranchMappingTable}. + + @param 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 the `sessionTreeBranches` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • SessionClosedError – if the session is closed. +
+ + @since 6.7 +*/ +-(void) getSessionTreeBranchesWithMappings:(void (^)(NSArray * _Nullable sessionTreeBranches, NSError * _Nullable error)) completionHandler; + + +/** + @brief Retrieve a branch mapping table from the server. + + If there is no branch mapping table at the given session tree branch, this + method will return an empty branch mapping table. + + @param sessionTreeBranch the session tree branch that identifies the branch mapping + table + + @param 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 the `branchMappingTable` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • SessionSecurityError – if the calling + session does not have the {@link PTDiffusionPathPermission#readTopic + READ_TOPIC} permission for the session tree branch; +
  • SessionClosedError – if the session is closed. +
+ + @since 6.7 +*/ +-(void) getBranchMappingTableForSessionTreeBranch:(NSString *)sessionTreeBranch + completionHandler:(void (^)(PTDiffusionBranchMappingTable * _Nullable branchMappingTable, NSError * _Nullable error)) completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h new file mode 100644 index 0000000..eb6e203 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h @@ -0,0 +1,50 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result of a querying the server for the + session properties of a particular session ID or session filter + + @since 6.5 + */ +@interface PTDiffusionSetSessionPropertiesResult : NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Map of the changed session properties + The contained values in this Map are the old values prior to the change + + @since 6.5 + */ +@property(nonatomic, readonly) NSDictionary * changedProperties; + + +/** + List of the added session properties + + @since 6.5 + */ +@property(nonatomic, readonly) NSArray * addedProperties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStream.h new file mode 100644 index 0000000..9c98d34 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStream.h @@ -0,0 +1,43 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionStreamDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A stream represents an asynchronous, variable length feed of updates from the + Diffusion server. + + @see PTDiffusionTopicsFeature + @see PTDiffusionMessagingFeature + + @since 5.6 + */ +@interface PTDiffusionStream : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The delegate receiving the streaming updates for the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h new file mode 100644 index 0000000..a37190a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h @@ -0,0 +1,57 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The stream delegate protocol defines the methods to be implemented by + classes wishing to receive streaming updates. + + @see PTDiffusionTopicsFeature + @see PTDiffusionMessagingFeature + + @since 5.6 + */ +@protocol PTDiffusionStreamDelegate + +/** + The stream closed prematurely. + + @param stream The stream that closed. + + @param error The reason why the stream closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + */ +-(void)diffusionStream:(PTDiffusionStream *)stream + didFailWithError:(NSError *)error; + +/** + The stream closed normally. + + @param stream The stream that closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + */ +-(void)diffusionDidCloseStream:(PTDiffusionStream *)stream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h new file mode 100644 index 0000000..0626764 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStringFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a string fetch operation issued to the + server. + + A string fetch operation is issued using the + PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionStringFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * stringResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h new file mode 100644 index 0000000..1a4192e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h @@ -0,0 +1,39 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a string fetch operation for a single + selected topic. + + A string fetch operation is issued using the + PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionStringFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) NSString* string; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h new file mode 100644 index 0000000..65cc52e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling string messaging requests with a + handler registered at the server. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionStringRequestDelegate + +/** + Called when a string request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param string The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithString:(nullable NSString *)string + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h new file mode 100644 index 0000000..0884b2a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling String messaging requests. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionStringRequestStreamDelegate + +/** + Called when a string request has been received. + + @param stream The stream that received the request. + + @param string The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithString:(nullable NSString *)string + responder:(PTDiffusionResponder *)responder; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h new file mode 100644 index 0000000..34fc4da --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling string messaging responses from + individual sessions. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionStringSessionResponseStreamDelegate + +/** + Called when a session responds to a request with a string. + + @param stream The stream that received the response. + + @param string The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithString:(nullable NSString *)string + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h new file mode 100644 index 0000000..afe53c8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as a string. + + @since 6.0 + */ +@interface PTDiffusionStringTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The string value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) NSString* string; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..e408ef9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStringTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + string values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with string values. + + @since 6.0 + */ +@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldStringEvent The previous event. If `nil` then this is the first event. + + @param newStringEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldStringEvent:(nullable PTDiffusionStringTimeSeriesEvent *)oldStringEvent + newStringEvent:(PTDiffusionStringTimeSeriesEvent *)newStringEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h new file mode 100644 index 0000000..b6b6e9c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStringTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of string time series events. + + @since 6.0 + */ +@interface PTDiffusionStringTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The string time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* stringEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h new file mode 100644 index 0000000..30c1e89 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h @@ -0,0 +1,111 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + string primitive values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionStringUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly, nullable) NSString* value; + +/** + Sets the topic to a specified value or no value. + + When a `nil` value is supplied to this method for a PTDiffusionTopicType_String + topic, the topic will be updated to have no value. If a previous value was + present subscribers will receive a notification that the new value is null. New + subscribers will not receive a value notification. + + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h new file mode 100644 index 0000000..47e8ceb --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for string + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for string + topics. + + @see PTDiffusionPrimitive + + @since 6.0 + */ +@protocol PTDiffusionStringValueStreamDelegate + +/** + An update was received for a topic path handled by a string value stream. + + @param stream The topic stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldString The previous value. If `nil` then this is either the first + value, or the previous value was `nil` indicating no value. + + @param newString The new value derived from the last update received from the + server, or `nil` if there is no value. + + @since 6.0 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldString:(nullable NSString *)oldString + newString:(nullable NSString *)newString; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h new file mode 100644 index 0000000..fda020c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h @@ -0,0 +1,93 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionStream; +@class PTDiffusionTopicSpecification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed subscription events for + value topics. + + This protocol defines methods to be implemented by classes wishing to receive + streamed subscription events. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ +@protocol PTDiffusionSubscriberStreamDelegate + +/** + Subscription notification. + + This method is called when a session is subscribed to a topic that matches the + stream registration. This method is also called when a stream is added, for all + of the session's subscriptions to topics that match the stream registration. + + For a given topic, this will be the initial notification, and the first + notification following an unsubscription notification if the session + re-subscribes to the topic. + + This method is also called for fallback streams that match the topic type when + the session removes the last stream that selected a subscribed topic. The + fallback stream will now receive updates for the topic, starting with an + immediate notification of the currently cached value (if any). + + @param stream The stream that received the update. + + @param topicPath The topic path to which the session has been subscribed. + + @param specification The specification for the subscribed topic. + + @since 5.9 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didSubscribeToTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification; + +/** + Unsubscription notification. + + This method is called if the session is unsubscribed from a topic that matches + the stream registration. The stream will receive no more updates for the topic + unless the session re-subscribes to the topic. + + This method is also called for fallback streams that match the topic type if + the session adds the first stream that selects a subscribed topic. For these + notifications, the reason will be + PTDiffusionTopicUnsubscriptionReason_StreamChange. The fallback stream will no + longer receive updates for the topic. + + @param stream The stream that received the update. + + @param topicPath The topic path from which the session has been unsubscribed. + + @param specification The specification for the unsubscribed topic. + + @param reason The reason for the unsubscription. + + @since 5.9 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didUnsubscribeFromTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + reason:(PTDiffusionTopicUnsubscriptionReason)reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h new file mode 100644 index 0000000..34fd1ea --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h @@ -0,0 +1,261 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRegistration; +@class PTDiffusionSessionId; +@class PTDiffusionStream; + +@protocol PTDiffusionSubscriptionRoutingRequestHandler; + +/** + Values assigned to the `code` property of NSError objects generated by the + PTDiffusionSubscriptionControlFeature. + + @since 6.1 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionSubscriptionControlFeatureErrorCode) { + /** + The filter was rejected. The command was not sent to any clients. + + @see PTDiffusionUnderlyingErrorsKey + + @since 6.1 + + @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. + */ + PTDiffusionSubscriptionControlFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead") = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + The value assigned to the `domain` property of NSError objects generated by the + PTDiffusionSubscriptionControlFeature. + + @since 6.1 + */ +extern NSString *const PTDiffusionSubscriptionControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + @brief The Subscription Control feature allows a client session to subscribe + or unsubscribe other sessions to topics, as well as also providing a mechanism + for handling requests to subscribe to routing topics (deprecated). + + The Subscription Control feature for a session can be obtained from the + session's `PTDiffusionSession#subscriptionControl` property. + + Requests to subscribe sessions to topics can be submitted at any time even if + the topics do not exist at the server. @ref md_topic_selectors "Topic selectors" + are used on subscription to match against topics at the server. The session + will become subscribed to any topics that exist at the server that match the + selector (unless they are already subscribed, or the session has insufficient + permission). The subscription request is also retained at the server so that if + any newly created topics match the selector, the session will then become + subscribed to it (unless a subsequent unsubscription cancels it). + + Specific sessions may be subscribed/unsubscribed if the PTDiffusionSessionId is + known. + + Subscriptions may also be requested using + @ref md_session_filters "session filters", where all sessions that satisfy a + particular filter expression will be subscribed/unsubscribed. The filter is + only evaluated once against the current sessions that exist at the time - it is + not retained and applied to any sessions that are created later. In order to be + notified of new sessions as they are created a + PTDiffusionSessionPropertiesListener can be used and those sessions subscribed + as required based upon their session properties. + + A handler for routing topics belonging to a branch of the topic tree can be + added using this feature's 'add routing subscription handler' method. When + another session subscribes to one of the routing topics, the handler will be + called to determine the appropriate source topic. + + ### Access control + + To subscribe other sessions to topics, a session must have `PTDiffusionGlobalPermission#modifySession` + permission, and `PTDiffusionPathPermission#selectTopic` permission for the path prefix of the topic + selector used for subscription. The subscribed sessions will only be subscribed + to matching topics for which they have `PTDiffusionPathPermission#readTopic` permission. + + To unsubscribe other sessions, a session must have `PTDiffusionGlobalPermission#modifySession` permission. + + To register a routing subscription handler the session needs `PTDiffusionGlobalPermission#viewSession`, + `PTDiffusionGlobalPermission#modifySession` and `PTDiffusionGlobalPermission#registerHandler` permissions. + + When handling a subscription request to a routing topic via a routing handler + the target session needs `PTDiffusionPathPermission#readTopic` permission to both the routing topic + being subscribed to and the target topic that is assigned. + + @since 6.1 + */ +@interface PTDiffusionSubscriptionControlFeature : PTDiffusionFeature + +/** + Subscribe another session to topics. + + New subscriptions will be established for existing topics that match the + provided topic selector and for which the subscribed session has `PTDiffusionPathPermission#readTopic` + permission. The topic selector will be added to the topic selections of the + subscribed session, and re-evaluated when new topics are added or the session's + security roles change. + + A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot + subscribe directly, but can be subscribed indirectly using this method. + + @param sessionId Identifies the session to subscribe. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to subscribe to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.1 + */ +-(void) subscribeSessionId:(PTDiffusionSessionId *)sessionId + withTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Unsubscribe another session from topics. + + @param sessionId Identifies the session to unsubscribe. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to unsubscribe from. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.1 + */ +-(void) unsubscribeSessionId:(PTDiffusionSessionId *)sessionId + withTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Subscribe sessions that satisfy a given session filter to topics. + + For each session that matches the filter, new subscriptions will be established + for existing topics that match the provided topic selector and for which the + sessions has `PTDiffusionPathPermission#readTopic` permission. The topic selector will be added to the + topic selections of the subscribed session, and re-evaluated when new topics + are added or the session's security roles change. + + A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot + subscribe directly, but can be subscribed indirectly using this method. + + @param filter The @ref md_session_filters "session filter" expression. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to subscribe to. + + @param 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 the `count` argument indicates the number of clients + that satisfied the filter and qualified for subscription. On failure the + `error` argument passed to the block will not be `nil` and the `count` argument + will be zero. The completion handler will be called asynchronously on the main + dispatch queue. + + @note The completion handler block will be invoked with a `nil` for the `error` + argument and zero for the `count` argument if no client sessions satisified the + filter. + + @exception NSInvalidArgumentException If any arguments are `nil`. + + @since 6.1 + */ +-(void) subscribeWithFilter:(NSString *)filter + topicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; + +/** + Unsubscribe sessions that satisfy a given session filter from topics. + + @param filter The @ref md_session_filters "session filter" expression. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to unsubscribe from. + + @param 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 the `count` argument indicates the number of clients + that satisfied the filter and qualified for unsubscription. On failure the + `error` argument passed to the block will not be `nil` and the `count` argument + will be zero. The completion handler will be called asynchronously on the main + dispatch queue. + + @note The completion handler block will be invoked with a `nil` for the `error` + argument and zero for the `count` argument if no client sessions satisified the + filter. + + @exception NSInvalidArgumentException If any arguments are `nil`. + + @since 6.1 + */ +-(void)unsubscribeWithFilter:(NSString *)filter + topicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; + +/** + Adds a handler for routing topics that belong to a branch of the topic tree. + When another session subscribes to one of the routing topics, the handler will + be called to determine the appropriate source topic. + + For each subscription to the routing topic, the server will select a handler + registered for the most specific branch. If multiple handlers are registered + for the same branch, the server will select one of them arbitrarily. + + @param handler The object which will handle the incoming subscription routing + requests. It will be sent messages asynchronously on the main dispatch queue. + A weak reference is maintained to this object. + + @param topicPath Identifies the branch of the topic tree to associate the + handler with. + + @param 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 the `registration` argument will point to a + registration object which can be used to manage the registration. The + completion handler will be called asynchronously on the main dispatch queue. + + @return Stream resulting from the registration of the given routing request handler + for the given topic path. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + + @deprecated since 6.7 Routing Topics are deprecated. The more powerful + {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. + */ +-(PTDiffusionStream *)addRoutingRequestHandler:(id)handler + forTopicPath:(NSString *)topicPath + completionHandler:(void (^)(PTDiffusionRegistration * _Nullable registration, NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h new file mode 100644 index 0000000..80ed457 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h @@ -0,0 +1,103 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A single request from a session to subscribe to a routing topic. + + Each request received by a handler must either be routed or deferred. + + @since 6.1 + */ +@interface PTDiffusionSubscriptionRoutingRequest : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Identifies the session making the subscription request. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + +/** + Identifies the subscribed routing topic. + + @since 6.1 + */ +@property(nonatomic, readonly) NSString* topicPath; + +/** + Defer the handling of this subscription request. + + * When a request is deferred, the server will discard the request, and the + requesting session will not receive a subscription notification. + + An implementation can retain the requesting PTDiffusionSessionId and the + routing topic's path so a routing subscription can be established at a later + time using the PTDiffusionSubscriptionControlFeature. + + Each instance of this class can be used once. If route or defer has already + been called for this instance, calling this method will cause a warning to be + logged by the server, but otherwise have no effect. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if completionHandler is `nil`. + + @since 6.1 + */ +-(void)deferWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Resolve a subscription request by providing the path of a source topic to which + the requesting session will be subscribed via the routing topic. + + The requesting session will receive a subscription notification with the + routing topic's path and the topic specification of the source topic. If the + source topic is stateful, the requesting session will also be sent an update + for the routing topic path with the current value of the source topic. The + existence of the source topic is hidden from the requesting session. Updates to + the source topic are forwarded to the session as if they came from the routing + topic. + + A session that does not have `SELECT_TOPIC` or `READ_TOPIC` permission for the + source topic cannot subscribe directly, but can be subscribed indirectly using + this method. + + @param topicPath The topic path of the source topic to route to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.1 + */ +-(void)routeToSourceTopicPath:(NSString *)topicPath + withCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h new file mode 100644 index 0000000..c68e149 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h @@ -0,0 +1,47 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSubscriptionRoutingRequest; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed subscription routing + requests. + + This protocol defines methods to be implemented by classes wishing to provide + routing functionality. + + @see PTDiffusionSubscriptionControlFeature + + @since 6.1 + */ +@protocol PTDiffusionSubscriptionRoutingRequestHandler + +/** + Notification of a request to subscribe to a specific routing topic. + + @param stream The stream that received the update. + + @param request The request, which must be replied to or deferred. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveSubscriptionRoutingRequest:(PTDiffusionSubscriptionRoutingRequest *)request; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h new file mode 100644 index 0000000..6e286ba --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h @@ -0,0 +1,110 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionBytes; +@class PTDiffusionTimeSeriesFetchResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series. + + Two instances are equal if and only if they have identical attributes. + Typically two instances that have the same sequence number will be equal, but + this may not be true if the event has changed on the server. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesEvent : PTDiffusionTimeSeriesEventMetadata + +/** + If this is an edit event, returns the metadata of the original event that this + event replaces; otherwise returns this event. + + The result is always the metadata of an original event, never that of an edit + event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionTimeSeriesEventMetadata* originalEvent; + +/** + If this is an edit event then `YES`, otherwise `NO` indicating that this is an + original event. + + @since 6.0 + */ +@property(nonatomic, readonly, getter=isEditEvent) BOOL editEvent; + +/** + The value associated with the event. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionBytes* bytes; + +/** + Compares the receiver to the given time series event. + + @param timeSeriesEvent The time series event object with which to compare the + receiver. + + @return `YES` if it is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesEvent:(nullable PTDiffusionTimeSeriesEvent *)timeSeriesEvent; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with time + series events. + + @since 6.3 + */ +@interface PTDiffusionFetchRequest (PTDiffusionTimeSeriesEvent) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to time series topics. Any + topic types specified in a previous call to PTDiffusionFetchRequest#topicTypes: + that cannot be read as a time series will be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.3 + */ +-(void)fetchTimeSeriesEventsWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionTimeSeriesFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h new file mode 100644 index 0000000..60d5f9d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h @@ -0,0 +1,87 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Metadata associated with a time series event. + + @see PTDiffusionTimeSeriesEvent + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesEventMetadata : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Sequence number identifying this event within its time series. + Assigned by the server when the event is created. + + Sequence numbers are unique within a time series. Each event appended to a + time series is assigned a sequence number that is equal to the sequence + number of the preceding event plus one. + + @return The sequence number; never higher than `INT64_MAX`. + + @since 6.0 + */ +@property(nonatomic, readonly) UInt64 sequence; + +/** + Event timestamp. Assigned by the server when the event is created. + + Events do not have unique timestamps. Events with different sequence numbers + may have the same timestamp. + + Subsequent events in a time series usually have timestamps that are greater or + equal to the timestamps of earlier events, but this is not guaranteed due to + changes to the time source used by the server. + + @return The difference, measured in milliseconds, between the time the server + added the event to the time series and midnight, January 1, 1970 UTC. + + @since 6.0 + */ +@property(nonatomic, readonly) SInt64 timestamp; + +/** + Server-authenticated identity of the session that created the event. + + @return The principal that created the event, or + [PTDiffusionSession anonymousPrincipal] if the session that created the event + was not authenticated + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* author; + +/** + Compares the receiver to the given time series event metadata. + + @param timeSeriesEventMetadata The time series event metadata object with which + to compare the receiver. + + @return `YES` if it matches the receiver for just metadata elements (sequence, + timestamp and author), otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesEventMetadata:(nullable PTDiffusionTimeSeriesEventMetadata *)timeSeriesEventMetadata; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h new file mode 100644 index 0000000..56bc5cc --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h @@ -0,0 +1,320 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a session to update and query time series topics. + + ## Time series topics + + A time series is a sequence of events. Each event contains a value + and has server-assigned metadata comprised of a sequence number, timestamp, + and author. Events in a time series are ordered by increasing sequence + number. Sequence numbers have values between `0` and `NSIntegerMax` + and are contiguous: an event with sequence number + `n` will be followed by one with sequence number `n + 1`. Two + events with the same sequence number will be equal – having the same + timestamp, author, and value. + + A time series topic allows sessions to access a time series that is + maintained by the server. A time series topic has an associated + {@link PTDiffusionDataType event data type}, such as `PTDiffusionBinary`, + `PTDiffusionPrimitive `, or `PTDiffusionJSON`, that determines the type of value + associated with each event. + + This feature provides a historic query API for time series topics, allowing a + session to query arbitrary sub-sequences of a time series. The + {@link PTDiffusionTopicControlFeature topic control} and {@link PTDiffusionTopicsFeature topics} + features complete the API, providing ways to create and subscribe to a + time series topic. + + The API presents a time series as an append-only data structure of immutable + events that is only changed by adding new events. + + ### Edit events + + Although a time series is append-only, an event can be overridden by + appending an edit event. An edit event is a special type of event + that overrides an earlier event in the time series (referred to as the + original event) with a new value. When an edit event is added to a + time series, the server retains both the original event and the edit event, + allowing subscription and query results to reflect the edit. + + For example, suppose a time series has two events with the values `A` + and `B`, and the first event has been overridden by a later edit event + that provides a new value of `X`. The server has the following + information about the time series. + + + + + + + + + + + + + + + + + + + + + + +
SequenceValueType
0Aoriginal event
1Boriginal event
2Xedit of sequence 0
+ + The current value of the event with sequence number 0 is `X`. + + If an original event has several edit events, the latest edit event (the one + with the highest sequence number) determines its current value. Each edit + event refers to an original event, never to another edit event. + + Extending the example by appending a further edit event to the time series: + + + + + + + + + + + + +
SequenceValueType
3Ysecond edit of sequence 0
+ + The current value of the event with sequence number 0 is now `Y`. + + + ### Retained range + + A time series topic retains a range of the most recent events. When a new + event is added to the time series, older events that fall outside of the + range are discarded. By default, this range includes the ten most recent + events. A different range can be configured by setting the + {@link PTDiffusionTopicSpecification#timeSeriesRetainedRangePropertyKey + timeSeriesRetainedRange} property. + + ## Subscribing to a time series topic + + A session can {@link PTDiffusionTopicsFeature#subscribeWithTopicSelectorExpression:completionHandler: + subscribe} to a time series topic and add a value stream to receive updates + about events appended to the time series. Events are represented by + {@link PTDiffusionTimeSeriesEvent event} instances. Each event has a value and + {@link PTDiffusionTimeSeriesEventMetadata metadata}. An edit event has two sets of + metadata – its own metadata and that of the original event that it + replaces. + + ### Subscription range + + New subscribers are sent a range of events from the end of the time series. + This is known as the subscription range. Configuring a subscription + range is a convenient way to provide new subscribers with an appropriate + subset of the latest events. + + The default subscription range depends on whether the topic is configured to + publish delta streams. If delta streams are enabled, new subscribers are sent + the latest event if one exists. If delta streams are disabled, new + subscribers are sent no events. Delta streams are enabled by default and can + be disabled by setting the {@link PTDiffusionTopicSpecification#publishValuesOnlyPropertyKey + publishValuesOnly} property to `true`. + + A larger subscription range can be configured by setting the + {@link PTDiffusionTopicSpecification#timeSeriesSubscriptionRangePropertyKey + timeSeriesSubscriptionRange} property. Regardless of the + `timeSeriesSubscriptionRange` property, if delta streams are + enabled, new subscribers will be sent at least the latest event if one + exists. + + If the range of events is insufficient, the subscribing session can use a + {@link PTDiffusionTimeSeriesRangeQuery range query} to retrieve older events. + + When configuring a non-default subscription range for a time series topic, + register value streams before subscribing to the topic. The session only + maintains a local cache of the latest value received for a topic, not the + full subscription range. If a value stream is added after a session has + subscribed to a matching time series topic, the new stream will only be + notified of the latest value. + + ## Updating a time series topic + + A session can use `appendToTopicPath:value:completionHandler` to submit a value to be added to a + time series. The server will add an event to the end of the time series based + on the supplied value, with a new sequence number, timestamp, and the author + set to the authenticated principal of the session. + + Using `appendToTopicPath:value:timestamp:completionHandler` allows a session + to submit a value and supplied timestamp. + This provides control over the timestamp of the event. + The supplied instant must not be before the latest event stored by the time + series topic. There are no other restrictions. + + A session can use `editAtTopicPath:originalSequence:value:completionHandler:` + to submit an edit to an original time series event, identified by its sequence number. + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + Time series topics can also be updated using the functionality provided by + the {@link PTDiffusionTopicUpdateFeature topic update} feature. This includes + `setWithPath:toValue:completionHandler:`, `addWithPath:specification:andSetToJSONValue:completionHandler:` + and {@link PTDiffusionUpdateStream update streams}. This usage performs + an append operation with the added benefits of {@link PTDiffusionUpdateConstraint update constraints}, + topic creation when updating (upsert), and delta streams. When using methods + from {@link PTDiffusionTopicUpdateFeature topic update} the sequence number, timestamp and author metadata + will be generated using the same rules as + `appendToTopicPath:value:timestamp:completionHandler` but the associated + {@link PTDiffusionTimeSeriesEventMetadata event metadata} will not be returned to the caller. + + ## Querying a time series topic + + {@link PTDiffusionTimeSeriesRangeQuery} is a builder for configuring a query that selects a range + of a time series. There are two types of range query that differ in how edits + are processed – value range queries and edit range queries. + + ### Value range queries + + A value range query returns a merged view of part of a time series. This is + the most common time series query and appropriate for most applications. + + The result of a value range query reflects the latest available edits and the + {@link PTDiffusionTimeSeriesQueryResultEventArrayStructure#valueEventStream + query result stream} is ordered by the original + event sequence number, presenting edit events instead of the original events + they replace. Original events that have no edit events are included verbatim. + Original events that have edit events are replaced by the latest edit event. + + A value range query of the example time series, with no range constraints so + the entire time series is selected, returns two events: + +
+    sequence=3, value=Y; original event sequence=0
+    sequence=1, value=B
+ 
+ + The original value of the first event is not provided. It's apparent that the + first event is an edit event because it provides the metadata of the original + event it replaces. + + ### Edit range queries + + Applications with auditing and other administrative requirements can access + original event values using an edit range query. An edit range query returns + an unmerged view of a time series that can include both original events and + the edit events that replace them. Edit range queries are rarely needed + – value range queries satisfy most use cases. + + Edit range queries provide a detailed view of a time series. Because this is + potentially sensitive information, an edit range query can only be performed + by a session that has the {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents + queryObsoleteTimeSeriesEvents} permission for the target topic. + + There are two sub-types of edit range query. + + A full audit trail of edit events can be obtained using an all edits + edit range query. The result contains all original events selected by the + query, together with all subsequent edit events that affect the original + events. The query result stream provides events in time series order. An all + edits query of the example time series, with no range constraints so the + entire time series is selected, returns four events: + +
+    sequence=0; value=A
+    sequence=1; value=B
+    sequence=2; value=X; original event sequence=0
+    sequence=3; value=Y; original event sequence=0
+ 
+ + A latest edits edit range query returns a query result stream in + time series order that contains all original events selected by the query, + together with the latest edit events that affect the original events. A + latest edits query of the example time series, with no range constraints so + the entire time series is selected, returns three events: + +
+    sequence=0; value=A
+    sequence=1; value=B
+    sequence=3; value=Y; original event sequence=0
+ 
+ + The initial range of events delivered for a subscription to a time series + topic is derived from a latest edits edit range query. See + Subscription Range. + + When evaluated for a time series that has no edit events, an edit range query + will return the same results as a similarly configured value range query. + + ## Changes to a time series made outside the API + + The API presents a time series as an append-only data structure of immutable + events that is only changed by adding new events. The API does not allow + events to be deleted or edited. + + There are circumstances in which events can be removed from a time series by + server operations outside the API. For example, a time series topic can be + configured to discard or archive older events to save storage space; or the + time series may be held in memory and lost if the server restarts. Subscribed + sessions are not notified when events are removed in this way, but a session + can infer the removal of events that are no longer included in query results. + Similarly, an event's value can be changed on the server. For example, if an + administrator changes its value to redact sensitive data. Again, subscribed + sessions are not notified when events are modified, but a session can infer + this has happened from query results. + + Whether such changes can happen for a particular time series topic depends on + the topic specification, and the administrative actions that are allowed. To + write a robust application, do not rely on two Event instances with the same + sequence number but obtained though different API calls, being equal; nor + that there are no sequence number gaps between events in query results. + + ## Access control + + The session must have the {@link PTDiffusionPathPermission#readTopic readTopic} + permission for a topic to query a time series topic. The + {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents + queryObsoleteTimeSeriesEvents} permission is additionally required + to evaluate an {@link PTDiffusionTimeSeriesRangeQuery#forEdits edit range} query, or a + {@link PTDiffusionTimeSeriesRangeQuery#forValues value range query} with an + {@link PTDiffusionTimeSeriesRangeQuery#editRange edit range}. + + The session must have the {@link PTDiffusionPathPermission#updateTopic updateTopic} + permission for a topic to `appendToTopicPath:value:completionHandler:` + a new event to a time series topic. The + {@link PTDiffusionPathPermission#editTimeSeriesEvents editTimeSeriesEvents} + permission is additionally required to submit an edit via + `editAtTopicPath:originalSequence:value:completionHandler:` to any time series + topic event. The more restrictive + {@link PTDiffusionPathPermission#editOwnTimeSeriesEvents editOwnTimeSeriesEvents} + permission allows a session to submit edits to time series topic + events that are authored by the principal of the calling session. + + The Time Series feature for a session can be obtained from the session's + {@link PTDiffusionSession#timeSeries timeSeries} property. + + @see PTDiffusionSession + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature : PTDiffusionFeature + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h new file mode 100644 index 0000000..297f104 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTimeSeriesFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a time series fetch operation issued to + the server. + + A time series fetch operation is issued using the + PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: + method. + + @since 6.3 + */ +@interface PTDiffusionTimeSeriesFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.3 + */ +@property(nonatomic, readonly) NSArray * timeSeriesResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h new file mode 100644 index 0000000..be9aa93 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a time series fetch operation for a single + selected topic. + + A time series fetch operation is issued using the + PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: + method. + + @since 6.3 + */ +@interface PTDiffusionTimeSeriesFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the latest event, or `nil` if the topic has no events. + + @since 6.3 + */ +@property(nonatomic, readonly, nullable) PTDiffusionTimeSeriesEvent* event; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h new file mode 100644 index 0000000..5ec45d8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTimeSeriesEvent; +@class PTDiffusionTimeSeriesQueryResultEventArrayStructure; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of time series events. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesQueryResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + If this result includes all events selected by the query then `YES`. + + When this property returns `YES` then the value returned by the selectedCount + property will be the same as the count of the array returned by the events + property. + + @since 6.0 + */ +@property(nonatomic, readonly, getter=isComplete) BOOL complete; + +/** + The number of events selected by the query. + + This number may be greater than the count of the array returned by the events + property due to a policy of the time series topic to limit the number of + returned results, or the use a limit on the range query. + + @since 6.0 + */ +@property(nonatomic, readonly) UInt64 selectedCount; + +/** + The structural properties of the events array. + + @see events + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionTimeSeriesQueryResultEventArrayStructure* eventArrayStructure; + +/** + Compares the receiver to the given time series query result. + + @param timeSeriesQueryResult The time series query result object with which + to compare the receiver. + + @return `YES` if it is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesQueryResult:(nullable PTDiffusionTimeSeriesQueryResult *)timeSeriesQueryResult; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h new file mode 100644 index 0000000..53a9893 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h @@ -0,0 +1,69 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Describes the structural properties of the array of events presented + by a time series query result. + + @see PTDiffusionTimeSeriesQueryResult + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesQueryResultEventArrayStructure : PTDiffusionEnumeration + +/** + The array is presented in time series order, with the following properties: + + - The sequence of each event in the array is unique. + - The array is ordered by sequence. The sequence of each subsequent event + in the stream is greater than its predecessor. + - Edit event timestamps may lie outside the query range. + - The array can have multiple edit events for the same original event. + + @return Instance indicating the array is presented in time series order. + + @since 6.0 + */ ++(instancetype)editEventStream; + +/** + The array is ordered by the original event sequence number, presenting edit + events instead of the original events they replace. + + The array has the following properties: + + - The sequence of each event in the stream is unique. + - The original event sequence of each event in the stream is unique. + - The stream is ordered by original event sequence. The original event sequence + of each subsequent event in the stream is greater than its predecessor. + - If no events have been removed from the time series, the original event + sequence of each subsequent event is one greater than its predecessor. + - If an event is an original event, the query found no corresponding edit + events. + - If an event is an edit event, its timestamp attribute may lie outside the + query range. Consequentially, the sequence and timestamp attributes of the + events may be non-sequential. + + @return Instance indicating array is ordered by the original event sequence number. + + @since 6.0 + */ ++(instancetype)valueEventStream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h new file mode 100644 index 0000000..89d9a86 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h @@ -0,0 +1,379 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Builder for queries that select a range of events from a time series. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesRangeQuery : NSObject + +/** + Return a copy of the receiver configured to perform a value range query with + the view range set to the entire time series. + + Operator type: value range. + + @return a copy of the receiver configured to perform a view range query with a + new view range that selects the entire time series. + + @since 6.0 + */ +-(instancetype)forValues; + +/** + Return a copy of the receiver configured to perform an edit range query with + the view range set to the entire time series. + + Operator type: value range. + + @return a copy of the receiver configured to perform an edit range query with a + new view range that selects the entire time series. + + @since 6.0 + */ +-(instancetype)forEdits; + +/** + Return a copy of the receiver configured to perform a value range query with + the edit range set to the entire time series. + + This operator can only be applied to value range queries. Newly initialised + range query instances are value range queries. The @ref forValues operator can + be used to create a value range query from an edit range query. + + Operator type: edit range. + + @return a copy of the receiver configured to perform a view range query with a + new edit range that selects the entire time series, or `nil` if this is not a + value range query. + + @since 6.0 + */ +-(nullable instancetype)editRange; + +/** + Return a copy of the receiver configured to perform an edit range query with + the edit range that selects all edits in the entire time series. + + This operator can only be applied to edit range queries. Newly initialised + range query instances are value range queries. The @ref forEdits operator can + be used to create an edit range query from a value range query. + + Operator type: edit range. + + @return a copy of the receiver configured to perform an edit range query with a + new edit range that selects all edits in the entire time series, or `nil` if + this is not an edit range query. + + @since 6.0 + */ +-(nullable instancetype)allEdits; + +/** + Return a copy of the receiver configured to perform an edit range query with + the edit range that selects latest edits in the entire time series. + + This operator can only be applied to edit range queries. Newly initialised + range query instances are value range queries. The @ref forEdits operator can + be used to create an edit range query from a value range query. + + Operator type: edit range. + + @return a copy of the receiver configured to perform an edit range query with a + new edit range that selects the latest edits in the entire time series, or + `nil` if this is not an edit range query. + + @since 6.0 + */ +-(nullable instancetype)latestEdits; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be an absolute sequence number. + + Operator type: anchor. + + @param sequence absolute sequence number specifying the anchor of the returned + range. + + @return a copy of the receiver with a new anchor. + + @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)fromSequence:(UInt64)sequence; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be the start of the time series. + + There is a difference between `fromStart` and `fromSequence:0` if the range + also ends before the first event of the time series. For example, + `[[query fromStart] toStart]` is always empty, but + `[[query fromSequence:0] toStart]` includes the event with sequence number `0`. + + Operator type: anchor. + + @return a copy of the receiver with a new anchor. + + @since 6.0 + */ +-(instancetype)fromStart; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be an absolute time. + + Operator type: anchor. + + @param date absolute time specifying the anchor of range. + + @return a copy of the receiver with a new anchor. + + @since 6.0 + */ +-(instancetype)fromDate:(NSDate *)date; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be a relative offset before the end of the time series. + + Operator type: anchor. + + @param count specifies the anchor as a number of events before the end of the + time series. For value range queries, count is the number of original events. + For edit range queries, count is the number of events of any type. + + @return a copy of the receiver with a new anchor. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)fromLastWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be a relative time from the timestamp of the last event in the time series. + + Operator type: anchor. + + @param timeInterval specifies anchor relative to the timestamp of the latest + event in the time series. + + @return a copy of the receiver with a new anchor. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)fromLastWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver with the span of the current range configured to + end at an absolute sequence number. + + Operator type: span. + + @param sequence absolute sequence number specifying the end of the returned + range. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)toSequence:(UInt64)sequence; + +/** + Return a copy of the receiver with the span of the current range configured to + end at the start of the time series. + + There is a difference between `toStart` and `toSequence:0` if the range also + starts before the first event of the time series. For example, + `[[query fromStart] toStart]` is always empty, but + `[[query fromStart] toSequence:0]` includes the event with sequence number `0`. + + Operator type: span. + + @return a copy of the receiver with a new span. + + @since 6.0 + */ +-(instancetype)toStart; + +/** + Return a copy of the receiver with the span of the current range configured to + end at an absolute time. + + Operator type: span. + + @param date absolute time specifying the end of the range. + + @return a copy of the receiver with a new span. + + @since 6.0 + */ +-(instancetype)toDate:(NSDate *)date; + +/** + Return a copy of the receiver with the span of the current range configured to + select a range of events following the anchor. + + Operator type: span. + + @param count specifies the end of the range of events to select following the + anchor. For value range queries, count is the number of original events. For + edit range queries, count is the number of events of any type. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)nextWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the span of the current range configured to + select a temporal range of events following the anchor. + + Operator type: span. + + @param timeInterval the time span of events following the anchor to select. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)nextWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver with the span of the current range configured to + select a range of events preceding the anchor. + + Operator type: span. + + @param count specifies the end of the range of events to select preceding the + anchor. For value range queries, count is the number of original events. For + edit range queries, count is the number of events of any type. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)previousWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the span of the current range configured to + select a temporal range of events preceding the anchor. + + Operator type: span. + + @param timeInterval the time span of events preceding the anchor to select. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)previousWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver with the span of the current range configured to + end a number of events before the end of the time series. + + Operator type: span. + + @param count specifies the end of the range of events to select as a number of + events before the end of the time series. For value range queries, count is the + number of original events. For edit range queries, count is the number of + events of any type. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)untilLastWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the span of the current range configured to + end at a relative time from the timestamp of the last event in the time series. + + + Operator type: span. + + @param timeInterval specifies the end of the range of events to select relative + to the timestamp of the latest event in the time series. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)untilLastWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver that returns at most count events. + + If the query would otherwise select more than count events, only the latest + count values (those with the highest sequence numbers) are returned. + + This is most useful when a temporal span has been configured with + @ref nextWithTimeInterval: or @ref previousWithTimeInterval: where the potential + number of returned events is unknown. + + PTDiffusionTimeSeriesQueryResult::complete can be used to determine whether + a query has returned an incomplete result. + + Operator type: limit. + + @param count the maximum number of events to return. + + @return a copy of the receiver with a new limit. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)limitWithCount:(UInt64)count; + +/** + Compares the receiver to the given time series range query. + + @param timeSeriesRangeQuery The time series range query object with which + to compare the receiver. + + @return `YES` if it is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesRangeQuery:(nullable PTDiffusionTimeSeriesRangeQuery *)timeSeriesRangeQuery; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h new file mode 100644 index 0000000..a82f04f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h @@ -0,0 +1,322 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionAddTopicResult; +@class PTDiffusionBytes; +@class PTDiffusionMissingTopicNotification; +@class PTDiffusionTopicSpecification; +@class PTDiffusionTopicTreeRegistration; +@class PTDiffusionTopicRemovalResult; + +@protocol PTDiffusionMissingTopicHandler; + +typedef NS_ENUM(NSInteger, PTDiffusionTopicControlFeatureErrorCode) { + /** + @deprecated since 6.7 Enumeration is unused. + */ + PTDiffusionTopicControlFeatureErrorCode_ServerFailedToAddTopic __deprecated_enum_msg("Enumeration is unused.") = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + @since 5.7 + */ +extern NSString *const PTDiffusionTopicControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); + +/** + @brief The Topic Control feature provides a client session with the ability to + manage topics. + + This feature allows a session to manage topics. It provides the following + capabilities: + + 1. Adding and removing topics. + 2. Missing topic notifications — listening for requests to subscribe to + topics that do not exist thus allowing dynamic topic creation on demand. + + ### Topics + + The Diffusion server stores data in topics. Each topic is bound to a topic + path in the topic tree, and may have a current value. Sessions can subscribe + to topics. Updates to topic values are broadcast to subscribing sessions. + There are several types of topic. The {@link PTDiffusionTopicType topic type} determines + the type of the data values a topic publishes to subscribers. + + ### Adding topics + + #### Creating topics + + The simplest way to create a topic is to call + `#addTopicWithPath:type:completionHandler:`, supplying a topic type. For example, to + create a {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo`: + +
+
+    [topicControl addTopicWithPath:\@"foo"
+                            type:PTDiffusionTopicType_JSON
+                completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
+    {
+        ...
+    }];
+
+ 
+ + Success or failure is reported asynchronously through the `completionHandler` + arguments. + + The nature of a topic depends primarily on its topic type, but can be + customized using topic properties. Some types of topic cannot be created + without supplying mandatory topic properties. Topic properties can be + supplied in a {@link PTDiffusionTopicSpecification topic specification} using + {@link #addTopicWithPath:specification:completionHandler:}. Topic + specifications can be created using `PTDiffusionTopicSpecification#initWithType:} and + further customized with builder methods. For example, to create a + {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo` with + the {@link PTDiffusionTopicSpecification#validateValuesPropertyKey validate values} property set + to `true`: + +
+ 
+    PTDiffusionTopicSpecification *topicSpecification =
+        [PTDiffusionTopicSpecification alloc] initWithType:PTDiffusionTopicType_JSON
+                                                properties:\@{PTDiffusionTopicSpecification.validateValuesPropertyKey : PTDiffusionTopicSpecification.truePropertyValue}];
+    [topicControl addTopicWithPath:\@"foo"
+                     specification:topicSpecification
+                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
+    {
+        ...
+    }];
+ 
+ 
+ + See {@link PTDiffusionTopicSpecification} for details of the available topic properties + and their effects on the different types of topic. + + Topic creation is idempotent. If {@link #addTopicWithPath:specification:completionHandler:} + is called and there is already a topic bound + to `path` with a topic specification equal to `specification`, + the call will complete normally with an `PTDiffusionAddTopicResult#exists` result. + However, if there is a topic bound to `path` with a different topic + specification, the completionHandler will return an error. + + ### Removing topics + + Topics can be removed using {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: + removeTopicsWithTopicSelectorExpression}. + Only those selected topics that the caller has `PTDiffusionPathPermission#modifyTopic` + permission to will be removed, any others will remain. + + Topics can also be automatically removed according to a removal criteria + specified using the `PTDiffusionTopicSpecification#removalPropertyKey` topic + property. + + ### Managing topic tree hierarchies + + A topic can be bound to any path in the topic tree namespace. The only + restriction is that two topics can not have the same path. + + In the following example a topic can be created with the path `A/B/foo` + even though there are no topics with path `A` or `A/B`: + +
+ 
+    [topicControl addTopicWithPath:\@"A/B/foo"
+                              type:PTDiffusionTopicType_JSON
+                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
+    {
+        ...
+    }];
+ 
+ 
+ + Topics bound to the paths `A` or `A/B` can be created later. + + Topics can be removed without affecting the topics subordinate to them in the + topic tree using {@link #removeDiscreteWithTopicSelectorExpression:completionHandler:} + providing a path topic selector. By using the `//` topic selector qualifier it + is possible to remove a topic and all of its descendant topics, that is to + remove whole topic tree branches. + + ### Access control + + To add or remove a topic, a session needs `PTDiffusionPathPermission#modifyTopic` + permission for the topic path. When removing topics with a topic selector that + matches more than one topic, only topics with paths for which the session has + `PTDiffusionPathPermission#modifyTopic` permission will be removed. + + To successfully register a missing topic handler using + `#addMissingTopicHandler:forTopicPath:completionHandler:`, the session needs + `PTDiffusionGlobalPermission#registerHandler` permission. + + ### Accessing the feature + + The Topic Control feature for a session can be obtained from the session's + `PTDiffusionSession#topicControl` property. + + @see PTDiffusionSession + + @since 5.7 + */ +@interface PTDiffusionTopicControlFeature : PTDiffusionFeature + +/** + Register a handler of requests for a branch of the topic tree. + + The provided handler is called when a client subscribes using a + topic selector that matches no existing topics. This allows a control client + session to be notified when another session requests a topic that does + not exist. + + A session can register multiple handlers, but may only register a single + handler for a given topic path. + A handler will only be called for topic selectors with a path prefix that starts + with or is equal to topicPath. If the path prefix matches multiple handlers, + the one registered for the most specific (longest) topic path will be called. + + @param handler The handler to use for notifying topics at or below the `topicPath` + (unless there is a handler registered for a more specific branch). + + @param topicPath Identifies a branch of the topic tree. + + @param 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 the `registration` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + + @note If the session is closing or closed when this method is called, the + completion handler block will be called with an error, while the missing topic + handler will receive no messages. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 5.7 + */ +-(void)addMissingTopicHandler:(id)handler + forTopicPath:(NSString *)topicPath + completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +/** + Send a request to the server to add a topic. + + This is a convenience method which creates the topic with default details for + the given type. + + @param path The full path of the topic to be created. + + @param type The type of topic to be created. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or value has been + supplied for a topic type that is not stateful. + + @since 6.1 + */ +-(void)addTopicWithPath:(NSString *)path + type:(PTDiffusionTopicType)type + completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Send a request to the server to add a topic. + + The topic will be initialized with the given value, if specified non-`nil`, + during creation and therefore the value must be compatible with the topic type. + + @param path The full path of the topic to be created. + + @param specification Defines the topic to be created. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or value has been + supplied for a topic type that is not stateful. + + @since 6.1 + */ +-(void)addTopicWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Send a request to remove one or more topics. + + All topics that match the provided topic selector that the caller has + permission to remove will be removed. + + The selector's descendant pattern qualifier (a trailing `/` or `//`), can be + used to remove descendant topics. If a single `/` qualifier is specified, all + descendants of the matched topic paths will be removed. If `//` is specified, + the matched paths and all descendants of the matched paths (complete branches) + will be removed. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 5.9 + + @deprecated since 6.6. Use {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: + removeTopicsWithTopicSelectorExpression} instead. + */ +-(void)removeDiscreteWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler +__deprecated_msg("Will be removed in a future release"); + + +/** + Send a request to remove one or more topics. + + All topics that match the provided topic selector that the caller has + permission to remove will be removed. + + The selector's descendant pattern qualifier (a trailing `/` or `//`), can be + used to remove descendant topics. If a single `/` qualifier is specified, all + descendants of the matched topic paths will be removed. If `//` is specified, + the matched paths and all descendants of the matched paths (complete branches) + will be removed. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. `result` provides the number of topics + removed via {@link PTDiffusionTopicRemovalResult#removedCount removedCount}. + + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.6 + */ +-(void)removeTopicsWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionTopicRemovalResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h new file mode 100644 index 0000000..fc7efb3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h @@ -0,0 +1,49 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Indicates whether the operation caused a topic to be created or if it + already existed. + + @see PTDiffusionTopicUpdateFeature + @see PTDiffusionUpdateStream + + @since 6.3 + */ +@interface PTDiffusionTopicCreationResult : PTDiffusionEnumeration + +/** + A new topic was created. + + @return Instance indicating a new topic was created. + + @since 6.3 + */ ++(instancetype)created; + +/** + A topic with the same specification already exists. + + @return Instance indicating a topic with the same specification already exists. + + @since 6.3 + */ ++(instancetype)exists; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h new file mode 100644 index 0000000..55fee76 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h @@ -0,0 +1,73 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The definition of a topic metric collector. + + These can be configured to record metric data for a subset of all + topics, specified with a topic selector. + + @since 6.7 + */ +@interface PTDiffusionTopicMetricCollector : PTDiffusionMetricCollector + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + The topic selector. + + @since 6.7 + */ +@property(nonatomic, readonly) NSString *topicSelector; + + +/** + Indicates whether the collector groups by topic type. + + @since 6.7 + */ +@property(nonatomic, readonly) BOOL groupsByTopicType; + + +/** + Indicates whether the collector groups by topic view. + + @since 6.9 + */ +@property(nonatomic, readonly) BOOL groupsByTopicView; + + +/** + @brief The number of leading parts of the topic path to group by. + + The number of leading parts of the topic pathh to group by, + or 0 if the collector does not group by path prefix. + + @since 6.8 + */ +@property(nonatomic, readonly) NSInteger groupByPathPrefixParts; + + + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h new file mode 100644 index 0000000..a9e0981 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h @@ -0,0 +1,97 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicMetricCollector; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A topic metric collector builder. + + @since 6.7 + */ +@interface PTDiffusionTopicMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder + + +/** + Specifies whether the metric collector should group by topic + type. + + By default, a topic metric collector does not group by topic type. + + @param groupByTopicType true to indicate that the collector + should group by topic type + + @return the builder + + @since 6.7 + */ +-(instancetype)groupByTopicType:(BOOL)groupByTopicType; + + +/** + Specifies whether the metric collector should group by topic + view. + + By default, a topic metric collector does not group by topic view. + + @param groupByTopicView true to indicate that the collector + should group by topic view + + @return the builder + + @since 6.9 + */ +-(instancetype)groupByTopicView:(BOOL)groupByTopicView; + + +/** + Specified the number of leading parts of the topic path the + metric collector should use to group results. + + By default a topic metric collector does not group by the topic + path prefix. If a positive number of parts is specified, it + will enable grouping. + + @param parts the number of leading parts of the topic path to + group by; set to 0 to disable grouping by path + + @return the builder + + @since 6.8 + */ +-(instancetype)groupByPathPrefixParts:(NSInteger)parts; + + +/** + @brief Create a new {@link PTDiffusionTopicMetricCollector} using the values + currently known to this builder. + + @param name the name of the {@link PTDiffusionTopicMetricCollector} + + @param topicSelector the selector pattern that specifies the topics for which + metrics are to be collected. + + @return a new {@link PTDiffusionTopicMetricCollector} with all of the + current settings of this builder. + + @since 6.7 + */ +-(PTDiffusionTopicMetricCollector *) createCollectorWithName:(NSString *const)name + andTopicSelector:(NSString *const)topicSelector; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h new file mode 100644 index 0000000..a6c312d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h @@ -0,0 +1,71 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicNotificationType; +@class PTDiffusionTopicSpecification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed topic notifications. + + This protocol defines methods to be implemented by classes wishing to receive + streamed topic notifications. + + @see PTDiffusionTopicNotificationsFeature + + @since 6.1 + */ +@protocol PTDiffusionTopicNotificationListener + +/** + Notification for an immediate descendant of a selected topic path. + This notifies the presence or absence of a descendant topic that may + subsequently be explicitly selected. + + @param stream The stream that received the update. + + @param type The type of notification. + + @param topicPath The path of the immediate descendant that is not selected. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveDescendantNotificationWithType:(PTDiffusionTopicNotificationType *)type + topicPath:(NSString *)topicPath; + +/** + Notification for a selected topic. + + @param stream The stream that received the update. + + @param type The type of notification. + + @param topicPath The path of the topic that this notification is for. + + @param specification The specification of the topic that this notification is + for. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveNotificationWithType:(PTDiffusionTopicNotificationType *)type + topicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h new file mode 100644 index 0000000..7564c27 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h @@ -0,0 +1,69 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The registration state of the associated topic notification listener + on the server. + + Provides operations to control which topic paths the listener will receive + notifications for. + + @since 6.1 + */ +@interface PTDiffusionTopicNotificationRegistration : PTDiffusionRegistration + +/** + Request to receive notifications for all topics matched by the provided topic + selector. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + */ +-(void)selectWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Request to stop receiving notifications for all topics matched by the provided + topic selector. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + */ +-(void)deselectWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h new file mode 100644 index 0000000..c334ab3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h @@ -0,0 +1,67 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The type of topic notification received. + + @see PTDiffusionTopicNotificationListener + + @since 6.1 + */ +@interface PTDiffusionTopicNotificationType : PTDiffusionEnumeration + +/** + The topic has been added. + + @return Instance indicating a topic has been added. + + @since 6.1 + */ ++(instancetype)added; + +/** + The topic has been removed. + + @return Instance indicating a topic has been removed. + + @since 6.1 + */ ++(instancetype)removed; + +/** + The topic existed at the time of the selector registration. + + @return Instance indicating a topic existed at the time of + the selector registration. + + @since 6.1 + */ ++(instancetype)selected; + +/** + The topic is no longer selected due to the removal of a selector. + + @return Instance indicating a topic is no longer selected due to + the removal of a selector. + + @since 6.1 + */ ++(instancetype)deselected; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h new file mode 100644 index 0000000..233d371 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h @@ -0,0 +1,130 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStream; +@class PTDiffusionTopicNotificationRegistration; + +@protocol PTDiffusionTopicNotificationListener; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Topic Notifications feature allows a client session to receive + notifications about changes to selected topics. + + The Topic Notifications feature for a session can be obtained from the + session's `PTDiffusionSession#topicNotifications` property. + + ### Notifications + + Sessions receive notifications by implementing a + PTDiffusionTopicNotificationListener. The listener will be provided with a + PTDiffusionTopicSpecification for all topics bound to paths that match + registered selectors, and any subsequent notifications for the selected + topics on those paths. Notifications will only be emitted for paths where a + topic is bound. + + For example, with a registered selector `"?a//"`, if a topic is added at path + `a/b/c/d` with no topics bound to paths higher in the hierarchy + `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveNotificationWithType:topicPath:specification:` + will be called once with a topic path of `"a/b/c/d"`, a notification type of + PTDiffusionTopicNotificationType::added, and the topic's associated + PTDiffusionTopicSpecification. + + The nature of the notification is provided by the + PTDiffusionTopicNotificationType enum. PTDiffusionTopicNotificationType::added + and PTDiffusionTopicNotificationType::removed represent structural changes to + the topic tree; PTDiffusionTopicNotificationType::selected indicates that a + pre-existing topic has been selected by a new registered selector, and + similarly PTDiffusionTopicNotificationType::deselected indicates that a topic + is no longer selected because of changes to the set of registered selectors for + the listener. + + ### Selection and deselection + + Registered PTDiffusionTopicNotificationListener implementations will receive + notifications for all topics matching registered selections. Selection of + topics using @ref md_topic_selectors "topic selector" expressions is provided + via the PTDiffusionTopicNotificationRegistration associated for a specific + listener. + + A session can request selections at any time, even if the topics do not exist + at the server. Selections are stored on the server and any subsequently added + topics that match registered selectors will generate notifications. + + ### Immediate descendant notifications + + Listeners will be informed about the presence or absence of unselected + immediate descendants via + `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveDescendantNotificationWithType:topicPath:`. + This allows listeners to determine whether to select deeper topic paths in + order towalk the topic tree. An immediate descendant is defined as the + first bound topic on any branch below a given topic path. + + For example, for topics at `"a/b", "a/c", "a/c/d", "a/e/f/g"`, the immediate + descendants of `"a"` would be `"a/b", "a/c", "a/e/f/g"`. + + Immediate descendant notifications provide a PTDiffusionTopicNotificationType + to indicate the reason for the notification in the same manner as for + topic notifications. + + For example, with a registered selector `">a"`, if a topic is added at path + `"a/b"` then a descendant notification will be received with a topic path of + `"a/b"` and a notification type of PTDiffusionTopicNotificationType::added + If a topic was subsequently added at path `"a/b/c"`, no further notifications + will be received until + PTDiffusionTopicNotificationRegistration::selectWithTopicSelectorExpression:completionHandler: + was used to select the deeper topic path `">a/b"`. + + ### Access control + + A listener will only be notified about topics for which the session has + `PTDiffusionPathPermission#selectTopic` and `PTDiffusionPathPermission#readTopic` + permissions. + `PTDiffusionPathPermission#selectTopic` determines which selectors a listener may register; + `PTDiffusionPathPermission#readTopic` determines which selected topics the client may receive + notifications for. + + @see PTDiffusionSession + + @since 6.1 + */ +@interface PTDiffusionTopicNotificationsFeature : PTDiffusionFeature + +/** + Register a listener to receive topic notifications. + + @param listener The object which will handle the incoming notifications. It + will be sent messages asynchronously on the main dispatch queue. A weak + reference is maintained to this object. + + @param 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 the `registration` argument will point to a + registration object which can be used to manage the registration. The + completion handler will be called asynchronously on the main dispatch queue. + + @return The stream resulting from the listener registration. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + */ +-(PTDiffusionStream *)addListener:(id)listener + completionHandler:(void (^)(PTDiffusionTopicNotificationRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h new file mode 100644 index 0000000..10eb122 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h @@ -0,0 +1,192 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Permissions protecting access-controlled operations that are evaluated + for a specific topic path. + + @see PTDiffusionGlobalPermission + + @since 6.3 + + @deprecated since 6.5. Replaced by the equivalent {@link PTDiffusionPathPermission}. + In previous releases, the path-scoped permissions were called "topic permissions". + This was a source of confusion since some of the permissions apply to message paths or + to session lock names, both of which are hierarchical but have nothing to do with topics in + the topic tree. + The term "topic permission" has been renamed "path permission" throughout the API. + Additional methods have been added to reflect this renaming. + The old methods are deprecated and will be removed in a future release. + */ + +__deprecated_msg("Will be removed in a future release.") +@interface PTDiffusionTopicPermission : PTDiffusionEnumeration + +/** + Required to receive information from a topic. + + If a session does not have read_topic permission for a topic, the topic will be + excluded from the results of subscription or fetch operations for the session, + and the topic's details cannot be retrieved by the session. + + @return Instance representing the permission to receive information + from a topic. + + @see #selectTopic + + @since 6.3 + */ ++(instancetype)readTopic; + +/** + Permission to update a topic. + + @return Instance representing the permission to update a topic. + + @since 6.3 + */ ++(instancetype)updateTopic; + +/** + Permission to add a topic or remove a topic. + + @return Instance representing the permission to add or remove + a topic. + + @since 6.3 + */ ++(instancetype)modifyTopic; + +/** + Permission to send a message to a handler registered with the server. + + @return Instance representing the permission to send a message to + a handler registered with the server. + + @since 6.3 + */ ++(instancetype)sendToMessageHandler; + +/** + Permission to send a message to a client session. + + @return Instance representing the permission to send a message to + a client session. + + @since 6.3 + */ ++(instancetype)sendToSession; + +/** + Permission to use a topic selector that selects the topic path. + + A session must have this permission for the path prefix of any topic selector + used to subscribe or fetch. + + When the subscription or fetch request completes, the resulting topics are + further filtered based on the #readTopic permission. + + A session that has #readTopic but not #selectTopic for a particular topic path + cannot subscribe directly to topics belonging to the path. However, the session + can be independently subscribed by a control session that has PTDiffusionGlobalPermission#modifySession + permission in addition to the appropriate #selectTopic permission. + + @return Instance representing the permission to use a topic selector that selects + a topic path + + @since 6.3 + */ ++(instancetype)selectTopic; + +/** + Permission to evaluate queries that return a non-current view of a time series topic. + + The #readTopic permission is required to evaluate any type of query for a time + series topic. This permission is additionally required for queries that + potentially return a non-current view of all or part of a time series. Such + queries include value range queries that specify an edit range, and all types + of edit range query. + + @return Instance representing the permission to evaluate queries that return a non-current + view of a time series topic. + + @see PTDiffusionTimeSeriesFeature + + @since 6.3 + */ ++(instancetype)queryObsoleteTimeSeriesEvents; + +/** + Permission to submit edits to time series topic events. + + The #updateTopic permission is required to update a time series topic. This + permission is additionally required to submit edits to a time series topic. + + @return Instance representing the permission to submit edits to time series + topic events. + + @see PTDiffusionTimeSeriesFeature + @see #editOwnTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editTimeSeriesEvents; + +/** + Permission to submit edits to time series topic events which have an author + which is the same as the principal of the calling session. + + This permission is a more restrictive alternative to #editTimeSeriesEvents. + + The #updateTopic permission is required to update a time series topic. This + permission is additionally required to submit edits to a time series topic + where the event author is the same as the principal of the calling session. + + @return The instance representing the permission to submit edits to time series + topic events which have an author identical to the principal of the + calling session. + + @see PTDiffusionTimeSeriesFeature + @see #editTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editOwnTimeSeriesEvents; + +/** + Permission to acquire a session lock. + + @return The instance representing the permission to acquire a session lock. + + @see PTDiffusionSessionLock + + @since 6.3 + */ ++(instancetype)acquireLock; + +/** + Permission that is unsupported by the session. + + @return The instance representing an unsupported permission by the session. + + @since 6.3 + */ ++(instancetype)unknownTopicPermission; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h new file mode 100644 index 0000000..0bbce27 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Reports the number of topics removed by a call to + {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: + removeTopicsWithTopicSelectorExpression} + + @since 6.6 + */ +@interface PTDiffusionTopicRemovalResult : NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + +/** + The integer returned represents the number of topics removed by the + operation. This does not include any derived topics created by a + topic view which were removed as a side effect of this action. + */ +@property (nonatomic, readonly) NSUInteger removedCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h new file mode 100644 index 0000000..7cff311 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h @@ -0,0 +1,118 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A topic selector identifies one or more topics. + + Topic selector objects are only used by the local client library and are immutable. + + For more information on topic selector evaluation see the + @ref md_topic_selectors "Topic Selectors" guide. + + @see PTDiffusionMessagingFeature + @see PTDiffusionTopicsFeature + + @since 5.6 + */ +@interface PTDiffusionTopicSelector : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Return a topic selector object initialized with the given expression. + + @param expression The expression to be used for evalutating topic paths. + + @return Topic selector instance initialised with the given expression. + + @since 5.6 + */ ++(instancetype)topicSelectorWithExpression:(NSString *)expression; + +/** + The expression association with the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly) NSString* expression; + +/** + The topic path prefix from this selector pattern. + + Returns the largest fixed topic path that begins the selector expression. + For path selectors, this is the entire path. For split pattern or full pattern + selectors, this is a topic path up to, but not including, the first part of the + path that contains a regular expression. + + For selector sets, this method will return the largest prefix that is common to + all included selectors. + + If there is no common prefix, an empty string will be returned. + + @since 6.1 + */ +@property(nonatomic, readonly) NSString* pathPrefix; + +/** + Evaluate this receiver against a topic path. + + @param topicPath The topic path to evaluate against. + May be `nil` or an empty string, in which case this method returns `NO`. + + @return `YES` if the receiver selects the topicPath. + + @since 5.6 + */ +-(BOOL)selectsTopicPath:(nullable NSString *)topicPath; + +/** + Compares the receiver to the given topic selector. + + @param topicSelector The topic selector object with which to compare the receiver. + + @return `YES` if the topic selector is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToTopicSelector:(nullable PTDiffusionTopicSelector *)topicSelector; + +/** + Create a selector that matches if any of the provided selectors match. + + @param selectors The selectors + + @return A selector which matches if any of selectors do. + + @since 5.9 + */ ++(instancetype)topicSelectorWithAnyOf:(NSArray*)selectors; + +/** + A convenience wrapper around `topicSelectorWithAnyOf:`. + + @param expressions The selector expressions. + + @return A selector which matches if any of `expressions` do + + @since 5.9 + */ ++(instancetype)topicSelectorWithAnyExpression:(NSArray*)expressions; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h new file mode 100644 index 0000000..a1199b7 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h @@ -0,0 +1,984 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Topic specifications provide the information required to create a topic. + + Topics can be created from a topic specification using + `[PTDiffusionTopicControlFeature addTopicWithPath:specification:completionHandler:]`. + + Topic specifications allow an application to introspect the type and + capabilities of a topic. Topic specifications are provided to + value streams and topic notification listeners. + + A topic specification has a topic type and a map of + property settings which define the behavior of the topic. A default topic + specification for a topic type can be created using + `[PTDiffusionTopicSpecification initWithType:]`. Topic specifications with + different properties can be derived from a default instance using the + `[PTdiffusionTopicSpecification initWithType:properties:]` builder method. + + ###Topic Properties + + Depending on the topic type, some properties must be included in the + specification when creating a topic and some properties have no effect. The + required and optional properties for each the topic type are set out in the + following table. Properties unsupported by the topic type are ignored. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Default when optionalString
+ JSON
+ Binary
+
Double
+ Int64
RecordV2TimeSeriesRouting
COMPRESSIONlowOptional—OptionalOptionalOptional
CONFLATION`conflate`OptionalOptionalOptionalOptional †Optional
DONT_RETAIN_VALUE`false`OptionalOptionalOptional—— ‡
OWNEROptionalOptionalOptionalOptionalOptional
PERSISTENT`true`OptionalOptionalOptionalOptionalOptional
PRIORITY`default`OptionalOptionalOptionalOptionalOptional
PUBLISH_VALUES_ONLY`false`Optional—OptionalOptional— ‡
REMOVALOptionalOptionalOptionalOptionalOptional
SCHEMA——Optional——
TIDY_ON_UNSUBSCRIBE`false`OptionalOptionalOptionalOptionalOptional
TIME_SERIES_EVENT_VALUE_TYPE———Required—
TIME_SERIES_RETAINED_RANGE`limit 10`———Optional—
TIME_SERIES_SUBSCRIPTION_RANGEas documented———Optional—
VALIDATE_VALUES`false`OptionalOptionalOptionalOptional— ‡ +
+ +
+
† +
`TIME_SERIES` topics have restricted values for the + `CONFLATION` property. They are only allowed to have the values + `off` or `unsubscribe`. +
‡ +
`ROUTING` topics (deprecated) are references to other topics, and have no value + of their own. Instead, they reflect the value of the appropriate source + topic. Observed behavior depends on the values of the + `DONT_RETAIN_VALUE`, `PUBLISH_VALUES_ONLY`, and + `VALIDATE_VALUES` properties that are set on the source topic. +
+ + @since 5.9 + */ +@interface PTDiffusionTopicSpecification : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Initializer for the topic specification object with a given topic type and + an empty properties dictionary. + + @param type the topic type + + @return a topic specification object initialized with the given topic type and + an empty properties dictionary. + + @since 6.0 + */ +-(instancetype)initWithType:(PTDiffusionTopicType)type; + +/** + Initializer for the topic specification object with a give topic type and + properties dictionary. + + @param type the topic type + + @param properties the topic properties dictionary + + @return topic specification object initialized with the given topic type and + properties dictionary. + + @exception NSInvalidArgumentException If properties is `nil`. + + @since 6.0 + */ +-(instancetype)initWithType:(PTDiffusionTopicType)type + properties:(NSDictionary *)properties NS_DESIGNATED_INITIALIZER; + +/** + The type of topic. + + @since 5.9 + */ +@property(nonatomic, readonly) PTDiffusionTopicType type; + +/** + The topic properties. May be empty. + + @since 5.9 + */ +@property(nonatomic, readonly) NSDictionary* properties; + +/** + Compares the receiver to the given topic specification. + + @param topicSpecification The topic specification object with which to compare the receiver. + + @return `YES` if the topic specification is equal to the receiver, otherwise `NO`. + + @since 5.9 + */ +-(BOOL)isEqualToTopicSpecification:(nullable PTDiffusionTopicSpecification *)topicSpecification; + +/** + Key of boolean topic property indicating whether a topic should publish only + values. + + By default, a topic that supports delta streams will publish the + difference between two values (a delta) when doing so is more efficient + than publishing the complete new value. Subscribing sessions can use a + value stream to automatically apply the delta to a + local copy of the topic value to calculate the new value. + + Setting this property to `true` disables this behavior so that deltas are never + published. Doing so is usually not recommended because it will result in more + data being transmitted, less efficient use of network resources, and increased + transmission latency. On the other hand, calculating deltas can require + significant CPU from the server or, if update streams are used, from the + updating client. The CPU cost will be higher if there are many differences + between successive values, in which case delta streams confer fewer benefits. + If successive values are unrelated to each other, consider setting this + property to `true`. Also consider setting this property to `true` if the + network capacity is high and the bandwidth savings of deltas are not required. + + @return string representing the key of boolean topic property indicating whether + a topic should publish only values. + + @since 5.9 + @see #dontRetainValuePropertyKey + */ ++(NSString *)publishValuesOnlyPropertyKey; + +/** + Key of boolean topic property indicating whether a topic should validate + inbound values. + + By default, the server does not validate received values before sending them on + to clients. Invalid or corrupt values will be stored in the topic and passed on + to clients. If this property is set to `true`, the server will perform + additional validation on values to check that it is a valid instance of the + data type, and if it is not then it will return an error to the updater and not + update the topic. + + If this value is not set (or set to something other than `true`), no server + validation of inbound values is performed. This is the recommended setting as + there is a performance overhead to validation and a client using a value + updater could not send invalid values anyway. + + @return string representing the key of boolean topic property indicating whether + a topic should validate inbound values. + + @since 5.9 + */ ++(NSString *)validateValuesPropertyKey; + +/** + Key of boolean topic property that sets the 'tidy on unsubscribe' option for a + topic. + + By default, if a session unsubscribes from a topic, it will receive any updates + for that topic that were previously queued but not sent. + + If this property is set to `true`, when a client session unsubscribes from the + topic, any updates for the topic that are still queued for the session are + removed. There is a performance overhead to using this option as the client + queue must be scanned to find topic updates to remove, however it may prove + useful for preventing unwanted data being sent to client sessions. + + @return string representing the key of boolean topic property that sets the + 'tidy on unsubscribe' option for a topic. + + @since 6.0 + */ ++(NSString *)tidyOnSubscribePropertyKey; + +/** + Key of the string topic property that specifies the event data type for a time + series topic. + + The value is the type name of a data type. + + @return string representing the key of the string topic property that specifies + the event data type for a time series topic. + + @see PTDiffusionDataType + + @since 6.0 + */ ++(NSString *)timeSeriesEventValueTypePropertyKey; + +/** + Key of the string topic property that specifies the range of events retained by + a time series topic, as a time series range expression. + + When a new event is added to the time series, older events that fall outside of + the range are discarded. + + If this property is not specified, a time series topic will retain the ten most + recent events. + + The value of this property is a time series range expression string composed of + one or more constraint clauses. Constraints are combined to provide a range of + events from the end of the time series. + +
+
limit constraint
+
A limit constraint specifies the maximum number of events from the + end of the time series.
+
last clause
+
A last constraint specifies the maximum duration of events from the + end of the time series. The duration is expressed as an integer followed + by one of the following time units: +
    +
  • `MS` – milliseconds
  • +
  • `S` – seconds;
  • +
  • `H` – hours.
  • +
+
+
+ + If a range expression contains multiple constraints, the constraint that + selects the smallest range is used. + + + + + + + + + + + + + + + + + + +
Property valueMeaning
`limit 5`The five most recent events
`last 10s`All events that are no more than ten seconds older than the latest + event
`last 10s limit 5`The five most recent events that are no more than ten seconds older + than the latest event
+ + Range expressions are not case sensitive: `limit 5 last 10s` is equivalent to + `LIMIT 5 LAST 10S`. + + @return string representing the key of the string topic property that specifies + the range of events retained by a time series topic, as a time series + range expression. + + @since 6.0 + */ ++(NSString *)timeSeriesRetainedRangePropertyKey; + +/** + Key of the string topic property that specifies the range of time series topic + events to send to new subscribers, as a time series range expression. + + This property value is a time series range expression, following the format + used for #timeSeriesEventValueTypePropertyKey. + + If this property is not specified, new subscribers will be sent the latest + event if delta streams are enabled and no events if delta streams are disabled. + + @return string representing the key of the string topic property that specifies + the range of time series topic events to send to new subscribers, as a + time series range expression. + + @since 6.0 + */ ++(NSString *)timeSeriesSubscriptionRangePropertyKey; + +/** + Key of the string topic property that specifies a schema which constrains topic + values. + + This property is only used by Diffusion recordV2 topics. + The property value can be generated using the + PTDiffusionRecordV2Schema#JSONData property of a schema created using a + PTDiffusionRecordV2SchemaBuilder. + + @return string representing the key of the string topic property that specifies + a schema which constrains topic values. + + @since 6.0 + */ ++(NSString *)schemaPropertyKey; + +/** + Key of boolean topic property that specifies a topic should not retain + its last value. + + By default, a topic (other than a `ROUTING`) will retain its + latest value. The latest value will be sent to new subscribers. Setting + this property to `true` disables this behavior. New subscribers + will not be sent an initial value. No value will be returned for fetch + operations that select the topic. This is useful for data streams where + the values are only transiently valid. + + Setting this property to `true` also disables delta streams, regardless of the + #publishValuesOnlyPropertyKey value. If subsequent values are likely to be + related, delta streams usually provide performance benefits (see + #publishValuesOnlyPropertyKey). Consider leaving this property set to `false` + to benefit from delta streams, even if there is no other requirement to retain + the last value. + + Bearing in mind the performance trade-offs of disabling delta streams, there + are two reasons to consider setting this property to `true`. First, it stops + the server and each subscribed client from keeping a copy of the value, + reducing their memory requirements. Second, when a topic has a high update rate + and is replicated across a cluster, it can significantly improve throughput + because the values need not be persisted to the cluster. + + Time series topics ignore this property and always retain the latest value. + + @return string representing the key of boolean topic property that specifies + a topic should not retain its last value. + + @since 6.0 + */ ++(NSString *)dontRetainValuePropertyKey; + +/** + Key of the topic property that can be used to prevent a topic from being + persisted when the server is configured to enable persistence. + + By default, a topic will be persisted if persistence is enabled at the server + and the topic type supports persistence. + + Setting to `false` will prevent the topic from being persisted. + + @return string representing the key of the topic property that can be used to + prevent a topic from being persisted when the server is configured to + enable persistence. + + @since 6.1 + */ ++(NSString *)persistentPropertyKey; + +/** + Key of the topic property that specifies a removal policy for automatic + removal of the topic (and/or other topics). + + This property is specified as an expression which defines one or more + conditions that are to be satisfied before automatic removal occurs. + + The expression takes the form: + + when [remove ""] + + At least one *condition* must be supplied. If more than one is supplied, they + must be separated by logical operators (`and` or `or`). The natural evaluation + order of the operators may be changed by surrounding with parentheses (e.g. + (*condition* `and` *condition*)). + + The `remove` clause is optional. It provides a + @ref md_topic_selectors "topic selector" expression to be evaluated by the + server, representing the topics to be removed. If a `remove` clause is + specified, the topic with the removal policy will only be removed if its path + matches the selector expression. The selector must be surrounded by either + double or single quotes. + + When many topics have the same removal policy, it is better to + set the `REMOVAL` property for one of them, using a `remove` + clause that selects all of the topics. This is more efficient because it + allows the server to avoid evaluating the same condition many times. + + The permissions that are applied at the time of removal are those defined by + the roles of the principal that created the topic at the time of creation. The + roles of that principal may therefore change before the removal with no effect, + but if the permissions given to the roles change it may have an effect upon the + final removal. + + Only one occurrence of each of the following condition types may be included + within the expression: + + + + + + + + + + + + + + + + + + + + + + +
Condition TypeFormatUsage
time aftertime after absoluteTimeRemoval should occur after a specified absolute time. Absolute time may be + specified as a number of milliseconds since the epoch (00:00:00 on 1 January + 1970) **or** as a quoted date and time formatted in + RFC_1123 + date time format. Either single or double quotes may be used.
subscriptions less than[local] subscriptions < n for forPeriod [after afterPeriod]Removal should occur when the topic has had less than the specified number + (*n*) of subscriptions for a given period (*forPeriod*) of time. Optionally, an + initial period (*afterPeriod*) may be specified by which to delay the initial + checking of this condition. See below for period formats. +

The optional local keyword restricts evaluation to only count + subscriptions from sessions belonging to the local server or cluster, + ignoring subscriptions from sessions belonging to downstream remote servers that + host fanout replicas of the topic.

no updates forno updates for forPeriod [after afterPeriod]Removal should occur when the topic has had no updates for a given period + (*forPeriod*) of time. Optionally, an initial period (*afterPeriod*) may be + specified by which to delay the initial checking of this condition. See below + for period formats.
+ + Multiple occurrences of the following condition types may be included + within the expression: + + + + + + + + + + + + + + + + + +
Condition TypeFormatUsage
no session hasno [local] session has "criteria" [for forPeriod] [after afterPeriod]Removal should occur when no sessions satisfy certain *criteria*. + Optionally, the criteria can be required to be satisfied for a period of time + (*forPeriod*). Optionally, an initial period (*afterPeriod*) can be specified + to delay the initial check of the criteria. Session selection criteria are + specified as defined in @ref md_session_filters "session filters" and must be + surrounded by single or double quotes. See below for period formats. +

The optional local keyword restricts evaluation to sessions + belonging to the local server or cluster, ignoring sessions belonging to + downstream remote servers that host fanout replicas of the topic.

this session closesThis is a shorthand form of `no local session has` that may be used to + indicate that the topic is to be removed when the session that created it + closes.
+ + Time periods are specified as a number followed (with no intermediate space) by + a single letter representing the time unit. The time unit may be `s` (seconds), + `m` (minutes), `h` (hours) or `d` (days). For example, 10 minutes would be + specified as `10m`. + + If quotes or backslashes (`\`) are required within quoted values such as + selectors or session criteria then they may be escaped by preceding with `\`. + The convenience method `PTDiffusionEscape` is provided to escape such + characters in a value. + + The expression is validated only by the server and therefore if an invalid + expression is specified it will be reported asynchronously as an error. + + ### Examples + + when time after 1518780068112 + + The topic will be removed when the date and time indicated by the specified + number of milliseconds since the epoch has passed. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" + + The topic will be removed when the specified date and time has passed. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" remove "*alpha/beta//" + + The topic alpha/beta and all topics subordinate to it will be removed when the + specified date and time has passed. + + when subscriptions < 1 for 20m + + The topic will be removed when it has had no subscriptions for a continuous + period of 20 minutes. + + when subscriptions < 2 for 20m after 1h + + The topic will be removed when it has had less than 2 subscriptions for a + continuous period of 20 minutes after one hour has passed since its creation. + + when no updates for 3h + + The topic will be removed when it has had no updates for a continuous period of + 3 hours. + + when no updates for 15m after 1d + + The topic will be removed when it has had no updates for a continuous period of + 15 minutes after one day has passed since its creation. + + when this session closes + + The topic will be removed when the session that created it is closed. + + when no session has '$Principal is "Alice"' + + The topic will be removed when there is no session with the principal 'Alice'. + + when no session has '$Principal is "Alice"' for 10m + + The topic will be removed when there have been no sessions with the principal + 'Alice' for a continuous period of 10 minutes. + + when no session has 'Department is "Accounts"' for 30m after 2h + + The topic will be removed when there have been no sessions from the Accounts + department for a continuous period of 30 minutes after 2 hours have passed + since its creation. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 1 for 30m + + The topic will be removed when the specified date and time has passed and the + topic has had no subscriptions for a continuous period of 30 minutes after that + time. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 2 for 10m after 1h + + The topic will be removed when the specified date and time has passed and the + topic has had less than 2 subscriptions for a continuous period of 10 minutes + after that time plus one hour. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" or subscriptions < 2 for 10m after 1h + + The topic will be removed when the specified date and time has passed or the + topic has had less than 2 subscriptions for a continuous period of 10 minutes + after one hour from its creation. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" and (subscriptions < 2 for 10m after 1h or no updates for 20m) + + The topic will be removed when the specified date and time has passed and + either the topic has had less than 2 subscriptions for a continuous period of + 10 minutes after that time plus one hour or it has had no updates for a + continuous period of 20 minutes. Note that the parentheses are significant here + as without them the topic would be removed if it had had no updates for 20 + minutes regardless of the time and subscriptions clause. + + ### Notes and restrictions on use + + The `after` time periods refer to the period since the topic was created or + restored from persistence store after a server is restarted. They are designed + as a 'grace' period after the topic comes into existence before the related + condition starts to be evaluated. When not specified the conditions start to be + evaluated as soon as the topic is created or restored. + + The server will evaluate conditions on a periodic basis (every few seconds) so + the exact removal time will not be precise for low periodic granularity. + + The meaning of the `for` period in a `no session has` condition is subtly + different from its use in other conditions. It does not guarantee that there + has been no session satisfying the condition at some point between evaluations, + only that when evaluated the given period of time has passed since it was last + evaluated and found to have no matching sessions. + + Subscriptions is the number of subscriptions to a topic, including those that + occur through routing topics. When monitoring across a cluster the + `subscriptions less than` condition is first checked on the server that owns + the topic and if satisfied there then each cluster member is queried to check + if the condition has also been satisfied there. The topic will only be removed + if the total number of subscriptions across the cluster is less than that + specified in the condition. + + Automatic topic removal is supported for a topic that is replicated + across the local cluster, and for a topic with with fanout replicas on + downstream remote servers. A `subscriptions less than` condition will be evaluated + against the total number of subscriptions across the cluster and on all + fanout replicas on downstream remote servers. A `no session has` + condition will consider all sessions hosted across the cluster and all + sessions hosted by downstream remote servers that have a fanout replica + of the topic. The `local` keyword can be used to restrict evaluation to + the local cluster, ignoring fanout replicas. + + @return string representing the key of the topic property that specifies a removal policy for automatic + removal of the topic (and/or other topics). + + @since 6.1 + */ ++(NSString *)removalPropertyKey; + +/** + Key of the topic property that specifies the conflation policy of the + topic. The policy specifies how the server manages queued topic updates. + Conflation is applied individually to each session queue. + + Conflation is the process of merging or discarding topic updates queued + for a session to reduce the server memory footprint and network data. The + server will conflate sessions that have a large number of queued messages + to meet configured queue size targets. The sessions with the largest + queues are typically slow consumers or have been disconnected – both will + benefit from conflation. This property allows conflation behavior to be + tuned on a topic-by-topic basis. + + The supported policies are: +
    +
  • `off` +
  • `conflate` +
  • `unsubscribe` +
  • `always` +
+ + The default policy used when the property is not specified and the + topic type is not time series is `conflate`. The default policy + used when the property is not specified and the topic type is time + series is `off`. + + The policy `off` disables conflation for the topic. This policy + disables all conflation for the topic, so topic updates will never be + merged or discarded. + + The policy `conflate` automatically conflates topic updates when + back pressure is detected by the server. + + The policy `unsubscribe` automatically unsubscribes the topic when + back pressure is detected by the server. The unsubscription is not + persisted to the cluster. If a session fails over to a different server + it will be resubscribed to the topic. + + The policy `always` automatically conflates topic updates as they + are queued for the session. This is an eager policy that ensures only the + latest update is queued for the topic, minimising the server memory and + network bandwidth used by the session. + + The `conflate` and `unsubscribe` policies are applied when + the server detects back pressure for a session. The server configuration + places limits on the data queued for each session. If these limits are + breached, the server will conflate the session queue to attempt to reduce + its size. If the session queue still exceeds the limits after conflation, + the session will be terminated. + + Conflation can be disabled on a session-by-session basis. If conflation is disabled for a + session the policy will not be applied to topic updates queued for the + session but will be for other sessions that have conflation enabled. + + The policies `conflate` and `always` are not supported for + time series topics as they would cause missing events. Attempts to enable + these policies with time series topics will cause the creation of the + topic to fail, reporting that the specification is invalid. + + @return string representing the key of the topic property that describes + the conflation policy of the topic. + + @since 6.1 + */ ++(NSString *)conflationPropertyKey; + +/** + Key of the topic property that allows the creator of a topic to extend + `PTDiffusionPathPermission#readTopic`, `PTDiffusionPathPermission#modifyTopic` + and `PTDiffusionPathPermission#updateTopic` permissions to a specific + principal, in addition to the permissions granted by the authorisation rules in + the security store. + + A session that has authenticated using the principal can update and remove the + topic, so the principal can be considered the topic owner. To fetch or + subscribe to the topic, the principal must also be granted the `SELECT_TOPIC` + permission by the security store rules. + + This may be used in the following cases: + + 1. A session creates a topic and makes its own principal the owner. + 2. A session creates a topic and makes another principal the owner. + + The format of the property value is: + + $Principal is "" + + where *name* is the name of the principal. Single quotes may be used instead of + double quotes and special characters must be escaped. The convenience method + `PTDiffusionEscape` is provided to escape such characters in a value. + + The purpose of this property is to allow a client to create topics on behalf of + other users. This can be used in conjunction with #removalPropertyKey so that + such topics are removed when there are no longer any sessions for the named + principal. + + For example: + + PTDiffusionTopicSpecification *const specification = + [[PTDiffusionTopicSpecification alloc] initWithType:topicType + properties:@ { + [PTDiffusionTopicSpecification ownerPropertyKey] : + @"$Principal is 'myPrincipal'", + [PTDiffusionTopicSpecification removalPropertyKey] : + @"when no session has '$Principal is \"myPrincipal\"' for 5s" + }]; + + @return string representing the key of the topic property that allows to + extend permissions to a specific principal + + @since 6.1 + */ ++(NSString *)ownerPropertyKey; + +/** + Key of the topic property that allows the compression policy to be set + on a per-topic basis. + + Compression reduces the bandwidth required to broadcast topic updates to + subscribed sessions, at the cost of increased server CPU. + + Changes to a topic's value are published to each subscribed session as a + sequence of topic messages. A topic message can carry the latest value or + the difference between the latest value and the previous value (a delta). + The compression policy determines if and how published topic messages + are compressed. Topic messages are not exposed through the client API; + the client library handles decompression and decodes deltas + automatically, passing reconstructed values to the application. + + The compression policy for a topic is specified by setting this property + to one of several values: + + - `off` + - `low` + - `medium` + - `high` + + The policies are listed in the order of increasing compression and + increasing CPU cost. `off` disables compression completely for the + topic and requires no additional CPU; `high` compresses the topic + messages to the smallest number of bytes, but has the highest CPU cost. + Generally some compression is beneficial, so the default value for this + property is `low`. + + Prior to version 6.4, only two values were allowed: `true` + (equivalent to `medium`, and the previous default policy) and + `false` (equivalent to `off`). These values are still + supported. + + This property is only one factor that determines whether a topic message + will be compressed. Other factors include: + + - Compression must be enabled in the server configuration. + + - The client library must support the server's compression + scheme. In this release, the server supports zlib + compression, and also allows compression to be disabled on a + per-connector basis. From 6.4, all client libraries are + capable of zlib compression. A JavaScript client may or may + not support zlib compression, depending on whether the zlib + library can be loaded. The zlib library is packaged + separately to reduce the download size of the core library. + + @return string representing the key of of the topic property that allows + the compression policy to be set on a per-topic basis. + + @since 6.2 + */ ++(NSString *)compressionPropertyKey; + +/** + Key of the topic property that specifies the topic delivery priority. + + The supported delivery priorities are: + - **low** + - **default** + - **high** + + The delivery priority affects the order of topic updates sent to a + subscribed client session. When there are multiple topic updates for + topics with different priorities in a session's outbound queue, updates + for "high" priority topics will be delivered first, followed by + updates for "default" priority topics, followed by updates for + "low" priority topics. Topic subscription and unsubscription + notifications are also delivered according to the topic delivery + priority. + + Using different delivery priorities is most beneficial when there is a + large backlog of queued updates to deliver to a client session. On + lightly loaded systems, updates typically remain in the outbound queue + for a few milliseconds and so there is a lower chance of topic updates + being reordered based on their priority. The backlog will be larger if + the topic update rate is higher; the server or the client are more + heavily loaded; the client session becomes temporarily disconnected; or + if there is poor network connectivity between the server and the client. + + Messages from the server to the client that are not topic updates, for + example ping requests and responses, are queued with the + "default" delivery priority. + + @return string representing the key of the topic property that specifies + the topic delivery priority. + + @since 6.4 + */ ++(NSString *)priorityPropertyKey; + +/** + Constant string representing the value to be used for boolean properties to + specify `true`. + + @return string representing the boolean value of `true`. + + @since 5.9 + */ ++(NSString *)truePropertyValue; + +/** + Constant string representing the value to be used for boolean properties to + specify `false`. + + @return string representing the boolean value of `false`. + + @since 6.1 + */ ++(NSString *)falsePropertyValue; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h new file mode 100644 index 0000000..ab70bae --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h @@ -0,0 +1,37 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A reference to a handler registered for a particular topic path. + + A topic tree registration is provided once a handler with a server-side + presence has been registered. + + @since 5.7 + */ +@interface PTDiffusionTopicTreeRegistration : PTDiffusionRegistration + +/** + The path registered. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* path; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h new file mode 100644 index 0000000..05da049 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTopicTreeRegistration; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Common protocol for delegates that establish a server side control presence for the + client session at a particular branch of the topic tree. + + @since 5.7 + */ +@protocol PTDiffusionTopicTreeRegistrationDelegate + +/** + Called if the handler is closed. + + No further calls will be made to this handler. + + @param registration The topic tree registration for which this delegate applies. + + @since 5.7 + */ +-(void)diffusionTopicTreeRegistrationDidClose:(PTDiffusionTopicTreeRegistration *)registration; + +/** + Called in the event of a contextual error relating to this handler. + + No further calls will be made to this handler. + + @param registration The topic tree registration for which this delegate applies. + + @param error The failure reason. + + @since 5.7 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didFailWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h new file mode 100644 index 0000000..a5352ea --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h @@ -0,0 +1,234 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +/** + @file PTDiffusionTopicType.h + + The topic type determines the type of the data values a topic publishes to + subscribers. + + ### Source Topics + + Most topics are source topics. The characteristics of each type of source + topic are summarized in the following table. + + | Topic type | State | Data type | + | -------------------------------- | ----------------------------- | ------------------------------------------------- | + | #PTDiffusionTopicType_String | Single scalar value. | String. | + | #PTDiffusionTopicType_Int64 | Single scalar value. | 64-bit integer. | + | #PTDiffusionTopicType_Double | Single scalar value. | Double precision floating point number. | + | #PTDiffusionTopicType_Binary | Single scalar value. | Arbitrary binary data. | + | #PTDiffusionTopicType_RecordV2 | Single composite value. | #PTDiffusionRecordV2 – Diffusion-specific data type. A list of records, each composed of field values, with an optional schema. | + | #PTDiffusionTopicType_JSON | Single composite value. | #PTDiffusionJSON, backed by CBOR-format binary. | + | #PTDiffusionTopicType_TimeSeries | Append-only log of events. | #PTDiffusionTimeSeriesEvent containing a value of a \link #PTDiffusionDataTypes well-known data type\endlink. | + + + ###Routing Topics (deprecated) + + A PTDiffusionTopicType_Routing topic can have a different source topic for each + subscription. + + Routing topics republish values from source topics. The data type is + inherited from the source topic. + + Routing topics are deprecated in favor of {@link PTDiffusionSessionTreesFeature Session Trees}. + + @see PTDiffusionTopicSpecification + + @since 5.6 + */ +typedef NS_ENUM(NSUInteger, PTDiffusionTopicType) { + /** + Routing Topic. + + A topic that can reference different source topics for different sessions. + + Each subscription to a routing topic is routed to a source topic. Updates + to the source topic are routed back to the subscriber and appear to come + from the routing topic. + + The result is that a session may subscribe to a topic which is in reality + supported by another topic and the mapping of the routing topic to the + actual topic can be different for each session. + + As an example, you may wish for all sessions to simply subscribe to a + topic called "Prices" but depending upon the client type the actual topic + could differ (Prices/Discount, Prices/Standard etc). + + An instance of this topic may map any number of sessions to any number of + different source topics. + + From the point of view of a session subscribing to such a topic, a + routing topic appears to be a normal topic but it has no state of its own + and cannot be updated. + + The mapping of sessions to source topics is performed by a control client + session using the Subscription Control feature. When a session subscribes + to the routing topic the control client is requested to provide the topic + that the client is to be subscribed to. If there is no control client + available to handle subscriptions at the time a session subscribed, the + session will not be subscribed to the topic. + + Alternatively, the routing can be determined by a user-written Java class + (deployed on the server) which will be invoked to define the mapping of + the topic to another data topic when a session subscribes. + + When a source topic is removed that is mapped to from a routing topic then + any session that were mapped to that source topic will be unsubscribed from + the routing topic. + + @since 5.7 + + @deprecated since 6.7 Routing Topics are deprecated. The more powerful + {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. + */ + PTDiffusionTopicType_Routing __deprecated_enum_msg("Use PTDiffusionSessionTreesFeature instead") = 12, + + /** + Topic that stores and publishes binary values. Based on the + PTDiffusionBinary data type. + + Supports delta-streams. + + @since 5.7 + */ + PTDiffusionTopicType_Binary = 13, + + /** + Topic that stores and publishes JSON (JavaScript Object Notation) values. + Based on the PTDiffusionJSON data type. + + Supports delta-streams. + + @since 5.7 + */ + PTDiffusionTopicType_JSON = 14, + + /** + Topic that stores and publishes IEEE 754 double-precision floating point + numbers. Based on the double data type. + + Supports `nil` values. + + The topic does not support delta-streams — only complete values are + transmitted. + + @since 6.0 + */ + PTDiffusionTopicType_Double = 15, + + /** + Topic that stores and publishes 64-bit integer values. Based on the int64 + data type. + + Supports `nil` values. + + The topic does not support delta-streams — only complete values are + transmitted. + + @since 6.0 + */ + PTDiffusionTopicType_Int64 = 16, + + /** + Topic that stores and publishes string values. Based on the string data + type. + + Supports `nil` values. + + Supports delta-streams. + + @since 6.0 + */ + PTDiffusionTopicType_String = 17, + + /** + A time series is a sequence of events. Each event contains a value and has + server-assigned metadata comprised of a sequence number, timestamp, and + author. + + A time series topic allows sessions to access a time series that is + maintained by the server. A time series topic has an associated event data + type that determines the type of value associated with each event. + + ### Retained range + + The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property + configures the range of historic events retained by a time series topic. + If the property is not specified, a time series topic will retain the ten + most recent events. + + ### Subscription range + + The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property + configures a time series topic to send a range of historic events from the + end of the time series to new subscribers. This is a convenient way to + synchronize new subscribers without requiring the use of a range query. + + By default, new subscribers will be sent the latest event if delta streams + are enabled and no events if delta streams are disabled. + + ### Mandatory properties + + The [PTDiffusionTopicSpecification timeSeriesEventValueType] property must + be provided when creating a time series topic. + + @since 6.0 + */ + PTDiffusionTopicType_TimeSeries = 18, + + /** + Topic that stores and publishes data in the form of records and fields. + + Supports delta-streams. + + @since 6.0 + */ + PTDiffusionTopicType_RecordV2 = 19, + + /** + A topic type that is unsupported by the session. + + @since 6.1 + */ + PTDiffusionTopicType_Unknown = 20, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a localized string representation of the given topic type. + + @param topicType The topic type for which a description is to be returned. + + @return localized string representation of the given topic type. + + @since 5.7 + */ +NSString* PTDiffusionTopicTypeToString(PTDiffusionTopicType topicType); + +/** + Returns the name of this topic type constant, exactly as declared in its + enum declaration in the Diffusion API for Java. + + @param topicType The topic type for which the name is to be returned. + + @return name of given topic type constant, exactly as declared in its + enum declaration. + + @since 5.9 + */ +NSString* PTDiffusionTopicTypeToName(PTDiffusionTopicType topicType); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h new file mode 100644 index 0000000..20b9b86 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h @@ -0,0 +1,108 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +/** + @file PTDiffusionTopicUnsubscriptionReason.h + + The reason that an unsubscription occurred. + + @since 5.6 + */ +typedef NS_ENUM(NSUInteger, PTDiffusionTopicUnsubscriptionReason) { + /** + Unsubscribed by the subscribing client. + + @since 5.6 + */ + PTDiffusionTopicUnsubscriptionReason_Requested = 0, + + /** + The unsubscription was requested either by another client or by the server. + + @since 5.6 + */ + PTDiffusionTopicUnsubscriptionReason_Control = 1, + + /** + The unsubscription occurred because the topic was removed. + + @since 5.6 + */ + PTDiffusionTopicUnsubscriptionReason_Removal = 2, + + /** + The unsubscription occurred because the session is no longer authorized + to access the topic. + + @since 5.9 + */ + PTDiffusionTopicUnsubscriptionReason_Authorization = 3, + + /** + A reason that is unsupported by the session. + + @since 6.1 + */ + PTDiffusionTopicUnsubscriptionReason_Unknown = 4, + + /** + The server has a significant backlog of messages f`or the session, and + the topic specification has the + {@link PTDiffusionTopicSpecification#conflationPropertyKey + conflation topic property} set to "unsubscribe". The session can + resubscribe to the topic. The unsubscription is not persisted to the + cluster. If the session fails over to a different server it will be + resubscribed to the topic. + */ + PTDiffusionTopicUnsubscriptionReason_BackPressure = 5, + + /** + The unsubscription occurred because branch mapping rules changed. + + @since 6.7 + @see PTDiffusionSessionTrees + */ + PTDiffusionTopicUnsubscriptionReason_BranchMappings = 6, + + /** + The server has re-subscribed this session to the topic. Existing streams + are unsubscribed because the topic type and other attributes may have changed. + + This can happen if a set of servers is configured to use session replication, + and a session connected to one server reconnects ("fails over") to a + different server. + + @since 5.9 + */ + PTDiffusionTopicUnsubscriptionReason_SubscriptionRefresh = 0xfffffff0, + + /** + A fallback stream has been unsubscribed due to the addition of a stream + that selects the topic. + + @since 5.9 + */ + PTDiffusionTopicUnsubscriptionReason_StreamChange = 0xfffffff1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a string representation of a topic unsubscription reason. + + @since 5.6 + */ +NSString *PTDiffusionTopicUnsubscriptionReasonToString(PTDiffusionTopicUnsubscriptionReason reason); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h new file mode 100644 index 0000000..8115aa6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h @@ -0,0 +1,216 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Topic Update feature provides a client session with the ability to + update topics. + + Topics can be set to new values using stateless set operations or by using an + update stream. Both mechanisms ensure that new values are applied safely to + appropriate topics. + + ### Update streams + + An update stream is created for a specific topic. An update stream builder + can be obtained using the PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder + method. The type of the topic must match the type of values passed to the + update stream. An update stream can be used to send any number of updates. + It sends a sequence of updates for a specific topic to the server. If supported + by the data type, updates will be sent to the server as a stream of binary deltas. + + Update streams have additional ways of failing compared to stateless set + operations but when used repeatedly have lower overheads. This is because + update streams maintain a small amount of state that reduces the overhead of + operations but can become invalid for example, if the topic is deleted, or + some other session updates the topic value. + + By default, update streams use a form of optimistic locking. An update stream + can update its topic incrementally as long as nothing else updates the topic. + If the topic is updated independently (for example, by another session, or by + the current session via set or a different update stream), then the next update + performed by the update stream will complete with an 'invalid update stream' + error. + + Applications can choose to use collaborative locking to coordinate exclusive + access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and + use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. + The application is responsible for designing a locking scheme which determines + which lock is required to access a particular topic, and for ensuring that all + parts of the application that update the topic follow this scheme. Lock + constraints and an application locking scheme can also ensure a sequence of set + operations has exclusive access to the topic. + + ### Removing values + + When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or + PTDiffusionTopicType_Double topic is set to `nil`, the topic will be updated to + have no value. If a previous value was present subscribers will receive a + notification that the new value is `nil`. New subscribers will not receive a + value notification. + + ### Adding topics + + When setting a value using either stateless operations or update streams it is + possible to add a topic if one is not present. This is done using the 'and and + set' methods or providing a topic specification when creating the update + stream. If a topic exists these methods will update the existing topic. + + ### Time series topics + + Time series topics have a specific update protocol and are not supported by + this feature. Use PTDiffusionTimeSeriesFeature to update time series topics. + + ### Access control + + To update a topic a session needs `UPDATE_TOPIC` permission for the topic path. + To create a topic a session needs `MODIFY_TOPIC` permission for the topic path. + Requests that combine adding a topic and setting the value, such as those sent + by the 'add and set' methods, require both permissions. + + ### Accessing the feature + + The Topic Update feature for a session can be obtained from the session's + `topicUpdate` property. + + This feature is also extended by PTDiffusionTopicsFeature. This means it is + possible to use the methods described here through that feature. + + @see PTDiffusionSession + + @since 6.3 + */ + +@interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature + + +/** + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the type of the created update stream. + + @since 6.9 + */ +- (PTDiffusionUpdateStreamBuilder *)newUpdateStreamBuilder; + + +/** + Applies a JSON Patch to a JSON topic. + +

+ The `patch` argument should be formatted according to the JSON + Patch standard (RFC 6902). + +

+ Patches are a sequence of JSON Patch operations contained in an array. + They are applied as an atomic update to the previous value if the + resulting update is successfully calculated. The following patch will + check the value at a specific key and update if the expected value is + correct: +

+ + `[{"op":"test", "path":"/price", "value" : 22}, + {"op":"add", "path":"/price", "value": 23}]` + +

+ The available operations are: + +

    +
  • + Add: `{"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ]}` +
  • + Remove: `{"op": "remove", "path": "/a/b/c"}` +
  • + Replace: `{"op": "replace", "path": "/a/b/c", "value": 43}` +
  • + Move: `{"op": "move", "from": "/a/b/c", "path": "/a/b/d"}` +
  • + Copy: `{"op": "copy", "from": "/a/b/c", "path": "/a/b/e"}` +
  • + Test: `{"op": "test", "path": "/a/b/c", "value": "foo"}` +
+ +

+ The test operation checks that the CBOR representation of the value of a + topic is identical to the value provided in the patch after converting it + to CBOR. If the value is represented differently as CBOR, commonly due to + different key ordering, then the patch will return the index of the + failed operation . e.g the values + `{"foo": "bar", "count": 43}` and + `{"count": 43, "foo": "bar"}` are unequal despite semantic equality + due to the differences in a byte for byte comparison. + + @param jsonPatch the JSON Patch + + @param path the path of the topic to patch + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @see + RFC 6902: JavaScript Object Notation (JSON) Patch + + @since 6.4 + + */ +-(void)applyJsonPatch:(NSString *)jsonPatch + toPath:(NSString *)path + completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; + + +/** + + Applies a JSON Patch to a JSON topic. + +

+ Takes a constraint that must be satisfied for the update to be + applied. +

+ In other respects this method works in the same way as + applyJsonPatch:toPath:completionHandler: + + + @param jsonPatch the JSON Patch + + @param path the path of the topic to patch + + @param constraint the constraint that must be satisfied for the patch to + be applied + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @see + RFC 6902: JavaScript Object Notation (JSON) Patch + + @since 6.4 +*/ +-(void)applyJsonPatch:(NSString *)jsonPatch + toPath:(NSString *)path + withConstraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h new file mode 100644 index 0000000..601f0e4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h @@ -0,0 +1,64 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Description of a topic view that has been created. + + @see PTDiffusionTopicViewsFeature + + @since 6.3 + */ +@interface PTDiffusionTopicView : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The name of the topic view. If the name is empty, the operation will fail. + + @since 6.3 + */ +@property(nonatomic, readonly) NSString * name; + +/** + The specification of the topic view. + + @since 6.3 + */ +@property(nonatomic, readonly) NSString * specification; + +/** + The roles used by the topic view when evaluating permissions. + + @since 6.3 + */ +@property(nonatomic, readonly) NSArray * roles; + +/** + Compares the receiver to the given topic view. + + @param topicView The topic view object with which to compare the receiver. + + @return `YES` if it matches the receiver, otherwise `NO`. + + @since 6.3 + */ +-(BOOL)isEqualToTopicView:(nullable PTDiffusionTopicView *)topicView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h new file mode 100644 index 0000000..eda82c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h @@ -0,0 +1,1468 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2023 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicView; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client session to manage topic views. + + A topic view maps one part of a server's topic tree to another. It + dynamically creates a set of reference topics from a set of + source topics, based on a declarative topic view + specification. The capabilities of topic views range from simple + mirroring of topics within the topic tree to advanced capabilities including + publication of partial values, expanding a single topic value into many + topics, changing topic values, inserting values from other topics, throttling + the rate of publication, and applying a fixed delay to the publication. + + A topic view can also map topics from another server (in a different + cluster). This capability is referred to as 'remote topic views'. The view + can specify the server that the source topics are hosted on in terms + of a remote server (see {@link PTDiffusionRemoteServersFeature} for details of how to + create and maintain remote servers). + + Each reference topic has a single source topic and has the same topic type as + its source topic. Reference topics are read-only (they cannot be updated), + nor can they be created or removed directly. Otherwise, they behave just like + standard topics. A client session can subscribe to a reference topic, and can + fetch the reference topic's current value if it has one. + + The source topics of a topic view are defined by a topic selector. One or + more reference topics are created for each source topic, according to the + topic view. If a source topic is removed, reference topics that are derived + from it will automatically be removed. If a topic is added that matches the + source topic selector of a topic view, corresponding reference topics will be + created. Removing a topic view will remove all of its reference topics. + + + ## Topic view specifications + + The following is a simple topic view specification that mirrors all topics + below the path `a` to reference topics below the path `b`. + +

+ map ?a// to b/
+ 
+ + A topic view with this specification will map a source topic at the path + `a/x/y/z` to a reference topic at the path `b/x/y/z`. + The specification is simple, so the reference topic will exactly mirror the + source topic. + + A topic view specification comprises three main parts: + +
    +
  • The mapping part which specifies the source topics to map from + and the mappings to target reference topics. +
  • Optional transformations which transform the topic value in some + way. +
  • Optional options which specify other changes that the view may + apply. +
+ + Mapping comprises: +
    +
  • The source topic clause identifying the source topics that the + view can apply to. +
  • The optional from clause which may identify a remote server that + hosts the source topics. +
  • The path mapping clause which determines how reference topic + paths are derived from the source topic paths, and when expanding to more + than one reference topic, from where the values are obtained. +
+ + Transformations can be: +
    +
  • patch transformation(s) specifying that a JSON patch is applied + to the reference topic value. +
  • process transformations that allow conditional processing and/or + calculations to be applied to the reference topic value. +
  • insert transformation(s) specifying that values from other + topics are inserted into the reference topic value. +
+ + Options can be: +
    +
  • The topic property mapping clause determines how reference topic + properties are derived from source topic properties. +
  • The value mapping clause determines how reference topic values + are derived from source topic or expanded values. +
  • The throttle clause constrains the rate at which each reference + topic is updated when its source topic is updated. +
  • The delay by clause causes a change to a view's source topic to + be delayed by a fixed time before it is reflected in reference topics. +
  • The separator clause can define a replacement path separator for + values extracted using the scalar or expand directives. +
  • The type clause can specify that the reference topic that is + created is of a different {@link PTDiffusionTopicType} from the selected source topic. +
+ + ### Mapping + #### Source topic clause + + The source topic clause begins with the `map` keyword and is followed + by a topic selector. These topic selectors follow the same parsing rules as + other topic selectors. + + When evaluating a topic view, all topics in the topic tree that match the + source topic selector are considered (excluding + {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing Routing} topics). + However, if a view specification uses some feature that can + only be applied to JSON topics then only JSON topics will be selected. + + Reference topics are valid source topics. In particular, chaining of topic + views is supported; that is, a reference topic created by one topic view can + be the source topic of another topic view. Additionally, a reference topic + can be the source topic of a routing topic subscription. + + + #### From clause + + The `from` clause optionally follows the source topic clause. It begins with + the `from` keyword and is followed by a remote server name. The name + refers to a remote server created using the {@link PTDiffusionRemoteServersFeature} + feature. + + The presence of the clause indicates that the source topics will be selected + from the specified server and not from the local server. + + Further details regarding the processing of remote topic views are given + below. + + + #### Path mapping clause + + The paths of reference topics are derived from the source topic according to + the path mapping clause. The path mapping allows the source topic path and + the value of the source topic to determine the path of the reference topic. + In addition the path mapping can include expand directives which + allow objects and arrays in JSON source topic values to be expanded to + produce many reference topics. + + A path mapping clause begins with the `to` keyword and is followed by a + path mapping template. A path mapping template is a topic path with embedded + directives. Directives are evaluated when creating the topic + reference and substituted into the topic path. Directives are delimited by + angle brackets (`<`, `>`) and consist of the name of the + directive and a list of parameters. The parameter list is comma-separated and + surrounded by parentheses (`(`, `)`). + + The following path mapping directives are supported: + + #### Source path directives + + Source path directives extract a portion of the source path and are + parameterized by the index of the start part of the source path and the + number of parts to include. The number of parts parameter is optional – if it + is missing, the selection extends to the end of the source path. The syntax + is start, number)>, or + start)> when the number of parts parameter + is omitted. + + For example, given the source path `a/b/c/d`, the source path directive + `` is mapped to the reference topic path `b/c`, and + the source path directive `` is mapped to the reference topic + path `c/d`. + + #### Source value ("scalar") directives + + Source value directives are only applied to + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} + source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} + source topics with a JSON event type; if the path + mapping contains a source value directive, topics with other topic types matching + the source topic selector are ignored. Source value directives use the keyword + `scalar` and are parameterized by a single + JSON pointer that extracts + a scalar value from the source (or current) value. A scalar value is a + string, a number, `true`, `false`, or `null`, that is, + anything other than an array or an object. If the JSON pointer does not refer + to a scalar value in the source (or current) value, no reference topic will + be created. This includes cases where the JSON pointer refers to an array or + an object), or when no part of the source value is selected. + + Deriving the reference topic paths from part of the source topic value + effectively creates a secondary index on the value. For source value + directives to work efficiently, the selected scalar values should be + relatively stable. If an update to the source topic changes the selected + scalar value, the corresponding reference topic will be removed and a new + reference topic will be created. + + For example, given a source value of + +
+ {
+     "account" : "1234",
+     "balance" : { "amount" : 12.57, "currency" : "USD" }
+ }
+ 
+ + and the source value directive + `currency/`, the + reference topic path will be `currency/USD/account/1234`. + + If the extracted value is a string, it is copied literally to the reference + topic path. A value that contains path separators (`/`) will create a + reference topic path with more levels than the path mapping template. Use the + separator directive to replace path separator with an alternative string. + + An extracted value of `null` will be copied to the reference topic path + as the string `"null"`. + + #### Expand value directives + + Expand value directives are only applied to + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} + source topics; if the path mapping contains an expand value directive, + non-JSON topics matching the source topic selector are ignored. + + Expand value directives use the keyword `expand` and are parameterized + by one or two JSON + pointers. + + The first pointer indicates the element within the value to be expanded, and + if omitted, the value is expanded from the root. Expansion of a source topic + indicates that every direct child of the element pointed to by the expand + pointer will be used to create a new reference topic (or provide input to + later expand or scalar directives). For example `` would + expand every child item in the source value and `` + would expand every child of the `account` value in the source value. + The specified value could be an object, an array or even a scalar value, but + a scalar value would expand to only a single new value. + + The optional second parameter of the expand directive specifies a pointer to + a scalar value within the expanded value which will be used to derive the + path fragment of the reference topic path. If the second pointer is not + specified or no scalar value is found for the pointer, the path fragment is + taken from the key (if the child value is an object) or the index (if the + child value is an array). Scalar child values will expand to a reference + topic but will not add anything to the generated path. For example + `expand(,/name)>` would expand from the root of the source value and + each child value path fragment would be obtained from the scalar value with + the key `name`. + + So if a source topic had a value of + +
+ {
+ "values": [1, 5, 7]
+ }
+ 
+ + a path mapping of `value` would expand the value to + the following reference topics:- +

+ path `value0` with a value of `1`
+ path `value1` with a value of `5`
+ path `value2` with a value of `7`
+

+ Expand directives can be nested (i.e. there can be more than one expand + directive in a path mapping). In this case a second expand directive will use + the value from the previous expand as its source (root) value and not the + value of the source topic. This also applies to scalar directives that follow + an expand directive. +

+ If expansion causes more than one mapping to the same topic path, only the + first encountered will be created and updated. +

+ Expanding source topic values effectively creates secondary indices on the + value. For expanded value directives to work efficiently, the value selected + for expansion should be relatively stable in terms of the children it + contains. If an update to the source topic changes the children of the + expanded value, then corresponding reference topics will be removed and + created. Updates should generally be limited to changing values within the + expanded values. + + ### Transformations + + Transformations are specified after the mapping and before any options. + Transformations can only be applied to + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} topics. + + Transformations are applied to the value extracted from the source topic in + the order specified. There can be any number of transformations interspersed + with one another and the value from one will be that which is input to the + next. The only restrictions is that all insert transformations must + occur at the end, after any others. + + A transformation is applied to the current value within a view processing + chain, so if a transformation occurs after an expand then it will be applied + to each expanded value. + + #### Process transformations + + Process transformations may be used to apply conditional processing to a + value (optionally determining whether a reference topic is created) and/or + change the value in some way (for example, by applying some calculation to a + field within the value). + + The format of a process transformation is: +

+ process {statement}
+ 
+ + Where the statement can be: +
    +
  • Operations(s).
    + One or more operations separated by ';'. +
  • A conditional statement.
    + Comprising one or more conditions with operations to perform if they are + satisfied. +
+ + For example, the following topic view specification could be used to write a + field into the value of the reference topic: + +
+ map ?a// to b/ process {set(/Name, 'John')};
+ 
+ + The following example shows a simple conditional statement which would only + generate reference topics if the value of field /Price was + greater than 50: + +
+ map ?a// to b/ process {if '/Price gt 50' continue};
+ 
+ + And the following shows a more complex statement which would set a field + according to the value of the input field /Price: + +
+ map ?a// to b/ process {if '/Price lt 50' set(/Tier, 1) elseif '/Price gt 50' set(/Tier, 2)};
+ 
+ +
+
+ Process operations +
+ +
+ The following operations are supported: + + + + + + + + + + + + + + + + + + + + + + +
+ Operation + + Description +
+ set(pointer, value) + + Sets the field indicated by the JSON pointer to an absolute value. + If the field does not exist it will be created. + The value can be an integer (e.g. 123), a String (e.g. 'XYZ'), + or a boolean (e.g. true or false). + + For example: + +
set(/Name, 'John')
+ + If a hierarchic pointer is specified, the parent object or array must exist. +
+ set(pointer, calc calculation) + + Sets the field indicated by the JSON pointer to a value which is the + result of the specified calculation. If the field does not exist it + will be created. The calculation can include fields within the input value. + The calculation is specified as a quoted string. See below for a detailed + description of calculations. + + For example: + +
set(/DoubleValue, calc '/Value * 2')
+ + If a hierarchic pointer is specified, the parent object or array must exist. +
+ remove(pointer) + + Removes the JSON item at the specified pointer. + Unlike JSON patch, if the item does not exist the operation does not fail. +
+ continue + + This is a special operation that indicates that the topic view evaluation + should continue with the value as it is. This is only for use with conditional + statements as the default behaviour of a conditional statement is not to + proceed if no condition is satisfied. +
+ + Operations can be chained by separating them with a ';' as shown in the example below: + +
+         set(/Amount, calc '/Value * /Number'); remove(/Value); remove(/Number)
+         
+ + In this case the operations are all performed on the original value, creating + a chain of deltas which are only applied to the original value at the end. If + the 'set' operation fails no reference topic would be generated, however, + processing will continue if the fields specified in the 'remove's are not + present. +
+ +
+ Process calculations +
+ +
+ A calculation may be specified as the value of a set operation. A + calculation is a simple arithmetic calculation upon integer fields. If + applied to a non integer field the evaluation will not proceed. Floating + point calculations are not supported. + + Arithmetic operators supported are `+`, `-`, `*` and `/`. + + Examples of calculations are: + +
+         set(/Value, calc '/Value * 2')
+         set(/Result, calc '/Value / 2')
+         set(/Bonus, calc '/Salary + 1000')
+         set(/Bonus, calc '/Salary + 1000 + /Age * 10')
+         
+ + Standard operator precedence is applied, so in the last example above we have + `(/Salary + 1000 + (/Age * 10))` not `((/Salary + 1000 + /Age) * 10)`. + Brackets may be used to override this. +
+ +
+ Process conditional statements +
+ +
+ A conditional statement is made up of an if clause, optionally + followed by one or more elseif clauses and an optional final else + clause. + + The if clause takes the form: + +
+         if 
+         
+ + Where the condition is a quoted string as described in detail below + and the operation(s) is as described previously. If the condition is + satisfied, the operations are applied to the value and the process is complete. + If the condition is not satisfied, processing moves on to any + elseif or else clauses that follow, but if there are none, the + topic view evaluation does not proceed and no reference topic is created. + + An elseif (else if) clause takes the form: + +
+            elseif condition operation(s)
+         
+ + If the condition is satisfied, the operations are applied to the value and + the process is complete. If the condition is not satisfied, processing moves + on to any elseif or else clauses that follow, but if there are + none, the topic view evaluation does not proceed and no reference topic is + created. Note that elseif cab be abbreviated to elsf. + + An else clause takes the form: + +
+            else operation(s)
+         
+ + And will only be reached if no previous if or elseif conditions + were satisfied. If reached then the operations are applied to the value and + the topic view evaluation proceeds. The continue operation may be used + to proceed with an unchanged value. +
+ +
+ Process conditions +
+ +
+ A condition is of the form: + +
+         pointer operator constant
+         
+ + Where pointer is a JSON pointer, operator is a relational + operator and constant is a string, integer, or a boolean value. + + For example: + +
+         /Age > 40
+         /Name = 'Bill'
+         /Manager eq true
+         
+ + Operators allowed are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperatorVariantDescriptionSupported JSON types
=eqEqualsAll
>gtGreater thanInteger only
<ltLess thanInteger only
!=neNot equalsAll
>=geGreater than or equalInteger only
<=leLess than or equalInteger only
+ + Compound conditions are supported by means of boolean operators: + `|` or `or` + `&` or `and` + + For example: + +
+         /Age = 50 ot /Age > 80
+         /Age gt 50 & /Department eq 'Accounts'
+         
+ + Normal boolean precedence applies but brackets can be used to control + precedence. For example: + +
+         (/Age > 50 or /Department eq 'Accounts`) and /Band > 3
+         
+ + Boolean 'not' is also allowed: + +
+         not (/Age < 65 or Retired eq false)
+         
+
+
+ + #### Patch Transformations + + Patch transformations indicate that a JSON patch is to applied to the + value. + + The format of a patch clause is: + +
+ patch 'patch string'
+ 
+ + The patch string should be formatted according to the JSON Patch standard + (see RFC 6902: JavaScript + Object Notation (JSON) Patch). + + Patches are a sequence of JSON Patch operations contained in an array. They + are applied as an atomic update to the previous value if the resulting update + is successfully calculated. The following patch will check the value at a + specific key and update if the expected value is correct: + +
+ [{"op": "test", "path": "/price", "value": 22},
+  {"op": "add", "path": "/price", "value": 23}]
+ 
+ + The available operations are: +
    +
  • Add: {"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } +
  • Remove: {"op": "remove", "path": "/a/b/c" } +
  • Replace: {"op": "replace", "path": "/a/b/c", "value": 43 } +
  • Move: {"op": "move", "from": "/a/b/c", "path": "/a/b/d" } +
  • Copy: {"op": "copy", "from": "/a/b/c", "path": "/a/b/e" } +
  • Test: {"op": "test", "path": "/a/b/c", "value": "foo" } +
+ + The test operation checks that the CBOR representation of the value of a + topic is identical to the value provided in the patch after converting it to + CBOR. If the value is represented differently as CBOR, commonly due to + different key ordering, then the patch will return the index of the failed + operation. e.g the values {"foo": "bar", "count": 43} and + {"count": 43, "foo": "bar"} are unequal despite semantic equality + due to the differences in a byte for byte comparison. + + The following patch clause would add the 'price' field and remove the 'name' + field from an input JSON object. + +
+ patch '[{"op": "add", "path": "/price", "value": 22},
+         {"op": "remove", "path": "/name"}]'
+ 
+ + Patches can only be applied to JSON arrays or objects and if they fail to + apply, no resulting reference topic will be created by the view. If an update + patch fails, any previously created reference topic would be removed. + + + #### Insert transformations + + Insert transformations are used to insert a value from another topic into the + current value. + + The name of the topic to insert from can be specified in a similar way to the + path mapping in that constants, path directives, and scalar directives (but + not expand directives) may be used. + + The value from the insertion topic (if found) is inserted into the 'current' + value at a specified key position. The current value may be the source topic + value, the value output from expand directives (in which case the insertion + applies to each value), or the value from a previous transformation. + Insertion topics may be type {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_String String}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 Int64}, + or {@link PTDiffusionTopicType#PTDiffusionTopicType_Double Double}. + + If, when evaluating a topic view, the insertion topic is not found (or the + specified key within it is not found), or it is of an unsupported topic type, + an optional default value may be inserted, but if no default is specified + then no insertion takes place and the value is passed to the derived + reference topic unchanged. + + The values of the insertion topics are only taken at the point when the + source topic is evaluated against the topic view (i.e. when the source topic + is updated). Changes to the value of the insertion topic that occur in the + interim are not applied to the derived reference topics. + + The format of an insert transformation is + +
+ insert path [key fromKey] at insertionKey
+ [default defaultValue]
+ 
+ + The path is specified in exactly the same way as for the path mapping + clause, except it may not contain expand directives. path directives + operate on the path of the source topic, whereas scalar directives + operate on the 'current' value as defined previously. + + key is optional and can specify a fromKey which is a JSON + pointer indicating the data within the insertion topic that is to be + inserted. If no key is specified then the whole of the insertion topic value + is inserted. + + at specifies the insertionKey which is a JSON pointer + indicating where to insert the insertion topic value. If a value already + exists at the specified key then it is replaced otherwise it is inserted. + Insertion can only occur if the parent of the key exists in the value and is + of a compatible type. Array pointers may only be used to replace existing + entries or append one greater than the last entry. The special pointer value + /- may be used to append to the end of an existing array. + + default is optional and may be used to specify a string + defaultValue to be inserted if the insertion topic does not exist, it + is of an unsupported topic type, or the specified key within it could not be + found. + + The following insert transformation would cause the whole value of the topic + named AnyTopic to be inserted into the current value at key /T, assuming that + the current value is an object. + +
+ insert AnyTopic at /T
+ 
+ + The following insert transformation would cause the whole value of the topic + named AnyTopic to be inserted into the current value at key /T/MyKey, + assuming that an object with the key T exists in the current value. + +
+ insert AnyTopic at /T/MyKey
+ 
+ + The following insert transformation would cause the whole value of the topic + named AnyTopic to be appended to the array at the key T in the current value. + +
+ insert AnyTopic at /T/-
+ 
+ + The following insert transformation would cause the value at the key name + within the topic named AnyTopic to be appended to the array at the key T in + the current value. + +
+ insert AnyTopic key /name at /T/-
+ 
+ + In the above examples no insertion would take place if the insertion value + was not found, but a default value can be specified to insert into the + current value in this case. + +
+ insert AnyTopic at /T/- default "unknown"
+ 
+ + The path of the topic to insert from can be built from parts of the source + topic path and/or scalar values within the current value. For example: + +
+ insert AC// at /T
+ 
+ + ### Options + + Options are specified after the mapping and any transformations. Any number + of options may be specified but any particular option may only be specified + once. + + #### Topic property mapping + + The {@link PTDiffusionTopicSpecification topic specification} of a reference topic is + derived from the topic specification of the source topics. A reference topic + has the same topic type as its source topic. + + The topic properties of a reference topic are derived from the source topic. + Some topic properties can be tuned using the topic property mapping option. + The following table describes the behavior for each topic property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Source topic propertyReference topic specification defaultCan be set by topic property mapping?Notes
`compressionPropertyKey`Copied from source topic specificationYes
`conflationPropertyKey`Copied from source topic specificationYes
`dontRetainValuePropertyKey`Copied from source topic specificationYes
`ownerPropertyKey`Not setNo
`persistentPropertyKey`Not setNoReference topics are not persisted. Topic views are persisted, so a + reference topic will be recreated on server restart if its source is + persistent.
`priorityPropertyKey`Copied from source topic specificationYes
`publishValuesOnlyPropertyKey`Copied from source topic specificationYes
`removalPropertyKey`Not setNoReference topics cannot be removed directly.
`schemaPropertyKey`Copied from source topic specificationNoA recordV2 reference topic has the same + schema as its source topic.
`tidyOnSubscribePropertyKey`Copied from source topic specificationYes
`timeSeriesEventValueTypePropertyKey`Copied from source topic specificationNoA time series reference topic has the same + value type as its source topic.
`timeSeriesRetainedRangePropertyKey`Copied from source topic specificationYes, with restrictionsA topic property mapping cannot increase the time series retained range + by overriding the `TIME_SERIES_RETAINED_RANGE` property. The retained + range of a reference time series topic will be constrained to be no greater + than that of its source topic.
`timeSeriesSubscriptionRangePropertyKey`Copied from source topic specificationYes
`validateValuesPropertyKey`Not setNoA reference topic reflects updates to its source topic. It cannot reject + updates.
+ + A topic property option begins with the keywords `with properties` and + consists of a comma-separated list of topic property keys and values, each + separated by a colon. For example, the following topic view specification + maps all topics below the path `a` to reference topics below the + path `b`, and disables both conflation and compression for the + reference topics. + +
+ map ?a// to b/ with properties CONFLATION:off, COMPRESSION:false
+ 
+ + #### Topic value option + + By default, a reference topic's value is a copy of the source topic value, or + part of the source value produced by an expand path mapping directive and/or + modified by transformations. For {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} source topics with a JSON event + type, the value option can be applied to extract part of the resulting value + (the latest value in the case of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries time series} topics). + + A topic value option begins with the keyword `as` and is followed by a + value directive. A value directive is delimited by angle brackets (`<`, + `>`), and consists of the `value` keywords and a single JSON + pointer parameter. The JSON pointer selects the part of the current value to + copy. + + For example, given a current value of: + +
+ {
+     "account" : "1234",
+     "balance" : { "amount" : 12.57, "currency" : "USD" }
+ }
+ 
+ + and the value option `as `, the reference topic value + will be: + +
+ {
+     "amount" : 12.57,
+     "currency" : "USD"
+ }
+ 
+ + Value mappings that follow expand directives and/or transformations apply to + the current derived value and not the source topic value. + + Topic value mappings only alter the reference topic value; only the path + mapping determines whether a reference topic should exist. If the topic value + mapping's JSON pointer fails to select anything from the source topic value, + the reference topic will have the JSON value `null`. + + Topic value mappings are often used with path value mappings to avoid repeating + information in the path and the value. For example: + +
+ map ?accounts// to balances/ as 
+ 
+ + #### Throttle options + + The throttle option can be used to constrain the rate at which a reference + topic is updated when its source topic is updated. The primary application of + a throttle option is to restrict the number of updates sent to reference + topic subscribers, reducing network utilization or the processing each + subscriber must do. Throttling also restricts the rate at which client + sessions can observe changes to reference topic values using the fetch API. + + The throttle option has the form + throttle to X updates every period, where + X is a positive integer, and period is a positive integer + followed by a time unit which is one of `seconds`, + `minutes`, or `hours`. + + For example, the following topic view specification maps all topics below the + path `a` to reference topics below the path `b`, but + updates the value of each reference topic at most twice every five seconds: + +
+ map ?a// to b/ throttle to 2 updates every 5 seconds
+ 
+ + To improve readability, the throttle option allows `1 update` as + an alternative to `1 updates`, and `every second` as an + alternative to `every 1 seconds` (and so on, for other time + units). For example, the following topic view specification maps all topics + below the path `a` to reference topics below the path + `b`, but updates the value of each reference topic at most once + every hour: + +
+ map ?a// to b/ throttle to 1 update every minute
+ 
+ + The throttle option is only applied when a source topic is updated more + frequently than the configured rate. If a source topic is updated less + frequently, updates are passed on unconstrained. If the rate is exceeded, a + reference topic will not be updated again until the configured period has + expired. At this time, the reference topic will be updated based on the + source topic updates that happened in the interim, and a single value will be + published. Thus, the throttle option provides topic-scoped + conflation. + + The throttle option is ignored for time series topics because time series + updates do not support efficient conflation. Updates to source time series + topics are passed on immediately to the corresponding reference topics, + regardless of any throttle clause. + + #### Delay option + + The delay option causes a change to a view's source topic to be delayed by a + fixed time before it is reflected in reference topics. Topic additions, + updates, and removals are all delayed. Delays can range from one second to + many days​. + + Such a publication delay is a useful way to devalue topic data so it can be + given away to non-paying users​. + + The delay option has the form delay by duration, where + duration is a positive integer followed by a time unit which is one + of seconds, minutes, or hours. + + For example, the following topic view specification maps all topics below the + path a to reference topics below the path b, but + changes to a source topic are delayed by five minutes before they are + reflected in the corresponding reference topic. + +
+ map ?a// to b/ delay by 5 minutes
+ 
+ + Views with the delay option specified initially create reference topics in an + unpublished state. The topics are published once the delay time has expired. + A topic in the unpublished state prevents a lower priority topic view from + creating a reference topic with the same path. Sessions with the rights to + read the source topic can browse unpublished topics using the + {@link PTDiffusionFetchRequest#withUnpublishedDelayedTopics withUnpublishedDelayedTopics} fetch request option. + + #### Separator option + + Views can use the scalar and expand directives in path mappings to extract + text from the source value. By default, any `/` characters in the text + are interpreted as path separators and will introduce extra levels in + reference topic paths. If this is undesirable, the separator option can be + used to replace any `/` characters produced by the scalar and expand + directives with a constant string. The replacement can contain path + separators but must have no empty path segments (`//`). + + Here is an example replacing all path separators with an alternate character: + +
+ map ?a/path/ to b/ separator '\%'
+ 
+ + If the value at `/x/y` in the source topic was `foo/bar`, this would cause the + reference topic to be created at /b/foo\%bar instead of + /b/foo/bar + + #### Preserve topics option + + The default behavior for a topic view is that only the reference topics that + can be derived from the current value of the source topic are maintained. + This applies to views using directives that derive the path of the reference + topic(s) from a value within the source topic (e.g. scalar or expand). For + example if a view uses a scalar directive to determine the path of the + reference topic and the source topic is updated such that the selected scalar + value changes then the previously created reference topic will be removed and + a new one created. Similarly an expand directive may create many reference + topics from the source value but if the source is updated then only those + reference topics that still have a corresponding value within the source + value will be updated (or new ones added if not in the previous value), + whilst others will be removed. + + There are situations where an application may not want reference topics to be + removed because of source value changes. In such cases the 'preserve topics' + option may be used to indicate that all reference topics created by a view + should be retained (and updated by later updates that apply to it) until + either the source topic or the creating view are removed. + + For example: +
+ map ?a/path/ to b/ preserve topics
+ 
+ + #### Topic type option + + The 'type' option can be used to specify the {@link PTDiffusionTopicType} of the target + reference topic. If the current source value of type indicated by the source + topic's type can be converted to the target type, a reference topic of the + specified type will be created. + + For example: +
+ map ?a/ to b/ type STRING
+ 
+ + The specified type must be one of the supported target types + {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} or + {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}, + case insensitive. + + The following table describes the supported conversions from the source topic + type (the left column) to the supported target types. The number in brackets + indicates a note at the foot of the table describing exactly how the + conversion is processed. Where there is no number, no conversion is necessary + and the derived source value is simply mapped to the target reference topic + as if the type options was not specified. Where there is no entry for the + source topic type in the left column, no conversion is supported and topics + of unsupported types will not be processed by the topic view. An x + indicates that the conversion is not supported. + + In all cases the value being processed will be the current value as derived + from other mappings with the topic view (e.g. `expand`) which is not + necessarily the value of the source topic. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Source topic{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}
{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}(1)(1)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}(4)(5)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}(4)(6)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}(7)(7)(7)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}(8)(8)(8)(8)(9)
{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}xxxx(9)
+ + Conversion notes: +
    +
  1. {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} + to number conversions will only occur if + the value of the string can be converted to the target number type. If the + string cannot be converted then no reference topic will be created. +
  2. Primitive types to {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} + will result in a JSON topic containing just the scalar value. +
  3. Conversions to {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} + will result in a time series topic with an event type matching the source topic. + Every update to the source topic will result in a new value being appended to the + reference time series topic. It is not possible to convert to a time series + topic with a different event type from the source topic. +
  4. Conversions from number types to + {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} will result in a + simple string representation of the number in the reference topic value. +
  5. {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} to + {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} + conversions perform a simple conversion. For example, `123` becomes `123.0`. +
  6. {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} to + {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} + conversions perform rounding to the nearest integer value. For example, `12.51` + becomes `13`. +
  7. {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} to primitive + type conversions only occur if the JSON value is a scalar which can be read + as a string and converted to the target type. Currently, only string and + integer scalar values can be read as + a string (i.e. not doubles). The string representation of the value will be + converted in the same way as specified for + {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} to other + primitive types. If the JSON value is a structure or cannot be converted + then no conversion takes place and no reference topic will be created. +
  8. The conversion of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} + to other types follows the same rules as for conversion from the source + topic type that matches the source time series topic's event value type. + So if the time series event type is `double` then the conversion rules from + source topic type {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} + to the target type will apply. Each value appended to the source time series + topic will result in an update to the reference topic. If a failure to convert + occurs at any point then the reference topic would be removed and only recreated + if a value is appended that can be converted. +
  9. {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY} to + {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}, + and vice-versa is supported in the same way as for other time series conversions. +
+ + ### Escaping and quoting special characters + + Each part of a topic view expression has characters with special + significance. Source topic clauses and path mapping clauses are delimited by + white space. Directives in path and topic property mapping clauses are + delimited by the `<` and `>` characters, and each directive + parameter is terminated by `,` or `)`. Topic property mapping + clauses are delimited by white space, and the `:` and `,` + characters. + + Sometimes a topic view must refer to or generate topics with paths that + containing special characters, or use a JSON pointer containing special + characters. The escape sequence `\x` can be used to literally insert + any character `x`, with a one exception: `\/` cannot be used in + path fragments since the path delimiter `/` is always significant. + + Here is an example topic view expression containing escape sequences. It maps + the topic path `a topic` a reference topic with the path + `another topic`. + +
+ map a\ topic to another\ topic
+ 
+ + Here is an example with a source value directive that uses the JSON pointer + `/x()/y` to extract the target path from the source value. The + `)` character in the JSON pointer must be escaped so it is not treated + as the end of the parameter list. + +
+ map ?a// to 
+ 
+ + To insert `\`, the escape sequence `\\` must be used. + + There is no need to escape white space in JSON pointers directive parameters. + However, white space is significant. For example, the following expressions + have different topic value mapping clauses since the JSON pointer in the + second expression is `"/x "`; that is, it has a trailing space: + +
+ map a to b as 
+ map a to b as 
+ 
+ + Instead of using escape sequences, white space characters can be included in + source topic clauses and path mapping clauses using quotes. A clause is + quoted by wrapping it in single quote (`'`) or double quote (`"`) + characters. For example: + +
+ map "a topic" to "another topic"
+ 
+ + Within a quoted clause, quotes of the same type must be escaped: + +
+ map 'alice\'s topic' to 'bob\'s topic'
+ 
+ + For consistency, the values in topic property mapping clauses can be escaped + or quoted. However, there is no need to do so because none of the valid + values for the mappable properties contain special characters. + + ## Dealing with topic path conflicts + + Reference topics have a lower priority than normal topics created through the + API, including replicas of normal topics created by topic replication or + fan-out. A reference topic will only be created if no topic or reference topic + is already bound to its derived topic path. + + Topic views have a precedence based on order of creation. If two topic views + define mappings the same topic path, the earliest-created topic view will + create a reference topic. If a topic view is updated, it retains its original + precedence. + + ## Remote topic views + + A remote topic view is one that specifies another server as the location of + the source topics using the from clause as shown in the example + below: + +
+ map ?a// from server1 to b/
+ 
+ + The server name `server1` in this example refers to the name of a + remote server created. + + In this case, upon establishing a successful connection with the remote + server indicated the topic view will create reference topics locally based + upon the topics selected by the topic view's selector at the remote server. + It is important to note that the selector only refers to topics that + match it at the remote server and not on the local server and there is no + reason why there could not be a source topic at the remote server that has + the same path as an entirely different topic on the local server. + + More than one topic view can specify the same remote server. + + A remote server only makes a physical connection when it is in use, therefore + the first topic view that specifies a remote server will cause it to + establish a connection. Similarly, if the last topic view that uses a remote + server is removed then the connection will be closed. + + It is not necessary for the named remote server definition to exist before + creating the topic view, as if it does not then the topic view will simply + remain dormant until the remote server is created and a successful connection + to the server specified in its URL is established. Similarly, if a remote + server that is in use by remote topic views is removed then all of the + reference topics created by the topic views will be removed and the topic + views will become dormant until the named remote server is created again or + the views are changed to name a different remote server. + + If a remote topic view selects a + {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing routing} topic at + the remote server then local mappings will only be performed if the routing + topic mapping at the remote server is able to establish a mapping for the + remote server connection. The mapping will be done as if from the resolved + routing topic. + + The rules of precedence for remote topic views are the same as for other topic + views. If the remote server for a remote topic view does not exist or does + not have an established connection then the remote topic view is not evaluated + (i.e. it is as if the source topics for the view did not exist), but if the + remote server later connects then the view will be evaluated and rules of + precedence will determine whether reference topic will replace those created + by earlier views. + + ## Topic view persistence and replication + + Reference topics are neither replicated nor persisted. They are created and + removed based on their source topics. However, topic views are replicated and + persisted. A server that restarts will restore topic views during recovery. + Each topic view will then create reference topics based on the source topics + that have been recovered. + + The server records all changes to topic views in a persistent store. Topic + views are restored if the server is started. + + If a server belongs to a cluster, topic views (and remote servers) will be + replicated to each server in the cluster. Topic views are evaluated locally + within a server. Replicated topic views that select non-replicated source + topics can create different reference topics on each server in the cluster. + When remote topic views are in use, each server in the cluster will make a + connection to the specified remote server and will separately manage their + remote topic views. + + A view with a delay clause uses temporary storage to record delayed events. + If there is a high volume of updates, temporary per-server disk files will be + used to save server memory​. The storage is per-server, and does not survive + server restart. When a server is started, no data will be published by a view + with a delay clause until the delay time has expired. + + ## Access control + + To list the topic views a session needs {@link PTDiffusionGlobalPermission#readTopicViews readTopicViews} + permission. + To create or remove a topic view a session needs + {@link PTDiffusionGlobalPermission#modifyTopicViews modifyTopicViews} + permission, {@link PTDiffusionPathPermission#selectTopic selectTopic} permission for the prefix of + the source topic selector and {@link PTDiffusionPathPermission#modifyTopic modifyTopic} permission + for the prefix of the path mapping. + + ## Accessing the feature + + The Topic Views feature for a session can be obtained from the session's + {@link PTDiffusionSession#topicViews topicViews} property. + + @see PTDiffusionSession + + @since 6.3 + */ +@interface PTDiffusionTopicViewsFeature : PTDiffusionFeature + +/** + Create a new named topic view. + + If a view with the same name already exists the new view will update the + existing view. + + @param name The name of the view. + + @param specification The specification of the view using the DSL. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param view the created topic view if the operation was successful. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void)createTopicViewWithName:(NSString *)name + specification:(NSString *)specification + completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; + +/** + List all the topic views that have been created. + + @param 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 `views` will contain a list of views sorted by their + creation order. The completion handler will be called asynchronously on the + main dispatch queue. + + @param views the topic views that have been created if the operation was successful. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(void)listTopicViewsWithCompletionHandler:(void (^)(NSArray * _Nullable views, NSError * _Nullable error))completionHandler; + +/** + Remove a named topic view if it exists. + + If the named view does not exist then the operation is considered successful + and the completion handler is called accordingly. + + @param name The name of the view. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void)removeTopicViewWithName:(NSString *)name + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + + +/** + Get a named Topic View. + + @param name the name of the view. + + @param 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 `view` will contain the named view if it exists. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.8 + */ +-(void)getTopicViewWithName:(NSString *)name + completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h new file mode 100644 index 0000000..54f156d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h @@ -0,0 +1,490 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionFetchRequest; +@class PTDiffusionStream; +@class PTDiffusionTopicSelector; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Topics feature provides a client session with the capability to receive streamed + topic updates and/or fetch the state of topics. + + This feature allows a client session to subscribe to topics to receive + streamed topic updates, fetch the state of topics and/or update topics with + new values. + + Specifically, the feature provides the ability to: +
    +
  • Subscribe to topics and specify streams to receive updates; +
  • Fetch the current state of topics (even if not subscribed); +
  • By extending the topic update feature, update topics with new values; +
  • By extending the topic views feature, manage topic views. +
+ + ###Subscription and unsubscription + + A session can issue requests to subscribe to topics at any time, even if the + topics do not exist at the server. Each subscription request provides a + topic selector that is evaluated by the server to + select matching topics. The session will be subscribed to any topics that + match the selector unless they are already subscribed, or the session has + insufficient permission. The subscription request is also retained at the + server and the session will be automatically subscribed to newly created + topics that match the selector (unless a subsequent unsubscription cancels + the request). + + Sessions receive notifications from topics that they are subscribed to via + subscription streams (see below). When a session is subscribed to a + topic, all matching streams will first receive a subscription notification + that provides details about the topic. If the server has a value for the + topic, the value will be delivered to the streams before any other + notifications. + + A session can unsubscribe from topics at any time. This is also specified + using a topic selector. On unsubscription, matching streams are notified via + the `#PTDiffusionTopicUnsubscriptionReason` notification. This notification will give the + reason for unsubscription (for example, by request of the session, request of + the server, or topic removal). + + Subscriptions and unsubscriptions can occur for reasons other than requests + from the session. A session can be subscribed to or unsubscribed from a topic + by another session using the `PTDiffusionSubscriptionControlFeature`. The removal + of a topic also automatically causes unsubscription for subscribed sessions. + + Subscription requests are subject to authorization checks. The session must + have `PTDiffusionPathPermission#selectTopic` permission for the + topic selector used to subscribe. Matching topics will be further filtered to + those for which the session has `PTDiffusionPathPermission#readTopic` + permission. + + ###Subscription streams + + A session can listen to subscription events and updates for a selection of + topics by adding one or more streams. A stream is registered using a topic + selector which specifies the topics that the stream applies to. When an + update is received for a topic then it will be routed to every stream that + matches both the topic selector and the stream's value type. If more than one + stream matches, all will receive the update; the order in which they are + notified is not defined. + + A stream can be added several times for different selectors. If the same + stream is registered for + several selectors that match an event, the stream will only be notified of + the event once. The mapping of topic selectors to streams is maintained + locally in the client process. + + It is also possible to add one or more fallback streams which will + receive updates that do not match any stream registered with a selector. This + is useful for default processing or simply to catch unprocessed updates. A + fallback stream can be added using `PTDiffusionTopicsFeature#addFallbackStream:error:`. + Zero, one, or more fallback streams may be assigned. If + no fallback stream is specified, any updates that are not routed to any other + stream will simply be discarded. + + If the session is already subscribed to a topic when a matching stream is + added, the stream will immediately receive a subscription notification. For + most topic types, the latest value is locally cached and will be provided to + the stream following the subscription notification. + + A stream will receive a `PTDiffusionStreamDelegate#diffusionDidCloseStream:` + callback when unregistered and a `PTDiffusionStreamDelegate#diffusionStream:didFailWithError:` + callback if the session is closed. + + ###Value streams + + A `PTDiffusionValueStream` receives values for matching topics as and + when updates are received from the server. Delta updates received from the + server are automatically applied to locally cached values so that the stream + always receives full values for each update. + + Value streams are typed to a specified value class and only updates for + compatible topics will be routed to the stream. The following table shows how + the value class maps to compatible topic types that will be routed to the + stream: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value ClassCompatible Topic Types
JSONJSON STRING + INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING + INT64 DOUBLE + BINARY RECORD_V2
RecordV2RECORD_V2
+ + Value stream implementations can be added using + `PTDiffusionTopicsFeature#addStream:withSelector:error`. + + A value stream can be added to received updates from time + series topics. The following table shows how the value class specified + when adding the stream maps to the event value class of time series topics + that will be routed to the stream: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Event Value ClassTime Series Event Value Class
JSONJSON STRING + INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING + INT64 DOUBLE + BINARY RECORD_V2
RecordV2RECORD_V2
+ + ###Fetch + + A session can issue a request to fetch details of a topic or topics (subject + to authorization) at any time. The topics required are specified using a + topic selector. + + The results of a fetch will return the topic path and type of each selected + topic. The results may also optionally return the topic values and/or + properties. + + A new request can be created using `PTDiffusionTopicsFeature.fetchRequest` and modified to + specify additional requirements of the fetch operation. The request is issued + to the server using the `PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler:]` + method on the request. This will return the results via a `completionHandler`. + + ###Access control + + A session must have `PTDiffusionPathPermission.selectTopic` + permission for the path prefix of the topic selector used to + subscribe or fetch. + The topics that result from a subscription or fetch request are further + filtered using the `PTDiffusionPathPermission.readTopic` permission. + + No access control restrictions are applied to unsubscription. + + ###Accessing the feature + + This feature can be obtained from a `PTDiffusionSession` as follows: + +
+    PTDiffusionTopicsFeature *topics = session.topics;
+ 
+ + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionTopicsFeature : PTDiffusionTopicUpdateFeature + +/** + Request subscription to topics. + + The session will become subscribed to each existing topic matching + the selector unless the session is already subscribed to the topic, + or the session does not have `READ_TOPIC` permission for the topic + path. For each topic to which the session becomes subscribed, a + subscription notification and initial value (if any) will be + delivered to registered value streams before the completion handler + is called. + + The subscription request is also retained at the server and the session + will be automatically subscribed to newly created topics that match the + selector (unless a subsequent unsubscription cancels the request). + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 5.6 + */ +-(void)subscribeWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Request unsubscription from topics. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 5.6 + */ +-(void)unsubscribeFromTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + When a matching update is received from the server for a topic, it will be + passed on to all value streams that have been added with matching selectors. + If no value stream is registered with a matching selector, the fallback value + streams that have been registered using this method will be called instead. + + Zero, one, or many fallback value streams can be set. + If there is no fallback value stream, updates that match no other will be + discarded. + + @param stream Handler of value stream events not handled by an explicitly + registered topic selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if the supplied `stream` argument + is `nil`. + + @since 5.9 + + @deprecated since 6.5 Use `addFallBackStream:error:` + */ +-(void)addFallbackStream:(PTDiffusionValueStream *)stream +__deprecated_msg("Will be removed in a future release."); + +/** + When a matching update is received from the server for a topic, it will be + passed on to all value streams that have been added with matching selectors. + If no value stream is registered with a matching selector, the fallback value + streams that have been registered using this method will be called instead. + + Zero, one, or many fallback value streams can be set. + If there is no fallback value stream, updates that match no other will be + discarded. + + @param stream Handler of value stream events not handled by an explicitly + registered topic selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param error May be 'nil'. Is supplied then will contain reason on failure. + + @return YES if stream was successfully added + + @exception NSInvalidArgumentException Raised if the supplied `stream` argument + is `nil`. + + @since 6.5 + */ +-(BOOL)addFallbackStream:(PTDiffusionValueStream *)stream + error:(NSError **)error; + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector. + + When a value update is received from the server, it will be passed to all + streams that have been added with matching selectors. + If there is more than one match, the order in which the streams are called is + not defined. + If there is no matching stream, the fallback stream(s) will be called instead. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 5.9 + + @deprecated since 6.5 Use `addStream:withSelector:error:` + */ +-(void)addStream:(PTDiffusionValueStream *)stream + withSelector:(PTDiffusionTopicSelector *)selector +__deprecated_msg("Will be removed in a future release."); + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector. + + When a value update is received from the server, it will be passed to all + streams that have been added with matching selectors. + If there is more than one match, the order in which the streams are called is + not defined. + If there is no matching stream, the fallback stream(s) will be called instead. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. + + @param error May be 'nil'. Is supplied then will contain reason on failure. + + @return YES if stream was successfully added + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(BOOL)addStream:(PTDiffusionValueStream *)stream + withSelector:(PTDiffusionTopicSelector *)selector + error:(NSError **)error; + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector expression. + + This convenience method calls addStream:withSelector: having constructed a + PTDiffusionTopicSelector instance using the given expression. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated locally. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + + @deprecated since 6.5 Use `addStream:withSelectorExpression:error:` + */ +-(void) addStream:(PTDiffusionValueStream *)stream + withSelectorExpression:(NSString *)expression +__deprecated_msg("Will be removed in a future release."); + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector expression. + + This convenience method calls addStream:withSelector: having constructed a + PTDiffusionTopicSelector instance using the given expression. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated locally. + + @param error May be 'nil'. Is supplied then will contain reason on failure. + + @return YES if stream was successfully added + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(BOOL) addStream:(PTDiffusionValueStream *)stream + withSelectorExpression:(NSString *)expression + error:(NSError **)error; + +/** + Remove a topic or value stream that was previously added using a topic selector + or as a fallback. + + @param stream The stream to remove. + + @return `YES` if the stream was removed. + + @note If the supplied `stream` argument is `nil` or the stream has already been + removed from the feature then calls to this method do nothing and return `NO`. + + @since 5.9 + */ +-(BOOL)removeStream:(nullable PTDiffusionStream *)stream; + +/** + Creates an unconfigured fetch request. + + If the request is invoked by calling + PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler: + the fetch result will provide the paths and types of all of the topics which + the session has permission to read. + + You will usually want to restrict the query to a subset of the topic tree, and + to retrieve the topic values and/or properties. This is achieved by applying + one or more of the builder methods to produce more refined requests. + + For example (Swift): + + topics.fetchRequest() + .fetchStringValues(withTopicSelectorExpression: "*A/B//") + { + (result: PTDiffusionStringFetchResult?, error: Error?) in + / / TODO Handle result, if not `nil`, otherwise handle error. + } + + @return a new unconfigured fetch request + + @since 6.2 + */ +-(PTDiffusionFetchRequest *)fetchRequest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h new file mode 100644 index 0000000..2cc7efc --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h @@ -0,0 +1,126 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionPartialJSONUpdateConstraint; +@class PTDiffusionSessionLock; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A constraint to be applied to an update operation or the creation of an + update stream. + + Constraints describe a condition that must be satisfied for an operation to + succeed. Constraints can be applied to the setting of a value or creation of an + update stream. Constraints are only evaluated on the server. + + Constraints are evaluated using the: + - active session locks + - existence of the topic + - current value of the topic + + The value of a topic can be described in several ways. The value can be + described as an exact value, a partial value or an unset value. + + Constraints can be composed with one another. It is only possible to construct + logical ANDs of constraints. Constraints can only be composed if the resulting + constraint is satisfiable. Multiple session locks can be held but a topic can + only have a single value. Constraints specifying multiple topic values cannot + be constructed. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionUpdateConstraint : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a constraint requiring a lock to be held by the session. + + This can be used to coordinate operations between multiple sessions. + + @param lock the lock held by the session. + + @return Constraint requiring a lock to be held by the session. + + @exception NSInvalidArgumentException If the lock argument is `nil`. + + @since 6.3 + */ ++(instancetype)lockedWithLock:(PTDiffusionSessionLock *)lock; + +/** + Create a constraint requiring the topic to have no value. + + This is useful when setting the first value of a topic. This constraint is + unsatisfied if no topic is present at the path, making it unsuitable for + operations that try to add topics. + + @return Constraint requiring the topic to have no value. + + @since 6.3 + */ ++(instancetype)noValue; + +/** + Returns a constraint requiring the path to have no topic. + + This is useful when setting the first value of a topic being added using one of + the 'add and set' methods without changing the value if the topic already + exists. This constraint is unsatisfied if a topic is present at the path, + making it unsuitable for operations that try to set topics without adding them. + + @return Constraint requiring the path to have no topic. + + @since 6.3 + */ ++(instancetype)noTopic; + +/** + Returns a constraint that partially matches the current topic value. + + The topic must be PTDiffusionTopicType_JSON. The returned constraint partially + describes the structure of a PTDiffusionJSON value. + + @return Constraint that partially matches the current topic value. + + @since 6.3 + */ ++(PTDiffusionPartialJSONUpdateConstraint *)jsonValue; + +/** + Returns a composed constraint that represents a logical AND of this constraint + and another. + + @param constraint The other constraint that will be logically-ANDed with this + constraint + + @param error Location to store a reason in case of failure. May be `nil`. + + @return A new constraint or `nil` if there was an error. + + @exception NSInvalidArgumentException If the constraint argument is `nil`. + + @since 6.3 + */ +-(nullable instancetype)andConstraint:(PTDiffusionUpdateConstraint *)constraint + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h new file mode 100644 index 0000000..ee4deb6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h @@ -0,0 +1,156 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTopicCreationResult; + +/** + The value assigned to the `code` property of NSError objects generated by some + callbacks generated by PTDiffusionUpdateStream instances. + + @since 6.3 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionUpdateStreamErrorCode) { + /** + An operation was performed with an invalid update stream. + + @since 6.3 + + @deprecated since 6.7 Use PTDiffusionError_InvalidUpdateStream instead. + */ + PTDiffusionUpdateStreamErrorCode_InvalidStream __deprecated_enum_msg("Use PTDiffusionError_InvalidUpdateStream instead.") = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + The value assigned to the `domain` property of NSError objects generated by + some callbacks generated by PTDiffusionUpdateStream instances. + + @since 6.3 + */ +extern NSString *const PTDiffusionUpdateStreamErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + @brief An update stream that provides a base functionality for updating a + specific topic. + + An update stream is associated with a specific topic. The type of the topic + must match the type of values passed to the update stream. It can be created + with an optional PTDiffusionUpdateConstraint. The existence of the topic, its + type and the constraint are validated lazily by the first 'set' or 'validate' + operation. Subsequent operations issued before the first operation completes + will be deferred until the completion of the first operation. + + An update stream can be used to send any number of updates. It sends a sequence + of updates for a specific topic to the server. If supported by the data type, + updates will be sent to the server as a stream of binary deltas. An update + stream does not prevent other sessions from updating the topic. If exclusive + access is required update streams should be used with a PTDiffusionSessionLock + as a constraint. + + Once validated an update stream can be invalidated. An invalidated update + stream rejects the operations applied to it. The update stream will be + invalidated if: + + - the topic is removed + - another update stream is created for the same topic + - the topic is updated to a new value by anything other than the stream + - the session does not have the `UPDATE_TOPIC` update permission + - an operation fails because of cluster repartitioning + + Update streams are thread-safe. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionUpdateStream : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(BOOL)validateWithCompletionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h new file mode 100644 index 0000000..3698253 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h @@ -0,0 +1,244 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionUpdateStream; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRecordV2UpdateStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream builder. + + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the update stream type. + + To create a new Update Stream Builder, please use {@link PTDiffusionTopicUpdateFeature: newUpdateStreamBuilder}. + + @since 6.9 + */ +@interface PTDiffusionUpdateStreamBuilder: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Specifies a {@link PTDiffusionTopicSpecification topic specification} for this + update stream. + + If a topic does not exist at the `path`, one will be created using the topic + specification, otherwise the operation will fail. + + Specification is `nil` by default. Calling this method with a `nil` parameter removes + the currently set topic specification from this builder. + + @param specification the required specification for the topic + + @return the builder + + @since 6.9 + */ +-(instancetype)topicSpecification:(PTDiffusionTopicSpecification *const _Nullable)specification; + + +/** + Constraints can be applied to the setting of a value and creation of an update stream. + Constraints describe a condition that must be satisfied for the operation to succeed. + The constraints are evaluated on the server. + The available constraints are: + - active session lock + - absence of a topic, + - current value of the topic being updated + - part of the current value of the topic being updated + + Constraint is `nil` by default. Calling this method with a `nil` parameter removes + the currently set update constraint from this builder. + + @param constraint the constraint that must be satisfied for the update stream + to be validated + + @return the builder + + @since 6.9 + */ +-(instancetype)updateConstraint:(PTDiffusionUpdateConstraint * const _Nullable)constraint; + + +/** + Resets the builder to its default parameters. + + @return the builder + + @since 6.9 + */ +-(instancetype)reset; + + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @since 6.9 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with RecordV2 + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h new file mode 100644 index 0000000..d5579df --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h @@ -0,0 +1,30 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A value stream represents an asynchronous, variable length feed of + subscription and value updates from the Diffusion server. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ +@interface PTDiffusionValueStream : PTDiffusionStream + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h new file mode 100644 index 0000000..9ea1df9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h @@ -0,0 +1,100 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A version represents a released build of the client library. + + Version numbers are described with dotted notation in the form + `..`. + + @since 5.6 + */ +@interface PTDiffusionVersion : NSObject + +/** + Instance of the product version of this client library. + + @return the product version of this client library. + + @since 5.6 + */ ++(instancetype)versionOfClientLibrary; + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + The major (left, most significant) component of the version number. + + @deprecated since 6.5. This will be removed in a future release. + + @since 5.6 + */ +@property(nonatomic, readonly) NSUInteger major __deprecated_msg("Will be removed in a future release."); + + +/** + The minor (middle) component of the version number. + + @deprecated since 6.5. This will be removed in a future release. + + @since 5.6 + */ +@property(nonatomic, readonly) NSUInteger minor __deprecated_msg("Will be removed in a future release."); + + +/** + The patch (right, least significant) component of the version number. + + @deprecated since 6.5. This will be removed in a future release. + + @since 5.6 + */ +@property(nonatomic, readonly) NSUInteger patch __deprecated_msg("Will be removed in a future release."); + + +/** + The complete product version number. + + @since 6.5 + */ +@property(nonatomic, readonly) NSString * version; + + +/** + Additional information about this build of the client library. + + @since 5.6.6 + */ +@property(nonatomic, readonly) NSDictionary* manifest; + + +/** + Compares the receiver to the given version. + + @param version The version object with which to compare the receiver. + + @return `YES` if the receiver and the given version are the same. + + @since 5.6 + */ +-(BOOL)isEqualToVersion:(nullable PTDiffusionVersion *)version; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Info.plist b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Info.plist new file mode 100644 index 0000000..9efee26 Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Info.plist differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Modules/module.modulemap b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Modules/module.modulemap similarity index 100% rename from Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Modules/module.modulemap rename to Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/Modules/module.modulemap diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/_CodeSignature/CodeResources b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..1fa6a75 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/_CodeSignature/CodeResources @@ -0,0 +1,2291 @@ + + + + + files + + Headers/Diffusion.h + + Mkqa2r0x+txy0cQmJIpxw2oeQP8= + + Headers/PTDiffusion.h + + etncixhbxbY9uNI3FgCEG5NZC1k= + + Headers/PTDiffusionAddTopicResult.h + + lf4tnUs6clyzlkWOZxif1brIZIg= + + Headers/PTDiffusionBasicHTTPProxyAuthentication.h + + EZ2o/hOmmA0wKR57fwDga0y2Cqo= + + Headers/PTDiffusionBinary.h + + Dp5oMgxGqG0AwopvhmD53929ZKg= + + Headers/PTDiffusionBinaryDelta.h + + 2QhceXcLnfQd/qzQK9ojEjnVz1c= + + Headers/PTDiffusionBinaryFetchResult.h + + nx3DoWNGWUI98o/h2rutlX9a/AM= + + Headers/PTDiffusionBinaryFetchTopicResult.h + + ZurLVW92masa5deJ9QudaTVWnOI= + + Headers/PTDiffusionBinaryRequestDelegate.h + + F/RIhkNPfD93JbOaX3mXAL1RkXw= + + Headers/PTDiffusionBinaryRequestStreamDelegate.h + + mo1R65pbBqwX2qOpEujsT7T4KFg= + + Headers/PTDiffusionBinarySessionResponseStreamDelegate.h + + uAPdv2I+wYK3uhq/84NkD7fgxeY= + + Headers/PTDiffusionBinaryTimeSeriesEvent.h + + YqSglP1Kdz2FhbKhxghcJixdnrA= + + Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h + + 6oo8LIKO/uZA4sNzdK+nlR/5FIY= + + Headers/PTDiffusionBinaryTimeSeriesQueryResult.h + + ixMN6gDnwxXAmajRPWrUaS5uIt4= + + Headers/PTDiffusionBinaryUpdateStream.h + + h+lm30nxzIbJgyeMQ0HtqYjsv4c= + + Headers/PTDiffusionBinaryValueStreamDelegate.h + + ljWMTJnpBwToLvbyN4kTsuJZQeA= + + Headers/PTDiffusionBranchMapping.h + + Labnm5AJG/nmPaP56htrzXh18Io= + + Headers/PTDiffusionBranchMappingTable.h + + X9M05JWp4TG3kfAM5x3EhPJW8v8= + + Headers/PTDiffusionBranchMappingTableBuilder.h + + tQydUcWofgYORzWn7JeAiBWLAq0= + + Headers/PTDiffusionBytes.h + + wAjXc7vWNjySYljVMRNsT+6+EZ8= + + Headers/PTDiffusionCancellable.h + + Gmm/d6N12EoRSVSUTymeFrhPaxk= + + Headers/PTDiffusionCheckRemoteServerResult.h + + CyId85zIwIFtp629m7KJ30//FM0= + + Headers/PTDiffusionClientControlFeature.h + + lGTUIsvZvsl99fF6vQ4Ze94HvKs= + + Headers/PTDiffusionClientQueueEventListener.h + + qbDOQMEQhhWLUBn+fkAANXOIEeU= + + Headers/PTDiffusionClientQueuePolicy.h + + o6Lr6PXPUNpRfOqUzOsPXPLUCBY= + + Headers/PTDiffusionCloseReason.h + + 8stcH0pJC4p3Pm/F+rfo4qcdNW4= + + Headers/PTDiffusionCreateRemoteServerResult.h + + fCPpDe9H/eNLUz+cLSrdmN15ZDU= + + Headers/PTDiffusionCredentials.h + + ChqQbKvOiDqqYl5Vwujv/MlzQdM= + + Headers/PTDiffusionDataType.h + + /o2coY2OXX8jiC8yEYzAjl+owWE= + + Headers/PTDiffusionDataTypes.h + + 241uaKNOvlRh22w5JYc6fjTjO08= + + Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h + + 0LEl+NBH3BN0llMo95e01zSaVBw= + + Headers/PTDiffusionDefaultStreamDelegate.h + + f4GfBFpNZwaBfR6lX2TDMrUCs2w= + + Headers/PTDiffusionDefaultSubscriberStreamDelegate.h + + 4CROni4tMaTuWKAjaey/Vc4jRjQ= + + Headers/PTDiffusionDefaultTopicNotificationListener.h + + oNNeBlqnhsu6vRGQM4QPqFUrfeE= + + Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h + + aIV07Bx9clK5bpnrK5tF3fZocsI= + + Headers/PTDiffusionEnumeration.h + + 1DMAvabFhr876grje6SCYFLrlBk= + + Headers/PTDiffusionError.h + + atYN8FDgttIKU3XnAuIU3vnKdew= + + Headers/PTDiffusionErrorListener.h + + EAHALG8d4scUoAwdnXOkEjbrP/c= + + Headers/PTDiffusionFeature.h + + dWawOs/ELfwVqjBE5ltRPT/71w4= + + Headers/PTDiffusionFetchRequest.h + + KkuMMRiUlzGH0JxWgZ9ylE++LWs= + + Headers/PTDiffusionFetchResult.h + + /T3ijCiWmmVZ1i2LHsHbHncSgdo= + + Headers/PTDiffusionFetchTopicResult.h + + /tVIkxz3JFU5J+sRgur1NDCnb74= + + Headers/PTDiffusionGetSessionPropertiesResult.h + + 87ak7jHiCkqpwa9eP9ohBI9A2JU= + + Headers/PTDiffusionGlobalPermission.h + + P7/nHG2hsIIjJbA0PaOX6lKuqQ8= + + Headers/PTDiffusionHTTPAuthentication.h + + oEX1Yg2hovbJq4PFIVm47qeqwMc= + + Headers/PTDiffusionHTTPAuthenticationChallenge.h + + Mzvzcyb4aicAxxaxfuxjnOon6S8= + + Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h + + b8i+YV5dgnprw+s3yakS2eBsSfc= + + Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h + + jLMSYOorAMy9jIu0Se3gQY17m6w= + + Headers/PTDiffusionHTTPProxyConfiguration.h + + ElKSmimXIcvqbqv8X31rnLgk9N0= + + Headers/PTDiffusionHTTPResponse.h + + AaRy8GBWXt2ysVS1xsR+WVtAGYc= + + Headers/PTDiffusionJSON.h + + UB3VCtbTX/hTJYSoYHRFaD0koOg= + + Headers/PTDiffusionJSONDelta.h + + llOmfyInCzKBu9gaoyyD2F0E8Eo= + + Headers/PTDiffusionJSONDeltaChangeMap.h + + pZD3sB7uVs1AlRUFdXkJWxR8Roo= + + Headers/PTDiffusionJSONFetchResult.h + + MMuebHUd6ghg/TdtPAoF8pa0M+4= + + Headers/PTDiffusionJSONFetchTopicResult.h + + IFLx59aTDLWXW+4aGz6VHuJknJM= + + Headers/PTDiffusionJSONPatchResult.h + + PrMdJIZyx/6c94gnZaj03sECMnY= + + Headers/PTDiffusionJSONRequestDelegate.h + + O2hwszRccrLaNmdhU+SibNYBIZw= + + Headers/PTDiffusionJSONRequestStreamDelegate.h + + u5XITvrPzLbNdvlxowF97dD6fkE= + + Headers/PTDiffusionJSONSessionResponseStreamDelegate.h + + HDlqDowcgloPplbbEYTG/yEdwls= + + Headers/PTDiffusionJSONTimeSeriesEvent.h + + RcHAcv5yP2wxO13ZIO0fDkRKNF0= + + Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h + + 6fZ63Zr32EoXExyTAak3KCkNmck= + + Headers/PTDiffusionJSONTimeSeriesQueryResult.h + + ZBkj1nFh4BjmQH9CfzqrWgFSYAo= + + Headers/PTDiffusionJSONUpdateStream.h + + Qyz7EFzJMMCcgkBwIeGG+BZ7n3g= + + Headers/PTDiffusionJSONValueStreamDelegate.h + + 3k1M7cqmg0NOHDAubOy36MrUj48= + + Headers/PTDiffusionLogging.h + + 3/Qic6EJSqNfIoY0DuWR1nnVTrk= + + Headers/PTDiffusionLoggingDestinationConfiguration.h + + opQqfIOqWB55P4kaFEXdMkCx23M= + + Headers/PTDiffusionLoggingLevel.h + + ttEQE3ONuRBTpBf3edmsJgf6V/s= + + Headers/PTDiffusionLoggingMessagePrinter.h + + CpwRxxTnxfY/1n9cg6oHVCUCwkA= + + Headers/PTDiffusionMessagingFeature.h + + DpAlGVFnhF0vEDIRAqJICKlqAzA= + + Headers/PTDiffusionMetricCollector.h + + ibw6woRQavBLN0ZWnt9jieDkFUI= + + Headers/PTDiffusionMetricCollectorBuilder.h + + 0302nzzc+tGrdKo+P/h8Fvx8p0M= + + Headers/PTDiffusionMetricsFeature.h + + 0STlq7UoYU6wbFu1+hRzN/xnghI= + + Headers/PTDiffusionMissingTopicHandler.h + + cFfLmfy9Qj228NY1gVKCKxKoHf0= + + Headers/PTDiffusionMissingTopicNotification.h + + V70fd8EArG5WI73eHtaMbqp0LOk= + + Headers/PTDiffusionMutableRecordV2Model.h + + RU7vmnvmmIRXhRo25AdtbBG7Dfo= + + Headers/PTDiffusionNumberFetchResult.h + + u25nPwb/XgcAqpA7LLfxydgjTok= + + Headers/PTDiffusionNumberFetchTopicResult.h + + WdD2IGt+yy9Uubxutw/IDveSO6Q= + + Headers/PTDiffusionNumberRequestDelegate.h + + SOo4ck/8vEtDax5Uqp5wYgQ1luU= + + Headers/PTDiffusionNumberRequestStreamDelegate.h + + k06j/mET0n+Gj2SWSw/1iw3g1eE= + + Headers/PTDiffusionNumberSessionResponseStreamDelegate.h + + GMy7jTkAq0n1FtUTYXwEcIDaeSk= + + Headers/PTDiffusionNumberTimeSeriesEvent.h + + tyRJotkHuz2MZZ3/h/fNt62gRW0= + + Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h + + Nh4um6YvEN9rCvvKbNXaSqpn+mU= + + Headers/PTDiffusionNumberTimeSeriesQueryResult.h + + kf1PArSbO8zrQ4bvmnUxOMVik00= + + Headers/PTDiffusionNumberUpdateStream.h + + jOgeSjTNY+SndUVqLqqknCqdNR8= + + Headers/PTDiffusionNumberValueStreamDelegate.h + + 59+6S2QqEtdRPyGyFAsaXHFRZSc= + + Headers/PTDiffusionPartialJSONUpdateConstraint.h + + RBsJCmnW52diE8J2WUVNyIxGznM= + + Headers/PTDiffusionPathPermission.h + + utHyQhw1oqLuc8CFm6wgSc3XNUQ= + + Headers/PTDiffusionPingDetails.h + + 0zGyogQffFVxgHMKzHV1z/AUYcE= + + Headers/PTDiffusionPingsFeature.h + + ILzEw2AWPERs0rA9Q1rHkPFokYs= + + Headers/PTDiffusionPrimitive.h + + 4pK+hfJ/5vRwvN+/R7IgWZry47g= + + Headers/PTDiffusionRecordV2.h + + 9jPG9mGsh6ywTSZQbrHk9vm14PU= + + Headers/PTDiffusionRecordV2Builder.h + + +R43bqNNNSrziRgr9JY3AKVfI1M= + + Headers/PTDiffusionRecordV2Delta.h + + MDvyEtKhWN1atexpVnfBzyRgOlE= + + Headers/PTDiffusionRecordV2DeltaChange.h + + YyCYYNE95yLCCU2wlol8RySHmrY= + + Headers/PTDiffusionRecordV2DeltaChangeType.h + + aKKRips1gmiC2VczkX1enW534S4= + + Headers/PTDiffusionRecordV2FetchResult.h + + DM2fmgSp+PEHlNH/quxAhMJSJNs= + + Headers/PTDiffusionRecordV2FetchTopicResult.h + + ajbj/1aV/KZOfOyG7L+jISluVjI= + + Headers/PTDiffusionRecordV2Model.h + + S3u5qsl0s67Gp5D/HEOcjC7Rpdg= + + Headers/PTDiffusionRecordV2RequestDelegate.h + + eMhaKyIE7AZ5WKIjUChHd/6ptqI= + + Headers/PTDiffusionRecordV2RequestStreamDelegate.h + + OQV1G21EDlLtYmdD2JdZbZU5uzQ= + + Headers/PTDiffusionRecordV2Schema.h + + 29Vd7ulnAtz3HlUx+gSWDLcU9pQ= + + Headers/PTDiffusionRecordV2SchemaBuilder.h + + 0NioSaGvZlbAcQrYvNbNAi4P+Ew= + + Headers/PTDiffusionRecordV2SchemaField.h + + nMOQYy88QfELJo93TvSRKq+n5UM= + + Headers/PTDiffusionRecordV2SchemaFieldType.h + + plUnzqdSf1ET25eO//O5+b+FlrI= + + Headers/PTDiffusionRecordV2SchemaNode.h + + uvWnpYK4e4ugcIxwblIJ0VvyJr8= + + Headers/PTDiffusionRecordV2SchemaRecord.h + + MswcVnsUm9m8lNaKMTy5MudMHvE= + + Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h + + kuVjEn/RpPcDmAE9odYMpa8aUVM= + + Headers/PTDiffusionRecordV2TimeSeriesEvent.h + + KLF3lvwxYGEMScZAy6MhstjAnBY= + + Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h + + tpMkvB8WAzevpM+ZZ9efhIbarSg= + + Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h + + eBeo9N3OngG7UGNtJmC7eDmMAX8= + + Headers/PTDiffusionRecordV2UpdateStream.h + + C8JxKjIkLqBcPQK450hyNh6zJuE= + + Headers/PTDiffusionRecordV2ValueStreamDelegate.h + + i9HX1prcRwwSTRkaCWO/+wYKdeo= + + Headers/PTDiffusionRegistration.h + + W3Vw9COYkUtYU97VH4XvScMmGRY= + + Headers/PTDiffusionRemoteServer.h + + 8Ww2pLGazyPtS2YmJ3r20BKAo8E= + + Headers/PTDiffusionRemoteServerBuilder.h + + SerfJWFqqmSIfKnxgUEiutQ2KHI= + + Headers/PTDiffusionRemoteServerConnectionOption.h + + MBysTsKBCSXf5PJJ3wpOojR6Jvk= + + Headers/PTDiffusionRemoteServerConnectionState.h + + mw/eKPYjOdkxSWidu7HGKppaAlM= + + Headers/PTDiffusionRemoteServersFeature.h + + yvk7aNi2t7cCSlBP5z9QlqOyyNk= + + Headers/PTDiffusionRequest.h + + xAxd3/9o9wfiPgSqxrfnpDpjDhc= + + Headers/PTDiffusionRequestContext.h + + xeKAZ+VuwggkHqxG1PWZ7bXMTqk= + + Headers/PTDiffusionRequestHandler.h + + WsyzCHLTmKlt/wcjcyBG/5jL08w= + + Headers/PTDiffusionRequestStream.h + + Zv7vMz3yeEEu9Z85344h42fKLeY= + + Headers/PTDiffusionResponder.h + + pt9o2ut9An0AMQkZPFU4V0cyutw= + + Headers/PTDiffusionResponse.h + + Q8sXEJDrJGa9Dd9HCeUtoWCTjOw= + + Headers/PTDiffusionRetryStrategy.h + + 1il8so4gUjqCCvg5TRzbyoaHwxE= + + Headers/PTDiffusionSecurityFeature.h + + o95Nwkx1BHa7tQo85JqcgUmRUuc= + + Headers/PTDiffusionSendDeliveryPriority.h + + w3hhJNuNqGID6gHCHRq13qT5Fk0= + + Headers/PTDiffusionSession.h + + dVbfcACrK5ViY9tsk0LfsGbM7EI= + + Headers/PTDiffusionSessionConfiguration.h + + TRJpxEF9TQxHUE3tAvljNId6/HQ= + + Headers/PTDiffusionSessionError.h + + /N2U2/H3sQahKWe+3OK4b5/sHYM= + + Headers/PTDiffusionSessionId.h + + bjAVhZZHsCDiQtXcWDg/Mt5Jqm8= + + Headers/PTDiffusionSessionLock.h + + pRjtpJ4OV8M7T1JrfRMcwCRzzX0= + + Headers/PTDiffusionSessionLockAttempt.h + + F9JjEhm/2O3Avmo2p7tQVNi2zOA= + + Headers/PTDiffusionSessionLockScope.h + + B+/qZhcMyw+RQI5MTzMR+SKqF8M= + + Headers/PTDiffusionSessionMetricCollector.h + + cGYuseLU/31kUdyyFprcCtW/Dd8= + + Headers/PTDiffusionSessionMetricCollectorBuilder.h + + xW4HZ1JSvpkqtdPSG7Ri4DTmUPU= + + Headers/PTDiffusionSessionPropertiesDelegate.h + + ZK+EIqsw0fi+s+xIWUlI4xRRAUw= + + Headers/PTDiffusionSessionPropertiesListenerRegistration.h + + bGcFnXPO8fnri5+bPx51Qmb16bY= + + Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h + + weUx7F/rNoca8WGeTcBg3XnC2w0= + + Headers/PTDiffusionSessionReconnectionAttempt.h + + +ToAswnfGNDF+2VHHi2IHXVpk8o= + + Headers/PTDiffusionSessionReconnectionStrategy.h + + q2hUzH5OXZl6gNbY5X/rfsuj/sk= + + Headers/PTDiffusionSessionResponseStream.h + + x6r/r6ta7dO0kOqzhRvleNnHyOs= + + Headers/PTDiffusionSessionResponseStreamDelegate.h + + 93B33j5xtR+chnEjypZWO0nvMRY= + + Headers/PTDiffusionSessionState.h + + ga0fsQLDN3YCtttCW1h8hx5u5k0= + + Headers/PTDiffusionSessionStateChange.h + + 261WITvQeq3j4wqi5fxkgh9g9Uk= + + Headers/PTDiffusionSessionStateChangeDelegate.h + + I13XUOrr5eJaf2jNke9oj2eMYeo= + + Headers/PTDiffusionSessionTreesFeature.h + + bd+wzHk3Vh7YZJiTTdK/T1znHfk= + + Headers/PTDiffusionSetSessionPropertiesResult.h + + syT4pk/CgzCeZ4Z0wKN8IBqthZM= + + Headers/PTDiffusionStream.h + + xKB7aLpvCs6El7QQL0jn86m4v/k= + + Headers/PTDiffusionStreamDelegate.h + + aLYAfnWKXf53AH5pJwenzQsUxYA= + + Headers/PTDiffusionStringFetchResult.h + + qx7Aja50Bb3mMs+84VoSWG5Xcjs= + + Headers/PTDiffusionStringFetchTopicResult.h + + 8khbWI6t+bSoHP83ppZUjiSVG7Y= + + Headers/PTDiffusionStringRequestDelegate.h + + eU+jin9xsc16Qgwpb1NunH777Y4= + + Headers/PTDiffusionStringRequestStreamDelegate.h + + g9Pi+bnkXFYc1qA+HXdO8vDp+XA= + + Headers/PTDiffusionStringSessionResponseStreamDelegate.h + + lO0zexieIeu7aBf3u3j+OtTfFcg= + + Headers/PTDiffusionStringTimeSeriesEvent.h + + 2LPFnC2Z7kiFBmxfsSn9Gu4Mk1Y= + + Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h + + yG3L23xjbzZHVgPaK2OCqeIVc6Q= + + Headers/PTDiffusionStringTimeSeriesQueryResult.h + + xKm7HGOoIIOAQ+zE6vt+ynMA97U= + + Headers/PTDiffusionStringUpdateStream.h + + Kg5qSOtTPiZxsKclUIsUEcRbJUE= + + Headers/PTDiffusionStringValueStreamDelegate.h + + X2t4SvNlud3O4AnH8n8KVFFDSfE= + + Headers/PTDiffusionSubscriberStreamDelegate.h + + Z51r+DtzgiRgOeC9fmpbaLpkSEI= + + Headers/PTDiffusionSubscriptionControlFeature.h + + iouD2u0n6IAl0Q2MkXy+tUwcQ4s= + + Headers/PTDiffusionSubscriptionRoutingRequest.h + + 62OSCfzi6qboLz2LJK8Cuwif5g4= + + Headers/PTDiffusionSubscriptionRoutingRequestHandler.h + + GDEB5ib3O9Qip8y3PyCTt2FJl50= + + Headers/PTDiffusionTimeSeriesEvent.h + + GwAwW6xQJU0YJq/BH2es6w8NYpc= + + Headers/PTDiffusionTimeSeriesEventMetadata.h + + CctV6GWN1e8atz4cmRvwkH3mEiM= + + Headers/PTDiffusionTimeSeriesFeature.h + + mMpxPsOdi4Ak1NmYNC0Ygep4k34= + + Headers/PTDiffusionTimeSeriesFetchResult.h + + 4Y0oITXaI4WyKJQkwzUwnvhkYQY= + + Headers/PTDiffusionTimeSeriesFetchTopicResult.h + + YfbC1jEisk8Rr6Q2rCdA6O4iidM= + + Headers/PTDiffusionTimeSeriesQueryResult.h + + QbFBLkm9EDCQ/Qrvy34niAjVq88= + + Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h + + uBt/o+HjAjBsqvJjufIF7fI0P3I= + + Headers/PTDiffusionTimeSeriesRangeQuery.h + + gXXiTD9FjLsoGC8SjKP8DCtXHdo= + + Headers/PTDiffusionTopicControlFeature.h + + /I9hx6ncXo/UxRNhvMzdOOZJ1yo= + + Headers/PTDiffusionTopicCreationResult.h + + tO5XyfLRAcf3Tzj+WU5dKQkSeY0= + + Headers/PTDiffusionTopicMetricCollector.h + + 9H9mm4on1w9dD6v2HbRADfXus4Y= + + Headers/PTDiffusionTopicMetricCollectorBuilder.h + + 49qM9t5OMNjFn1LMof2zgVBDuKs= + + Headers/PTDiffusionTopicNotificationListener.h + + z2SMFXq+mlnME/GtBTTR2k3ZeS8= + + Headers/PTDiffusionTopicNotificationRegistration.h + + +RujsaipGlw9TMJsc0kRAo4mLrA= + + Headers/PTDiffusionTopicNotificationType.h + + sgcAtoSV/Zobq8h7urx+km0rg18= + + Headers/PTDiffusionTopicNotificationsFeature.h + + IfvbLLWVYp877e9lDzSZHPulNY0= + + Headers/PTDiffusionTopicPermission.h + + ONiifzilkrxLuoFkSHPCcoZQIN4= + + Headers/PTDiffusionTopicRemovalResult.h + + 5C+wxG7ExLIEkdGuclMrU+MqfKI= + + Headers/PTDiffusionTopicSelector.h + + XJFtcUsutKIPNN7ZPRK5yGmkh30= + + Headers/PTDiffusionTopicSpecification.h + + HRmP7ibvQ8EyRPH+bUN02frOqbI= + + Headers/PTDiffusionTopicTreeRegistration.h + + +wRdByplLwLouKuQLLZOSkdTpOk= + + Headers/PTDiffusionTopicTreeRegistrationDelegate.h + + TsYnOXklqpYZKd1lOgeC1m4aWWg= + + Headers/PTDiffusionTopicType.h + + T87TNIiPTXScnwm3Wy4lCcjz+n4= + + Headers/PTDiffusionTopicUnsubscriptionReason.h + + JY7a1EVbbNOLPd1quQl2Eg/7yhc= + + Headers/PTDiffusionTopicUpdateFeature.h + + O2yWqZSV7Y92U4BhiRqeAG61Dpg= + + Headers/PTDiffusionTopicView.h + + OE07/KYnSJpcH45apBnrGvz+z2M= + + Headers/PTDiffusionTopicViewsFeature.h + + qJOimME3xrA8NdSmfQ37ClzjA6s= + + Headers/PTDiffusionTopicsFeature.h + + 2Cu3x5WWMeUfz0tlQ0gE1pSGqDU= + + Headers/PTDiffusionUpdateConstraint.h + + SCY6UA1rZzRQYHq9ybaBH0mwvRA= + + Headers/PTDiffusionUpdateStream.h + + i86I8izfeQSdiN9JrsAkhWyB2dE= + + Headers/PTDiffusionUpdateStreamBuilder.h + + N5Vuhvokeroi0V2zEdZArhemJa8= + + Headers/PTDiffusionValueStream.h + + LWC4mgeOR50XMz0MZh+Cx0Cn8sQ= + + Headers/PTDiffusionVersion.h + + FQiMU6V2P/Bdzp8wrGe4xS0FGy8= + + Info.plist + + Fz+SWvBslvBVJ80pGSpx+j01sQo= + + Modules/module.modulemap + + q330/OkSKLLkRwoC2kdB1e4qTEQ= + + error_descriptions.plist + + IgeTzRhVc7Ef0oI1M6pe3UYtDGI= + + + files2 + + Headers/Diffusion.h + + hash2 + + A1zwNtl0yfpty9+eqIwje1Ha+Cxu33jPe/AvbGJVykc= + + + Headers/PTDiffusion.h + + hash2 + + NJkvOe7sV9inX4lGI2vh6WglcdzakvOyWAZvlfqGPX0= + + + Headers/PTDiffusionAddTopicResult.h + + hash2 + + EKWKQQYimqytJpb6wN8t7zur8vJfV6t3purhOpwqcto= + + + Headers/PTDiffusionBasicHTTPProxyAuthentication.h + + hash2 + + lNqCwMmnEWV1lCFH63yQUDGQ/QB12Lfr3497TSPyYZ8= + + + Headers/PTDiffusionBinary.h + + hash2 + + pAtK+/vemHjXAdUhXY0+wdumrAFl8xi7AvEpM5NKKQI= + + + Headers/PTDiffusionBinaryDelta.h + + hash2 + + cAdg7jUyyUs3WBnGTxbH8Fp1ZgmzvwBgzDmzejaP02c= + + + Headers/PTDiffusionBinaryFetchResult.h + + hash2 + + i/6QE+uOhRxzksybPgBgkvMjwoQNwzCuk4CIUs/bUNA= + + + Headers/PTDiffusionBinaryFetchTopicResult.h + + hash2 + + kxcCorEeDXRQ2HToGHFLzd576/SgoMD1sK8EtgLMj6Y= + + + Headers/PTDiffusionBinaryRequestDelegate.h + + hash2 + + UrZpuer2fPFUeb+5fMFquhZmCF8vxRrVnPSwoxTaqb4= + + + Headers/PTDiffusionBinaryRequestStreamDelegate.h + + hash2 + + HRlzQsTwHd08PPHEVDdGhBSmeu01WZFHsBFV9cbXT7E= + + + Headers/PTDiffusionBinarySessionResponseStreamDelegate.h + + hash2 + + nxFGh44y4EEEAeZ1kRa41tz6ej95dNJXgybjC5XKFwE= + + + Headers/PTDiffusionBinaryTimeSeriesEvent.h + + hash2 + + C6b93rxmeLvZeqmBD+htM78o4fiy4L8k5uFeMhsj9RU= + + + Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h + + hash2 + + IYJwis0D+uFU4pTz9Ce6LrLfvBkCo/OFt+t7bo1dC3c= + + + Headers/PTDiffusionBinaryTimeSeriesQueryResult.h + + hash2 + + yU9zQRr75wkd9rwAE79NPJ1k8UM/gZ0ozbdohJZ3kTc= + + + Headers/PTDiffusionBinaryUpdateStream.h + + hash2 + + IS+ge2fuZOiRqsF/VVw9SogcM5ba+qaGtqRUVK2Y49s= + + + Headers/PTDiffusionBinaryValueStreamDelegate.h + + hash2 + + g61+exeX7oOSLyEl8XOePjMxSoariC3H6soITiqqGYI= + + + Headers/PTDiffusionBranchMapping.h + + hash2 + + goiBi1K1nyRy6w9cYVbGyeeEMx5PFHXWjqIF1f2iuM8= + + + Headers/PTDiffusionBranchMappingTable.h + + hash2 + + /F0HJRO5DykAz629aZwZ87a0wsBmKUKlH5YQI3bMT4Q= + + + Headers/PTDiffusionBranchMappingTableBuilder.h + + hash2 + + Ov5T/qu5/dNQ4tllnsPvaZ9A4d1OJBLiz76Aft00gpE= + + + Headers/PTDiffusionBytes.h + + hash2 + + noeJjt8j/FGQ6KRyHuNwOBMn7weyEERzf8DQDcEQpX0= + + + Headers/PTDiffusionCancellable.h + + hash2 + + vDcczDhZ5sEOLKkdZ+qh58A5glGLt6E9EKdn6kEyt/Y= + + + Headers/PTDiffusionCheckRemoteServerResult.h + + hash2 + + mve8V9bYg7x2qkFwzduWxk8wFIK+dmLVBUcmGwjMKdo= + + + Headers/PTDiffusionClientControlFeature.h + + hash2 + + CGsOGc9zQUYKMnP9mOStwqfJ/gjFzFK61yJtOWS3B5I= + + + Headers/PTDiffusionClientQueueEventListener.h + + hash2 + + YqNTgiT0i1aJRBUUhzryEKY2YYLQWASMJLSdFNF4Dh0= + + + Headers/PTDiffusionClientQueuePolicy.h + + hash2 + + MpKR2JR0lqht3ueV/XvEY2M2CLhb0rf40bVl8TzfBWY= + + + Headers/PTDiffusionCloseReason.h + + hash2 + + mcVgGqxDFQx9CL1kIA3q+cwqct8eocI7ayVXFlJuC8w= + + + Headers/PTDiffusionCreateRemoteServerResult.h + + hash2 + + ltZw8RDwqYhptUR0W538ThquYMgIYs6OveZnm+lnCv0= + + + Headers/PTDiffusionCredentials.h + + hash2 + + HVf7FwHHvz5drhP8M0SKLQgczz/zGzzhwfTxQfTN7Dk= + + + Headers/PTDiffusionDataType.h + + hash2 + + XWWuVPUovPcPfOxJu7IlNebl5Hvf+y3edyfDk+I773Q= + + + Headers/PTDiffusionDataTypes.h + + hash2 + + LsLy+f5mEXxYAA24hURlC47M2WxYSwrMIib1jLjFweU= + + + Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h + + hash2 + + Tx5en1POL1nuG2LWUIQQJAJUehyWu3eNcSJFxxz4CoQ= + + + Headers/PTDiffusionDefaultStreamDelegate.h + + hash2 + + iPFDLfw+vgecpwNnt/Q8VW6Fq1bENEf2WYV63TIsR+4= + + + Headers/PTDiffusionDefaultSubscriberStreamDelegate.h + + hash2 + + wUpvggq3lUb8yhP/luJHt+ND70yFaNxFpUwCcBiUjHk= + + + Headers/PTDiffusionDefaultTopicNotificationListener.h + + hash2 + + 2iAbixccndqGnyqe8nCOUm/hfJ4lHrUi8nqvTwNlcpI= + + + Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h + + hash2 + + lTy8jnBVIRPIV/iYHVS2lgmGtpdO+1oWNQ2dm70izOc= + + + Headers/PTDiffusionEnumeration.h + + hash2 + + 0d1hGNZqWcFSMH4f1c1VDYX0WIV17CWWDQpCkszafkI= + + + Headers/PTDiffusionError.h + + hash2 + + RSZV+RQNSj6glfsBd7n3QhwJqhYaKOas8Ho5rdS33bE= + + + Headers/PTDiffusionErrorListener.h + + hash2 + + wUhpMThJrWlCugKuimRmK0kbZ/6jWMYPk6caEo3qp5k= + + + Headers/PTDiffusionFeature.h + + hash2 + + Aqk7y7sqRwFIO73O/twnB9TG7BKB/PqxVUikbxkKitA= + + + Headers/PTDiffusionFetchRequest.h + + hash2 + + HilD4zCUclx4PshGXVes8cD3nXfke0WSzPq+9gsmAmU= + + + Headers/PTDiffusionFetchResult.h + + hash2 + + LVshrFDq2KG31A5gm6KlRT0ntNfGoMS016CX2eTF8p0= + + + Headers/PTDiffusionFetchTopicResult.h + + hash2 + + jaJ+Vpq2FWnzLW19B5kf9R+9XItJBOlEMSaSNuFjYCc= + + + Headers/PTDiffusionGetSessionPropertiesResult.h + + hash2 + + KS9IsH75bU0BMwO/VGHdqbuFlnGvGAHRtuKbzqAehhk= + + + Headers/PTDiffusionGlobalPermission.h + + hash2 + + ZeGTIRBhyWydKlQFXTufEiYAtPeI9stVn4s0roOd9ps= + + + Headers/PTDiffusionHTTPAuthentication.h + + hash2 + + +RNHLW/DegSpyx4qw/kjoVIIoFTxnENRAGmfPYZBsgU= + + + Headers/PTDiffusionHTTPAuthenticationChallenge.h + + hash2 + + 2LbRaWQViguwFTlDz+mPlfDFF53L6TZ1VX5ps9/yLK0= + + + Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h + + hash2 + + /kgkQDewUpO1Htwgm/2wTjAu8pMUg9/n2FB1OuJmBqY= + + + Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h + + hash2 + + NXTuGJPtTRB5+9aCkUJ3/vRaRROIUhh72VEs6LhpjPk= + + + Headers/PTDiffusionHTTPProxyConfiguration.h + + hash2 + + /cTb6wTMItyQmINsAp5wcPb2Rk1J3KYgZSCthmPjEcI= + + + Headers/PTDiffusionHTTPResponse.h + + hash2 + + 1o2Ga+oRHDw9J7CoyTX6Ny5ITgi+1AOjCvj5T2YNhcM= + + + Headers/PTDiffusionJSON.h + + hash2 + + KVeGiB1jiOLKW6LGOWrEkiYKrzBfBsQNeGLJ9L+uquw= + + + Headers/PTDiffusionJSONDelta.h + + hash2 + + HSFFw0p0Vjx1Wq5cCnBT5imYhwRp4lePX6qOUxJHO7c= + + + Headers/PTDiffusionJSONDeltaChangeMap.h + + hash2 + + AjKutPHJDIvXgSCGdhHvl3BHC9QpH9bwlVc6zfwches= + + + Headers/PTDiffusionJSONFetchResult.h + + hash2 + + dJ8E+5YMCp+ImeQ6EsiDjxR1f+7gxwI2Ezzh0pUY8gc= + + + Headers/PTDiffusionJSONFetchTopicResult.h + + hash2 + + n9dibxRGvPRIUJfhvuYFlge8huW7MhdYXhvc9w9bt+I= + + + Headers/PTDiffusionJSONPatchResult.h + + hash2 + + iLQkOP79QPRM6KYj7R1aDim0KlnmL2ls4ZFt3d9+2M8= + + + Headers/PTDiffusionJSONRequestDelegate.h + + hash2 + + yd2juwS8e/ytJq7zRRj6WtFifuOsuDTfDJGUzVu5a/8= + + + Headers/PTDiffusionJSONRequestStreamDelegate.h + + hash2 + + V5hV4r4oahxIiBHUDmY/uYZnxlssalQaYcPVg1JJwNY= + + + Headers/PTDiffusionJSONSessionResponseStreamDelegate.h + + hash2 + + PGWYZoa1NVp7ZYeuc07wQmpd+RGd2SZGUFHjNfTEIVo= + + + Headers/PTDiffusionJSONTimeSeriesEvent.h + + hash2 + + uSkpHJ35QCNfDb9i0jzJVXE37MQ1McPK3s6bgpsKp1Y= + + + Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h + + hash2 + + J3tGpr6NiDTgkzIvimuJMF/QYHRvcP5cjVPlkJyyEEk= + + + Headers/PTDiffusionJSONTimeSeriesQueryResult.h + + hash2 + + YPUQy8I9JLz/DLADhCOEr+V+8fZdPNMYDK/b34Fz85Y= + + + Headers/PTDiffusionJSONUpdateStream.h + + hash2 + + Cf+RhPVGELSJPVNwj3wXKutO06CnjAKXGm7FzOIUh1A= + + + Headers/PTDiffusionJSONValueStreamDelegate.h + + hash2 + + w8Qp38dEwbILAikQpwwT3ABHp5SzATppP/aE+yG/DT4= + + + Headers/PTDiffusionLogging.h + + hash2 + + ThkCoh6S71c2+ugUpmxHrw6KPAGYvmxfYmyQiBYnewQ= + + + Headers/PTDiffusionLoggingDestinationConfiguration.h + + hash2 + + e9rg3b8uHVVAtm6EgeUGF5DmygglLaseXRezI8GDFK0= + + + Headers/PTDiffusionLoggingLevel.h + + hash2 + + IMgmWb6Gac/ypapkMV7cwewBwIHc0G+YQreT12J5bcQ= + + + Headers/PTDiffusionLoggingMessagePrinter.h + + hash2 + + 9FVZ1A+guhhf3gqlsyeOsLQgL6p3DET0arHxsRaRae0= + + + Headers/PTDiffusionMessagingFeature.h + + hash2 + + qavtZ3Sov4MOzk9EhtqMZnmqzMlIu5MNHRHkJ+7A87g= + + + Headers/PTDiffusionMetricCollector.h + + hash2 + + at9MAzNfEAlkNyMYo+Vrj8zZc+oX/OUy1STHg2ODJG0= + + + Headers/PTDiffusionMetricCollectorBuilder.h + + hash2 + + jrPanMbMursCBYm/a9MLB2ZUrs33FOAh6GmWohpkVn4= + + + Headers/PTDiffusionMetricsFeature.h + + hash2 + + alYHcRjQQyGkaNLYcKEprHHqPRffTP5ohXFK664HBv4= + + + Headers/PTDiffusionMissingTopicHandler.h + + hash2 + + uKY6CZZtWD/Q4zd7jzpKOBBW9Ctcp5pGVWtq0BiXYpE= + + + Headers/PTDiffusionMissingTopicNotification.h + + hash2 + + p9DvZjlEiuMGCPFmQRmWPmeRgF/K4mXoeb9CiYUJ9Tc= + + + Headers/PTDiffusionMutableRecordV2Model.h + + hash2 + + eKCPCPAJOPw/EeCVLRs0+4MwNO+3dnzJFMFloj6iJxQ= + + + Headers/PTDiffusionNumberFetchResult.h + + hash2 + + ePnR6X9EQQCxk6Ml34BDOU3Z3wQr3NFjpTv5YJOu8sg= + + + Headers/PTDiffusionNumberFetchTopicResult.h + + hash2 + + MJkMq/VBNbwbliRdP7PQzzqaV2cpDgejdTCwRVlOhMI= + + + Headers/PTDiffusionNumberRequestDelegate.h + + hash2 + + l6d1NKLuIg/jkLs+dtO7fU0qGD9l2msTXvBR+OXJlfM= + + + Headers/PTDiffusionNumberRequestStreamDelegate.h + + hash2 + + g5hXaPHIFRxUL0ymBbdflCvGDADrysbD0RuFNNMvkvM= + + + Headers/PTDiffusionNumberSessionResponseStreamDelegate.h + + hash2 + + raiXClyo4QkZHwgNX9sxHMsifz+hOPIevS8r+BM2LYc= + + + Headers/PTDiffusionNumberTimeSeriesEvent.h + + hash2 + + buP5I0PdBX4HpfdNU7zAhtlqoFIC6Uk4255EZT+4ZeM= + + + Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h + + hash2 + + QzyVbrYahlkD7P3l6BBwuZTtq6gg909b+FWh/E8DycQ= + + + Headers/PTDiffusionNumberTimeSeriesQueryResult.h + + hash2 + + o0YnCbBaElVPGqVeixYvfJmLbIkeZqcc6cYStGKciPY= + + + Headers/PTDiffusionNumberUpdateStream.h + + hash2 + + XtOI5eXbcMoWswaxbPu2Sb/gcDcQH2Ba8ydT/jd1s6w= + + + Headers/PTDiffusionNumberValueStreamDelegate.h + + hash2 + + oqdIZ5ffSUdNhSFugNosZmFD5I4PB0YhlEvo/Ki48yA= + + + Headers/PTDiffusionPartialJSONUpdateConstraint.h + + hash2 + + Gx/KwGDJhT3MTsmouAcBa+h2sdc+pgmT5lOJ7Z0+WpM= + + + Headers/PTDiffusionPathPermission.h + + hash2 + + ztut6MW3+tIFlkaDGPfFqhEu18o34/PdheiuLMmlPs8= + + + Headers/PTDiffusionPingDetails.h + + hash2 + + P/sgqX583duAKsSN2Se+yLdYLg7yJfXgt1YxVAzUwzU= + + + Headers/PTDiffusionPingsFeature.h + + hash2 + + PbJAv2JR0fReNzMcqERZEBzv5qj/Qyk+wTM2pXNUhLM= + + + Headers/PTDiffusionPrimitive.h + + hash2 + + bIam3uhW5uzsP3cqi4S5ViKZxymJCHO0CWoshg1Wfss= + + + Headers/PTDiffusionRecordV2.h + + hash2 + + aSFO/taoHFK7narpCeO0qwgw8Gf7MahfZQgsF7Q1bmg= + + + Headers/PTDiffusionRecordV2Builder.h + + hash2 + + ylx/BznpVyZpmeK0baGNKlRIiHhsTn98Q1MviX1xOKQ= + + + Headers/PTDiffusionRecordV2Delta.h + + hash2 + + RtQw28FphjU93+/CQ+BkuIrvqXna86+ERPPii/ViFYA= + + + Headers/PTDiffusionRecordV2DeltaChange.h + + hash2 + + zw2jw2nh24u++nJ0yqnIR2ZHw/y9p8LBCgiTMyl1uSw= + + + Headers/PTDiffusionRecordV2DeltaChangeType.h + + hash2 + + nhZeQv+8V8F0T3yD0yEMRTHbuCSijA+ElrzJntbAmZw= + + + Headers/PTDiffusionRecordV2FetchResult.h + + hash2 + + diNYpNy3TVUtqHj+94PVRN8At3J3Q/pt1LDUCZSZe4k= + + + Headers/PTDiffusionRecordV2FetchTopicResult.h + + hash2 + + qbpi0nD2XE/HoYOxhJdlkKfnSe+M3oPNShttz7/+g+c= + + + Headers/PTDiffusionRecordV2Model.h + + hash2 + + az673ClIY13QToxNdg0k6eqR7Z4S/goLNRYpz3rY6KE= + + + Headers/PTDiffusionRecordV2RequestDelegate.h + + hash2 + + eDmg0zXrk3siHiyw54EJXP2LROZtW7l5oercgpPRyhM= + + + Headers/PTDiffusionRecordV2RequestStreamDelegate.h + + hash2 + + BKRQ3kSSSeUj4/sRB9hJwYIJGfFUR5w/JYiEScznJA0= + + + Headers/PTDiffusionRecordV2Schema.h + + hash2 + + 8ABqdXMSVQNoMU8L1+sCVqoTAVwvJi5sr0u7Y6f9gCY= + + + Headers/PTDiffusionRecordV2SchemaBuilder.h + + hash2 + + nZT4PPAuwhd81kmuDDjL/uPCfktlD5nw0hMKI7TgqDM= + + + Headers/PTDiffusionRecordV2SchemaField.h + + hash2 + + ez5vtOlO+1+LHixd3dXZmUgQhMmC/r+Dq4PagYcoSiM= + + + Headers/PTDiffusionRecordV2SchemaFieldType.h + + hash2 + + rjxh0i/TVcDOTc0/sqFzuyvtxsTpUEQ2Qx6E25wasAU= + + + Headers/PTDiffusionRecordV2SchemaNode.h + + hash2 + + cIkGHujgRHlv9TRNRbjHV0NypPgdDunXNA1c0NTK3QE= + + + Headers/PTDiffusionRecordV2SchemaRecord.h + + hash2 + + OaWvao2jABRf4RvNs1I/dt8zomyo554rjFmP2a4pup8= + + + Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h + + hash2 + + GltXf1PQU9F3u6iD3MhndXpDuxNbGU6cgqwyWFnesyU= + + + Headers/PTDiffusionRecordV2TimeSeriesEvent.h + + hash2 + + S1QB8+ULPUp2unzvvgj0XeX13mqDnUhkc/RguwqSkZU= + + + Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h + + hash2 + + 56eJs8aqJiQIWHm6ktcVHgH9qIN0dPbaKX7ugi82W+8= + + + Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h + + hash2 + + oSvxiNQA/o4xrZNIDnYVjdS0JhmfUErRdy5GPZH22G8= + + + Headers/PTDiffusionRecordV2UpdateStream.h + + hash2 + + XoaxmflJ8P6lFAy61BUszRGW2RCvVuNT2RYSLcO9m4A= + + + Headers/PTDiffusionRecordV2ValueStreamDelegate.h + + hash2 + + OBSkyOcPqobhjr+y8i3yPKSoITaKaC//yLmKPYNzoKM= + + + Headers/PTDiffusionRegistration.h + + hash2 + + AC+hSXzVgK55KdMemvMGgZlTU8gsJI0HGM2M/NHOIWc= + + + Headers/PTDiffusionRemoteServer.h + + hash2 + + Ipl+s0Ir/pp3eT/Vf26jTK5/0EeGNGiGca3CpJB0BHc= + + + Headers/PTDiffusionRemoteServerBuilder.h + + hash2 + + gaUUPE0U7WkpNQknazdOYoYUGA+KwwLf4yFEY7b7p6Y= + + + Headers/PTDiffusionRemoteServerConnectionOption.h + + hash2 + + WbaMZD+9MJLszFhmcrzVVgTV5aXg8J02HUSzi17YWro= + + + Headers/PTDiffusionRemoteServerConnectionState.h + + hash2 + + swlPqwPPRaULAyqedgBhRD7w8AeTXogdlYj0s9+XsR4= + + + Headers/PTDiffusionRemoteServersFeature.h + + hash2 + + y1JIOYUAYENRX00Q2zF18/ETQJB2u7Re0zFh/trDtGw= + + + Headers/PTDiffusionRequest.h + + hash2 + + s/Lfp8u/pzNHOKd7KCcxwAo965kFmnkS3Nttky9ew8k= + + + Headers/PTDiffusionRequestContext.h + + hash2 + + OzN0x0dcrwv87qN0XSlSv9wvadmAG6a3EAPIQAzFH1o= + + + Headers/PTDiffusionRequestHandler.h + + hash2 + + hHNsgq+E54KjW35ic5fMiX9hg+fy+Jp7w294MMZ5/VU= + + + Headers/PTDiffusionRequestStream.h + + hash2 + + i+fPGPXRnmNmFDIrIQsCd71kWzM8cLXjefPbv0RADko= + + + Headers/PTDiffusionResponder.h + + hash2 + + DdZ9X11CvjQXFliHm5mH6OFQIRqxn1+CG1dST6Fgs+I= + + + Headers/PTDiffusionResponse.h + + hash2 + + b+htxBGWuJdDzP/8in9NRYt7zJ1xlfqhtMYzjW6NdqI= + + + Headers/PTDiffusionRetryStrategy.h + + hash2 + + lL2ackpqfPu9o2BKp+iBdKHIe4dUCFXGir2cl/XHkus= + + + Headers/PTDiffusionSecurityFeature.h + + hash2 + + 5oF9U+VlTM5jHlNjiAYFybHqmtMD62sQ8520TCJQvGw= + + + Headers/PTDiffusionSendDeliveryPriority.h + + hash2 + + bdVgIqZ1mvNHklE4in6f4AxN6lwODQtF5YVXogMZZBo= + + + Headers/PTDiffusionSession.h + + hash2 + + aOJbvrzjp7w20LBbMFPr3qZdrdDIsV2LGlh0osphwzE= + + + Headers/PTDiffusionSessionConfiguration.h + + hash2 + + 7aUfnLdjsDDbA4/82urX+3vutpLpPy/xWlFa7lLmF8E= + + + Headers/PTDiffusionSessionError.h + + hash2 + + 19bGFW3lh3kbywHdtSeP7A1ptR3aGhwd5bJnTHSBJdk= + + + Headers/PTDiffusionSessionId.h + + hash2 + + b/pdRBwslaHtVtVZuKpi8dhStXVQfObJDdtIenPBrSI= + + + Headers/PTDiffusionSessionLock.h + + hash2 + + HPdjKoKoj/ccqAOaMUF8naebbfopaiBV2Dwvf51t0h0= + + + Headers/PTDiffusionSessionLockAttempt.h + + hash2 + + Oy4bs7+zLKvX06wSTJosCVqwgMJo8MaWn6jP26LULQY= + + + Headers/PTDiffusionSessionLockScope.h + + hash2 + + eqwbvTvGikz3/e4eogPGBJUXeGhNV8dQOmB6uWum7qw= + + + Headers/PTDiffusionSessionMetricCollector.h + + hash2 + + IozljUE1DL7DVqEfrmvrzMIBY58UR3Pes6siIjF0ueY= + + + Headers/PTDiffusionSessionMetricCollectorBuilder.h + + hash2 + + YvDv1NoWTEx24p9c++JGmfEPTztjsedlbKeJq3binMA= + + + Headers/PTDiffusionSessionPropertiesDelegate.h + + hash2 + + lpHxU340gS9s1pTZJh1uxc/NWwRVOOEfyDZZrCtXG8c= + + + Headers/PTDiffusionSessionPropertiesListenerRegistration.h + + hash2 + + ZuLNBjdclVDGgLU16qB120DnY8LqtClq9IaTCzLO5/Q= + + + Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h + + hash2 + + aLpsJ4rCC4TFj3icKAw4SwCUDZdSp0ObohPJHsHdwm4= + + + Headers/PTDiffusionSessionReconnectionAttempt.h + + hash2 + + FwCXyjswE7Hj5EBrSFNyNVz2oQPeumukE2QyFN1HAfs= + + + Headers/PTDiffusionSessionReconnectionStrategy.h + + hash2 + + NLqSWJnGyHtxnG50P1sSHBxi0zlfR5vAaroCavTecEk= + + + Headers/PTDiffusionSessionResponseStream.h + + hash2 + + qs973ob/v5F3fAsMKMRZqI0I0WE4/KmtBZNnE5RLKmM= + + + Headers/PTDiffusionSessionResponseStreamDelegate.h + + hash2 + + QRNr3Gse3PIgrHWR1VtdF+d9ii7ViNWEI64nGCGsO0s= + + + Headers/PTDiffusionSessionState.h + + hash2 + + bYxqFaSEGy2nLELcDV/7vH9XMaslTroU4F7oCbR+vg4= + + + Headers/PTDiffusionSessionStateChange.h + + hash2 + + M8/yWmdsYbCW9lX6pnhwnSfd90o1bVCft4s507oUoVE= + + + Headers/PTDiffusionSessionStateChangeDelegate.h + + hash2 + + am8jQ2utEtfiQO3dkpzlbQUNo58aKCH5RmxE2M8AuGQ= + + + Headers/PTDiffusionSessionTreesFeature.h + + hash2 + + 3Fw1/3L0ryyWtnHJC0mm0jnAegdY0NrSL0G2ubsZmE8= + + + Headers/PTDiffusionSetSessionPropertiesResult.h + + hash2 + + ZT4skgOofyOjtRCQdbFBFhUA7btBk41Au6JAgxDW7Mc= + + + Headers/PTDiffusionStream.h + + hash2 + + Z01BcLpUXyCkNl1UKzeDgsaGdh1Nmf+cQnTJRlIIjdc= + + + Headers/PTDiffusionStreamDelegate.h + + hash2 + + OKp/dnEU+OLBVLI8cKIobbewMTK66QNLgSRWn1EwbiE= + + + Headers/PTDiffusionStringFetchResult.h + + hash2 + + EZgkv0bTJ7vbx4q4lXOQ3uAE7FzR+50GbB6MpmRBuqQ= + + + Headers/PTDiffusionStringFetchTopicResult.h + + hash2 + + PryoSKA6X0dRT3nG38guKaVEs7hQTcOA+KnNa16A0Qg= + + + Headers/PTDiffusionStringRequestDelegate.h + + hash2 + + FoWCrvy+J4zEJgDnyd6ze70Ed4SxockWJgBaIfy3Uow= + + + Headers/PTDiffusionStringRequestStreamDelegate.h + + hash2 + + aRkqgLeibdHPAQ7vIGs2lt+b4/DYXeyt7cxD3dOVvQs= + + + Headers/PTDiffusionStringSessionResponseStreamDelegate.h + + hash2 + + k+E/xL+LibLAq3rTIKYfaQKDpX4qJnPV5K8pTdAbikA= + + + Headers/PTDiffusionStringTimeSeriesEvent.h + + hash2 + + U90vJc+4gDM/XBnh6A+OWV+oJjacZKxoeVDWBnSu6+s= + + + Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h + + hash2 + + WkxIsa0sxbn4Opqafg/DZGdkbgAqFKIl2RTGu9EfzUs= + + + Headers/PTDiffusionStringTimeSeriesQueryResult.h + + hash2 + + a+Aa8ogA/9JA8BEdQbZ1jrYbzxzn/l5m0T8RP3kkQt0= + + + Headers/PTDiffusionStringUpdateStream.h + + hash2 + + KLQPX2pO2fwi0d3ylQaXKx1UswHPw88y2gpnmU6SpGM= + + + Headers/PTDiffusionStringValueStreamDelegate.h + + hash2 + + j0aubzfnDFx/qCJExG0pCXfOE9j62guTMKIZBvl03AU= + + + Headers/PTDiffusionSubscriberStreamDelegate.h + + hash2 + + tXbsjZ/Fz4jHFGUL2oai9jkm6Ts9zdbqDbzzzSWiBFY= + + + Headers/PTDiffusionSubscriptionControlFeature.h + + hash2 + + 577CUsWVEXOH403zyribYpfeQT5CLxH4e3AnLOeNTxk= + + + Headers/PTDiffusionSubscriptionRoutingRequest.h + + hash2 + + 7WtOrCkqrBKfaFJvH7Twc/krOlfNrwvT5+Bvr/aQsWE= + + + Headers/PTDiffusionSubscriptionRoutingRequestHandler.h + + hash2 + + RJjJK3WCbo6On5aoF5Wl8nRUBNnrGBZqGk9TctyMvA8= + + + Headers/PTDiffusionTimeSeriesEvent.h + + hash2 + + 5VG95jJeM9H1vz5vUHuXlLbNdqEEZPQKSWmawxb5NDg= + + + Headers/PTDiffusionTimeSeriesEventMetadata.h + + hash2 + + gQQjIWKJiUPdnTnK8c3q3d5+zviWGHWCQhH6k6wafak= + + + Headers/PTDiffusionTimeSeriesFeature.h + + hash2 + + bJ14hUgeVsI7pmf0Gp7XPl15nwTclL6QbiWTNB/J6NQ= + + + Headers/PTDiffusionTimeSeriesFetchResult.h + + hash2 + + VQbww+bJHpKLZVw5ozGHGcJsJbzWDopMins1f4GoDCc= + + + Headers/PTDiffusionTimeSeriesFetchTopicResult.h + + hash2 + + 70ZAVjYK54fPbI/aBwmPLPqlGRp906FpeahTBArh8UM= + + + Headers/PTDiffusionTimeSeriesQueryResult.h + + hash2 + + DHFhF1le1yYZG7QB9XjEpuTNeQKnx+/nJ6IydZXbSro= + + + Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h + + hash2 + + bhUqJ6BsDyWGwCjInsDC4UBeq/gZB5u5bqsZbZdNq14= + + + Headers/PTDiffusionTimeSeriesRangeQuery.h + + hash2 + + 88wFqFx9xtfeGUzuGPNUyWy+HZ0w3J69Dmpgu8GF0WU= + + + Headers/PTDiffusionTopicControlFeature.h + + hash2 + + TNPv7A1Pc7kGI6am+cbLzrovDKOZdWOgnh51mpjr0FA= + + + Headers/PTDiffusionTopicCreationResult.h + + hash2 + + 0eFshVZ8h0pY9lKi20iOj7RfEPY+5T1l1pECdmLdFI0= + + + Headers/PTDiffusionTopicMetricCollector.h + + hash2 + + 2qs00SrBSzk8lUh8OVFMfQKkmmOe9/jAormyRZUzDCo= + + + Headers/PTDiffusionTopicMetricCollectorBuilder.h + + hash2 + + 6LinbFSYd4TEuw/bhnsx6e5vxZdq8lD1UVobF0qnVPI= + + + Headers/PTDiffusionTopicNotificationListener.h + + hash2 + + Yd65kVGGp6/jytaX0dO4N3/nyN5d2hX0hiPq19iNkbk= + + + Headers/PTDiffusionTopicNotificationRegistration.h + + hash2 + + /kZ4Jgw1b6/dFhaP0Bs37rKtyU4qg3cb3LlGkLIrZqY= + + + Headers/PTDiffusionTopicNotificationType.h + + hash2 + + R6Vv6W9PRLpJv55+h+fKVGJa/y3OlS36Kt5QJ3vuaPM= + + + Headers/PTDiffusionTopicNotificationsFeature.h + + hash2 + + 9nIAjTCyPklFkgqsz9XUCe4/VIoWvMTomyPUDVNnd6Y= + + + Headers/PTDiffusionTopicPermission.h + + hash2 + + iHfHjjZXfd7enFoS1PUR+q0wl+bOV/YvDqRAvTW92h8= + + + Headers/PTDiffusionTopicRemovalResult.h + + hash2 + + 4UPlfIx5Kp0DTFEBUoGxDPULjn9rWA68/6dYOgJ7XRM= + + + Headers/PTDiffusionTopicSelector.h + + hash2 + + 0/Gr4YiDdZa5EG6bKOeN8StjNShjC1AEsRpXJ+j8g+8= + + + Headers/PTDiffusionTopicSpecification.h + + hash2 + + 7l2YWBc8NotaGX/yG82SCQA60ne3Q+6SrQA2P7hx+j0= + + + Headers/PTDiffusionTopicTreeRegistration.h + + hash2 + + kQ3awGQo+b7tPgX2VMOYa+Bg41so8LMtV50t3B4JdQ0= + + + Headers/PTDiffusionTopicTreeRegistrationDelegate.h + + hash2 + + XjL0BeHNZXrK1Uh/p/IR/I7Gx+XZkdfMJBtksK6A2yg= + + + Headers/PTDiffusionTopicType.h + + hash2 + + Kxx6dzJsEyUOaMEUp3V2RRdXlFQFeyYtCGifEjWkIJ0= + + + Headers/PTDiffusionTopicUnsubscriptionReason.h + + hash2 + + zh3U7QP1cmfSJ7dSUHgTCvi0dP4HFP6dZg4k2nqlm2c= + + + Headers/PTDiffusionTopicUpdateFeature.h + + hash2 + + A4+YoizxM5TQQjgknubvhaNCLYmHrJ3FhqJKdRLdqaw= + + + Headers/PTDiffusionTopicView.h + + hash2 + + 8ArWfdJooTE+1YebNF7DbQBWQwg7WaAX0KL69fZWNSU= + + + Headers/PTDiffusionTopicViewsFeature.h + + hash2 + + 2/+vZqxCDMUYv6fY2x1lVuviabAtyFNliwS3ihLLOQU= + + + Headers/PTDiffusionTopicsFeature.h + + hash2 + + O/N4e3K4VGNsXRkcH+HRfPkayqJaHunzpinEW7gICeU= + + + Headers/PTDiffusionUpdateConstraint.h + + hash2 + + 7Zk0Kppo3shbAB5ANtfw5q13LdXwfOr9egJHcpZZmJo= + + + Headers/PTDiffusionUpdateStream.h + + hash2 + + FmGglpmZL0KdJMlw9r41qQY/BpdALvuiiAclQ961WQw= + + + Headers/PTDiffusionUpdateStreamBuilder.h + + hash2 + + SnJKtvSveD1LG7lOtN+js9VlM0+nG1JUGHq8pPDlJ1c= + + + Headers/PTDiffusionValueStream.h + + hash2 + + jltRdIfQ1M/rbV03jANn+F5kMjLxg8e17DeBMKCzggE= + + + Headers/PTDiffusionVersion.h + + hash2 + + REiwYO8DNVoVvpIWKjCPxN05ivkRw2uLsCAe/fjcTr0= + + + Modules/module.modulemap + + hash2 + + IOdf2zvMpEjPRyI0O/jRrRe4UhkqYb+0eyRNsRwyyZE= + + + error_descriptions.plist + + hash2 + + L6RBSUl8uDGQwDq+499ouBNekHDnpS9jh5pj8lFJe3U= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/error_descriptions.plist b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/error_descriptions.plist new file mode 100644 index 0000000..6dc5928 Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64/Diffusion.framework/error_descriptions.plist differ diff --git a/Sources/Diffusion.xcframework/ios-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist b/Sources/Diffusion.xcframework/ios-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000..8ad5404 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.- + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Sources/Diffusion.xcframework/ios-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion b/Sources/Diffusion.xcframework/ios-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion new file mode 100644 index 0000000..697bc92 Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Diffusion b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Diffusion deleted file mode 100755 index da004b0..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Diffusion and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/Diffusion.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/Diffusion.h deleted file mode 100644 index 675946c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/Diffusion.h +++ /dev/null @@ -1,210 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -/** - @file Diffusion.h - - Framework umbrella header file. - */ - -@import Foundation; - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusion.h deleted file mode 100644 index 27dfff5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusion.h +++ /dev/null @@ -1,99 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @file PTDiffusion.h - - Collection of utility functions - */ - -/** - Escapes special characters in a string that is to be used within a topic - property or a @ref md_session_filters "session filter". - - This is a convenience method which inserts an escape character `\` before any - of the special characters `'`, `"` or `\`. - - @param string The string to be escaped. - - @return The string value with escape characters inserted as appropriate. - - @exception NSInvalidArgumentException If the given string is `nil`. - - @since 6.1 - */ -NSString* PTDiffusionEscape(NSString * string); - -/** - Converts a string of the format required by the - PTDiffusionSession#rolesPropertyKey into a set of strings. - - @param string Quoted roles, separated by whitespace or commas. - - @param roles If successful, upon return contains the set of roles. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return An immutable set of roles. - - @since 6.2 - */ -BOOL PTDiffusionRolesFromString(NSString * string, NSSet *_Nullable *_Nonnull roles, NSError ** error); - -/** - Converts a set of authorisation roles to the string format required by the - PTDiffusionSession#rolesPropertyKey. - - @param roles The roles to format. - - @return A string representation of the supplied roles. - - @since 6.2 - */ -NSString* PTDiffusionStringFromRoles(NSSet * roles); - -/** - The value assigned to the `domain` property of NSError objects generated from - some methods in the Diffusion API. - - @since 6.2 - - @deprecated since 6.7 Error domains have been converged into PTDiffusion. - */ -extern NSString *const PTDiffusionErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - Values assigned to the `code` property of NSError objects generated from some - methods in the Diffusion API. - - @since 6.2 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionErrorCode) { - /** - The string supplied has been encoded incorrectly. - - @deprecated since 6.7 Use PTDiffusionError_MisquotedInput instead. - - @since 6.2 - */ - PTDiffusionErrorCode_MisquotedInput __deprecated_enum_msg("Use PTDiffusionError_MisquotedInput instead.") = 1, -}; - - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h deleted file mode 100644 index 738baf5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The result of adding a topic. - - @see PTDiffusionTopicControlFeature - - @since 6.1 - */ -@interface PTDiffusionAddTopicResult : PTDiffusionEnumeration - -/** - A new topic was created. - - @return Instance indicating a new topic was created. - - @since 6.1 - */ -+(instancetype)created; - -/** - A topic with the same specification already exists. - - @return Instance indicating a topic with the same specification - already exists. - - @since 6.1 - */ -+(instancetype)exists; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h deleted file mode 100644 index 6fbf6e3..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h +++ /dev/null @@ -1,49 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Provider of responses to basic authentication challenges from HTTP proxies. - - @see PTDiffusionHTTPProxyConfiguration - - @since 6.0 - */ -@interface PTDiffusionBasicHTTPProxyAuthentication : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Creates a basic HTTP Proxy authentication with the given username and password. - - @param username The username to respond with. - - @param password The password to respond with. - - @exception NSInvalidArgumentException If either username or password is `nil`. - - @return HTTP Proxy Authentication instance with the given username and password. - - @since 6.0 - */ --(instancetype)initWithUsername:(NSString *)username - password:(NSString *)password NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinary.h deleted file mode 100644 index 9e16384..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinary.h +++ /dev/null @@ -1,693 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionBinaryDelta; -@class PTDiffusionBinaryFetchResult; -@class PTDiffusionBinaryTimeSeriesQueryResult; -@class PTDiffusionBinaryUpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionResponse; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionBinaryRequestDelegate; -@protocol PTDiffusionBinaryRequestStreamDelegate; -@protocol PTDiffusionBinarySessionResponseStreamDelegate; -@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionBinaryValueStreamDelegate; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" - - -NS_ASSUME_NONNULL_BEGIN - - -/** - @brief An immutable binary value with support for binary deltas. - - @since 5.9 - */ -@interface PTDiffusionBinary : PTDiffusionBytes - -/** - Apply a binary delta to the receiver's binary value to create a new value. - - @param delta The delta describing the changes to be applied to the receiver's - value in order to create the value to be returned. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new binary value or `nil` if there was a failure when applying the - delta (e.g. either the delta is invalid). - - @exception NSInvalidArgumentException Raised if the delta argument is `nil`. - - @since 5.9 - */ --(nullable PTDiffusionBinary *)applyDelta:(PTDiffusionBinaryDelta *)delta - error:(NSError **)error; - -/** - Compare the receiver's binary value with another (e.g. an earlier version) to - create a binary delta. - - @param binary The original to which the delta should be able to be applied in - order to generate the value represented by the receiver. - - @return A binary delta representing the difference between binary and the - receiver. - - @exception NSInvalidArgumentException Raised if the binary argument is `nil`. - - @since 5.9 - */ --(PTDiffusionBinaryDelta *)diffFromBinary:(PTDiffusionBinary *)binary; - -/** - A request that can be used to send this value using messaging. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRequest* request; - -/** - A response that can be used to send this value using messaging. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionResponse* response; - -/** - An update constraint requiring the current value of a topic to match this - value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; - -/** - Creates a value stream capable of receiving binary values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -+(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving binary time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving Binary requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving Binary requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving Binary responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; - -/** - Compares the receiver to the given binary. - - @param binary The binary object with which to compare the receiver. - - @return `YES` if the data in binary is equal to the contents of the receiver, otherwise `NO`. - - @note Two binary objects are equal if they hold the same number of data bytes, and if the - bytes at the same position in the objects are the same. - - @since 5.9 - */ --(BOOL)isEqualToBinary:(nullable PTDiffusionBinary *)binary; - -@end - -/** - @brief Extension adding support for responding to requests using Binary values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionBinary) - -/** - Dispatch a response to a request. - - @param binary The value to send in response. - - @exception NSInvalidArgumentException Raised if the binary argument is `nil`. - - @since 6.0 - */ --(void)respondWithBinary:(PTDiffusionBinary *)binary; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a binary response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionBinary) - -/** - Send a request for which a binary response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a binary response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using binary values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionBinary) - -/** - Update a time series topic by appending a new binary value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - binaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - - -/** - Update a time series topic by appending a new binary value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - binaryValue:(PTDiffusionBinary *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new binary value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - binaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have binary values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - binaryCompletionHandler:(void (^)(PTDiffusionBinaryTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with Binary. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionBinary) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with Binary. - - The Binary data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as Binary will be - removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchBinaryValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionBinaryFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with binary values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionBinary) - -/** - Sets a topic to a specified binary value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toBinaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified binary value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toBinaryValue:(PTDiffusionBinary *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a binary value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toBinaryValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToBinaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a binary value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setTopicWithPath:toBinaryValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToBinaryValue:(PTDiffusionBinary *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Creates an update stream to use for updating a specific topic with binary - values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with binary - values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - binary values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - binary values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -NS_ASSUME_NONNULL_END - -#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h deleted file mode 100644 index 567dd0b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An immutable delta describing the differences between two binary values. - - A `diff` of two binary values creates a binary delta. The binary delta can - later `apply` to the first value to calculate the second value. - - @since 5.9 - */ -@interface PTDiffusionBinaryDelta : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Whether the two values used to create this instance are different. - - @since 5.9 - */ -@property(nonatomic, readonly, getter=hasChanges) BOOL changes; - -/** - Compares the receiver to the given binary delta. - - @param binaryDelta The binary delta object with which to compare the receiver. - - @return `YES` if the data in binary delta is equal to the contents of the receiver, otherwise `NO`. - - @note Two binary delta objects are equal if they carry the same information. - - @since 5.9 - */ --(BOOL)isEqualToBinaryDelta:(nullable PTDiffusionBinaryDelta *)binaryDelta; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h deleted file mode 100644 index 190d691..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinaryFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a binary fetch operation issued to the - server. - - A binary fetch operation is issued using the - PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionBinaryFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * binaryResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h deleted file mode 100644 index 1a8d760..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a binary fetch operation for a single - selected topic. - - A binary fetch operation is issued using the - PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionBinaryFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) PTDiffusionBinary* binary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h deleted file mode 100644 index 02b00df..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Binary messaging requests with a - handler registered at the server. - - @see PTDiffusionBinary - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionBinaryRequestDelegate - -/** - Called when a Binary request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param binary The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithBinary:(PTDiffusionBinary *)binary - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h deleted file mode 100644 index 8ec00d2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Binary messaging requests. - - @see PTDiffusionBinary - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionBinaryRequestStreamDelegate - -/** - Called when a Binary request has been received. - - @param stream The stream that received the request. - - @param binary The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithBinary:(PTDiffusionBinary *)binary - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h deleted file mode 100644 index 67c6393..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Binary messaging responses from - individual sessions. - - @see PTDiffusionBinary - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionBinarySessionResponseStreamDelegate - -/** - Called when a session responds to a request with a Binary. - - @param stream The stream that received the response. - - @param binary The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithBinary:(PTDiffusionBinary *)binary - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h deleted file mode 100644 index e32a8ce..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as Binary. - - @since 6.0 - */ -@interface PTDiffusionBinaryTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The binary value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionBinary* binary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index bd71fad..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinaryTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - binary values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with binary values. - - @since 6.0 - */ -@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldBinaryEvent The previous event. If `nil` then this is the first event. - - @param newBinaryEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldBinaryEvent:(nullable PTDiffusionBinaryTimeSeriesEvent *)oldBinaryEvent - newBinaryEvent:(PTDiffusionBinaryTimeSeriesEvent *)newBinaryEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h deleted file mode 100644 index 1394647..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinaryTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of binary time series events. - - @since 6.0 - */ -@interface PTDiffusionBinaryTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The binary time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* binaryEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h deleted file mode 100644 index 3d207c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - binary values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionBinaryUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionBinary* value; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either value or completionHandler is - `nil`. - - @since 6.3 - */ --(BOOL) setValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h deleted file mode 100644 index 7ff6e28..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for binary - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for binary - topics. - - @see PTDiffusionBinary - - @since 5.9 - */ -@protocol PTDiffusionBinaryValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldBinary The previous value. If `nil` then this is the first value. - - @param newBinary The new value derived from the last update received from the - server. - - @since 5.9 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldBinary:(nullable PTDiffusionBinary *)oldBinary - newBinary:(PTDiffusionBinary *)newBinary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMapping.h deleted file mode 100644 index 406a862..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMapping.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session tree branch mapping. - - Branch mappings belong to {@link PTDiffusionBranchMappingTable branch mapping tables}. - Each branch mapping is a pair of a {@link PTDiffusionSession session filter} and the - target topic tree branch that applies to sessions matching the filter. - - @see PTDiffusionSessionTreesFeature - - @since 6.7 - */ -@interface PTDiffusionBranchMapping : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The session filter. - */ -@property (nonatomic, readonly) NSString *sessionFilter; - -/** - The target branch in the topic tree for sessions matching the session filter - */ -@property (nonatomic, readonly) NSString *topicTreeBranch; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h deleted file mode 100644 index 3f3135e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionBranchMapping; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session tree branch mapping table. - - A branch mapping table is a list of {@link PTDiffusionBranchMapping branch mappings} - assigned to a session tree branch - - To create a branch mapping table, obtain a new a builder instance using - {@link PTDiffusionBranchMappingTableBuilder}, call - {@link PTDiffusionBranchMappingTableBuilder#addBranchMappingWithSessionFilter:targetPath: - addBranchMapping} for each branch mapping, then - {@link PTDiffusionBranchMappingTableBuilder#createTableForSessionTreeBranch: createTable}. - The result can then be sent to the server using - {@link PTDiffusionSessionTreesFeature#putBranchMappingTable: putBranchMappingTable} - - @see PTDiffusionSessionTreesFeature - - @since 6.7 - */ -@interface PTDiffusionBranchMappingTable : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The branch of the session tree to which this table is bound - */ -@property (nonatomic, readonly) NSString *sessionTreeBranch; - -/** - The branch mappings - */ -@property (nonatomic, readonly) NSArray *branchMappings; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h deleted file mode 100644 index ac7d9e9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h +++ /dev/null @@ -1,68 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionBranchMappingTable; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Builder for {@link PTDiffusionBranchMappingTable} instances. - - @see PTDiffusionSessionTrees - - @since 6.7 - */ -@interface PTDiffusionBranchMappingTableBuilder : NSObject - - -+(instancetype)new; - --(instancetype)init; - - -/** - @brief Resets the builder. - - @return the builder - */ --(instancetype)reset; - - -/** - @brief Add a new branch mapping. - - @param sessionFilter the session filter - - @param topicTreeBranch the target branch in the topic tree for sessions - matching the session filter - - @return the builder - */ --(instancetype)addBranchMappingWithSessionFilter:(NSString *const)sessionFilter - topicTreeBranch:(NSString *const)topicTreeBranch; - - -/** - @brief Create a new {@link PTDiffusionBranchMappingTable}. - - @param sessionTreeBranch the session tree branch - - @return a branch mapping table - */ --(PTDiffusionBranchMappingTable *) createTableForSessionTreeBranch:(NSString *const)sessionTreeBranch; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBytes.h deleted file mode 100644 index feafd5b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionBytes.h +++ /dev/null @@ -1,66 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A value that is internally represented as binary data. - - A bytes object is immutable. - - @since 5.9 - */ -@interface PTDiffusionBytes : NSObject - -/** - Returns a bytes object initialized with the given data. - - @param data A data object encapsulating the bytes. - - @return Bytes object initialized with the given data. - - @note Since Diffusion 5.9 this method has been moved from PTDiffusionContent - to this new super interface. - - @since 5.9 - */ --(instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER; - -/** - The data encapsulated by the receiver. - - @note Since Diffusion 5.9 this property has been moved from PTDiffusionContent - to this new super interface. - - @since 5.9 - */ -@property(nonatomic, readonly, copy) NSData* data; - -/** - Compares the receiver to the given bytes. - - @param bytes The bytes object with which to compare the receiver. - - @return `YES` if the bytes are equal to the contents of the receiver, otherwise `NO`. - - @note Two bytes objects are equal if they hold the same number of bytes, and if the - bytes at the same position in the objects are the same. - - @since 5.9 - */ --(BOOL)isEqualToBytes:(nullable PTDiffusionBytes *)bytes; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCancellable.h deleted file mode 100644 index 527527e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCancellable.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A cancellable handle to an asynchronous operation. - - @since 6.3 - */ -@protocol PTDiffusionCancellable - -/** - Attempts to cancel execution of the operation. Does nothing if the operation - has already completed, has already been cancelled, or could not be cancelled - for some other reason. - - @return If this attempt to cancel the operation was viable then `YES`, or if it - did nothing then `NO`. - - @since 6.3 - */ --(BOOL)cancel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h deleted file mode 100644 index e948368..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRemoteServer; -@class PTDiffusionRemoteServerConnectionState; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Interface for the result of checking the state - of a remote server - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionCheckRemoteServerResult : NSObject - - -/** - The remote server's connection state - - @since 6.5 - */ -@property (nonatomic, readonly) PTDiffusionRemoteServerConnectionState *state; - - -/** - Message from the server if the connection state for - the specified remote server is `failed` or `retrying`. - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *failureMessage; - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h deleted file mode 100644 index 3b85b3d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h +++ /dev/null @@ -1,388 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@protocol PTDiffusionSessionPropertiesDelegate; -@protocol PTDiffusionClientQueueEventListener; - -@class PTDiffusionSessionPropertiesListenerRegistration; -@class PTDiffusionRegistration; -@class PTDiffusionGetSessionPropertiesResult; -@class PTDiffusionSetSessionPropertiesResult; -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Client Control feature provides the ability for a client session - to control other client sessions. - - It allows for notifications of client sessions starting and closing as well - as the ability to manage client sessions (forcibly closing them etc). - - - ### Access control - - A session must have `PTDiffusionGlobalPermission#viewSession` permission to be able - to listen for notifications using `#addSessionPropertiesListener:forProperties:completionHandler:` - or `#getSessionProperties:forSession:completionHandler:` of other sessions - or listen for queue events. In addition, `PTDiffusionGlobalPermission#registerHandler` - permission is required to set a session properties listener or queue event handler. - - In order to perform operations that change a session's state (such as throttling, - conflating, or closing the session, or changing roles), both - `PTDiffusionGlobalPermission#viewSession` and PTDiffusionGlobalPermission#modifySession` - permission is required. - - - ### Accessing the feature - - This feature may be obtained from a `PTDiffusionSession` session as follows: -
-    
-        PTDiffusionClientControlFeature *clientControl = session.clientControl;
-    
- 
- - @since 6.5 - */ -@interface PTDiffusionClientControlFeature : PTDiffusionFeature - - -/** - @brief Register a listener that will be notified when client sessions are - opened, disconnected, reconnected, closed or when selected session - property values are updated. - - When a listener is first set, it will be called with the required - properties of all currently open client sessions. - The amount of data transferred from the server is proportional to - the number of connected clients and is potentially large. - The amount of data can be reduced using `requiredProperties` parameter. - - Each control session can register a single listener. When the listener is - no longer required, it may be closed using the - PTDiffusionSessionPropertiesListenerRegistration provided by the `completionHandler`. - To change the listener, the previous listener must first be closed. - - The `requiredProperties` parameter is used to select the property - values required. - - The requested property set controls the level of detail provided and - whether the listener is called for updates to sessions. - If no properties are requested, the listener is not called when - session properties are updated. - - @param listener the listener to be called with session notifications - - @param requiredProperties a list of required property keys. - See `PTDiffusionSession` for a full list of available fixed property keys. - To request no properties, supply an empty list. - To request all fixed properties, include - `PTDiffusionSession.allFixedProperties` as an entry. - In this case any other fixed property keys would be ignored. - To request all user properties, include - `PTDiffusionSession.allUserProperties` as an entry. - In this case any other user properties are ignored. - - @param completionHandler a completion handler than returns when the listener - has been registered, returning a `PTDiffusionSessionPropertiesListenerRegistration` - which can be used to unregister the listener. - - If the `registration` is nil. This could mean an error has occurred during the - registration process. These may include: - - SessionClosed, if the session is closed - - HandlerConflict, if the session has already registered a queue event handler - - Security, if the session does not have - `PTDiffusionGlobalPermission.registerHandler` permission and/or - `PTDiffusionGlobalPermission.viewSession` permission. - - @since 6.5 - */ --(void)addSessionPropertiesListener:(id) listener - forProperties:(NSArray *) requiredProperties - completionHandler:(void (^)(PTDiffusionSessionPropertiesListenerRegistration * _Nullable registration, - NSError * _Nullable error)) completionHandler; - - -/** - @brief Query the server for property values of a specified client session. - - @param requiredProperties a list of required property keys. - See `PTDiffusionSession` for a full list of available fixed property keys. - To request no properties, supply an empty list. - To request all fixed properties, include `PTDiffusionSession.allFixedProperties` - as a key. - In this case any other fixed property keys would be ignored. - To request all user properties, include `PTDiffusionSession.allUserProperties` - as a key. - In this case any other user properties are ignored. - - @param sessionId identifies the client session - - @param completionHandler called with the response - - @since 6.5 - */ --(void) getSessionProperties:(NSArray *) requiredProperties - forSession:(PTDiffusionSessionId *) sessionId - completionHandler:(void (^)(PTDiffusionGetSessionPropertiesResult * _Nullable result, - NSError * _Nullable error)) completionHandler; - - - -/** - @brief Send a request to the server to change the user-defined session - properties for a session. - - It is also permissible to change the values of the following fixed session - properties : - - - `$Country` - will be normalised to upper case - - `$Language` - will be normalised to lower case - - `$Latitude` - Invalid value will be set to "NaN" - - `$Longitude` - Invalid value will be set to "NaN" - - If values are provided for any other fixed session properties they will be ignored. - - @param properties the properties to change. Each entry in the map is a - property name and the new value. - If the value is `[NSNull null]`, any existing property with - that name will be removed (unless it is a fixed property). - Otherwise if the property name does not match any existing property, - that entry will be added as a new property (although properties starting - with `$` will be ignored). - - @param sessionId identifies the client session - - @param completionHandler a completion handler that is called when a response is received - from the server, returning the maps of session properties that were added - or updated. - - If the session properties were updated, the `result` will contain a map of - properties that changed with their previous values. - If no properties were changed, the map will be empty. - If any new properties were added, the values in the map will be `[NSNull null]` - to indicate that they do not have an old value. - - Otherwise, the `error` will contain an error. - Common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.5 - */ --(void) setSessionProperties:(NSDictionary*) properties - forSession:(PTDiffusionSessionId *) sessionId - completionHandler:(void (^)(PTDiffusionSetSessionPropertiesResult * _Nullable result, - NSError * _Nullable error)) completionHandler; - - - -/** - @brief Send a request to the server to set all sessions that satisfy a session - filter with the new user-defined session properties. - - It is also permissible to change the values of the following fixed session - properties : - - - `$Country` - will be normalised to upper case - - `$Language` - will be normalised to lower case - - `$Latitude` - Invalid value will be set to "NaN" - - `$Longitude` - Invalid value will be set to "NaN" - - If values are provided for any other fixed session properties they will be ignored. - - @param properties the properties to change. - Each entry in the map is a property name and the new value. - If the value is `[NSNull null]`, any existing property with - that name will be removed (unless it is a fixed property). - Otherwise if the property name does not match any existing property, - that entry will be added as a new property (although properties starting - with `$` will be ignored). - - @param filter the session filter - - @param completionHandler a completion handler that is called when a response is received - from the server, returning the total number of sessions that were updated with - the filter. - - If `matches` is 0, the filter has not selected any session - If `matches` is -1, an `error` has occurred. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.5 - */ --(void) setSessionProperties:(NSDictionary *) properties - usingFilter:(NSString *) filter - completionHandler:(void (^)(NSInteger matches, - NSError * _Nullable error)) completionHandler; - - -/** - @brief Close a client session. - - @param sessionId identifies the client session to close - - @param completionHandler a completion handler that is called then a response is received - from the server. - If the client session was closed successfully, the `error` will be nil - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)closeClientWithSessionId:(PTDiffusionSessionId *) sessionId - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - @brief Close all client sessions matching a given session filter. - - @param filter matches the set of client sessions to close. For details on - specifying session filters see `PTDiffusionSession`. - - @param completionHandler a completion handler that is called then a response is received - from the server. - If the operation is successful, `closedSessions` will contain the number of client - sessions that were closed and `error` will be nil. - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)closeClientWithFilter:(NSString *)filter - completionHandler:(void (^)(NSInteger closedSessions, NSError * _Nullable error)) completionHandler; - - -/** - @brief Sets the client session queue conflation policy. - - Each session begins with conflation enabled or disabled based on the - queue configuration of the connector it is using. This method allows - conflation to be enabled or disabled for specific sessions at runtime. - - Conflation is the process of merging or discarding topic updates queued - for a session to reduce the server memory footprint and network data. - Conflation needs to be enabled for a session and a policy configured for - the topic to have an effect. Policies are configured on a per-topic - basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. - - @param conflate `true` to enable conflation, `false` to disable conflation - - @param sessionId identifies the client session - - @param completionHandler a completion handler that is called when a response is received - from the server. If the conflation policy was updated for the identified session, - the error will be `nil`. - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)setQueueConflation:(BOOL)conflate forSession:(PTDiffusionSessionId *)sessionId - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - @brief Sets the queue conflation policy for all client sessions - matching a given session filter. - - Each session begins with conflation enabled or disabled based on the - queue configuration of the connector it is using. This method allows - conflation to be enabled or disabled for specific sessions at runtime. - - Conflation is the process of merging or discarding topic updates queued - for a session to reduce the server memory footprint and network data. - Conflation needs to be enabled for a session and a policy configured for - the topic to have an effect. Policies are configured on a per-topic - basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. - - @param conflate `true` to enable conflation, `false` to disable conflation - - @param filter matches the set of client sessions to close. For details on - specifying session filters see `PTDiffusionSession`. - - @param completionHandler a completion handler that is called when a response is received - from the server. If the conflation policy was updated for the identified session, - the error will be `nil`. - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)setQueueConflation:(BOOL)conflate withFilter:(NSString *)filter - completionHandler:(void (^)(NSInteger matchedSessions, NSError * _Nullable error)) completionHandler; - - -/** - @brief Register a delegate for client queue threshold events - - Each control session can register a single handler. When the handler is - no longer required, it may be closed using the `PTDiffusionRegistration` - provided by the completion handler. To set a different handler the - current handler must first be closed. For each event, the server will - select a single handler. - - The control session may choose to act upon queue events for a session by - activating conflation for the session. - - @param listener the queue handler listener to set - - @param completionHandler a completion handler than returns when the listener - has been registered, returning a `PTDiffusionRegistration` - which can be used to unregister the listener. - - If the `registration` is nil. This could mean an error has occurred during the - registration process. These may include: - - SessionClosed, if the session is closed - - HandlerConflict, if the session has already registered a queue event handler - - Security, if the session does not have - `PTDiffusionGlobalPermission.registerHandler` permission and/or - `PTDiffusionGlobalPermission.viewSession` permission. - - @since 6.6 - */ --(void)setQueueEventHandler:(id)listener - completionHandler:(void (^)(PTDiffusionRegistration *registration, NSError * _Nullable error)) completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h deleted file mode 100644 index 241997f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h +++ /dev/null @@ -1,77 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRegistration; -@class PTDiffusionClientQueuePolicy; -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Listener for client message queue events from the server. - - @see PTDiffusionClientControlFeature - - @since 6.6 - */ -@protocol PTDiffusionClientQueueEventListener - - -/** - Called when the message queue policy changes - - @param registration The message queue event listener registration for which this listener applies - - @param policy The new message queue policy for the session - - @param sessionId The session ID of the affected session - - @since 6.6 - */ --(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration - didReportPolicyChange:(PTDiffusionClientQueuePolicy *)policy - forSession:(PTDiffusionSessionId *)sessionId; - - -/** - Called if the handler is closed. - - No further calls will be made to this handler. - - @param registration The message queue event listener registration for which this listener applies - - @since 6.6 - */ --(void)diffusionQueueEventListenerRegistrationDidClose:(PTDiffusionRegistration *)registration; - - - -/** - Called in the event of a contextual error relating to this handler. - - No further calls will be made to this handler. - - @param registration The message queue event listener registration for which this listener applies. - - @param error The failure reason. - - @since 6.6 - */ --(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration - didFailWithError:(NSError *)error; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h deleted file mode 100644 index 176762c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h +++ /dev/null @@ -1,40 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Policy for managing a client message queue. - - Conflation can be enabled or disabled. - - @since 6.6 - */ -@interface PTDiffusionClientQueuePolicy: NSObject - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @return `YES` is conflation is enabled. - - @since 6.6 - */ --(BOOL) isConflated; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCloseReason.h deleted file mode 100644 index 0b40936..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCloseReason.h +++ /dev/null @@ -1,252 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Specifies the reason why a session has been closed - - This is used by the Client Control feature - - @since 6.5 - */ -@interface PTDiffusionCloseReason : PTDiffusionEnumeration - - -/** - The connection to the client was lost - possibly dropped by the - client. Recoverable. - - A client may be closed for many reasons that are presented as - CONNECTION_LOST. - - During a connection attempt, the connection can be lost. - The server might have received a connection or reconnection request - from a client already connected. - The server might have received a reconnection request without - a session Id. - The connection may not have been authorised because the credentials - are wrong. - The maximum number of clients might already be connected. - - Once connected, the connection can be lost for different reasons. - If the client closes its connection while the server is writing a - message to the client. With the chunked encoding based connection the - HTTP response is completed by the server. - If the client does not open a new request within a timeout, - the client will be closed. - If a poll request times out and the server finds that the connection - has already been closed by the client. - - @return Instance indicating the connection to the client was lost. - - @since 6.5 - */ -+(instancetype)connectionLost; - - -/** - An unexpected IO Exception occurred. Recoverable. - - While trying to perform an I/O operation an exception was generated. - This often means that a read was attempted from a closed TCP - connection. - - When handling SSL connections if there is a problem encrypting or - decrypting a message the client will be closed for this reason. - - @return Instance indicating an unexpected IO Exception occurred. - - @since 6.5 - */ -+(instancetype)ioException; - - -/** - The client had become unresponsive. - - The client has either failed to respond to a ping message in a timely - manner or the client has failed to open an HTTP poll for messages. - The client does not appear to be receiving messages. - - @return Instance indicating the client has become unresponsive. - - @since 6.5 - */ -+(instancetype)clientUnresponsive; - - -/** - The maximum outbound queue size was reached for the client. Not - recoverable. - - Messages sent to the client are placed in a queue. This queue has a - maximum allowed size. If the queue limit is reached the client is - closed and the queue discarded. The queue is intended to protect - against slow consumers, reaching the queue limit is taken to mean - that the client cannot keep up with the number of messages sent to - it. - - @return Instance indicating the maximum outbound queue size was reached - for the client. - - @since 6.5 - */ -+(instancetype)messageQueueLimitReached; - - -/** - The client requested close. Not recoverable. - - @return Instance indicating the client requested close. - - @since 6.5 - */ -+(instancetype)closedByClient; - -/** - The client sent a message that exceeded the maximum message size that - can be processed by the server. - - The server has a maximum message size that it can process on any - single connector. If a client sends a message larger than this the - server is unable to process it. When this happens the message is - discarded and the client is closed. - - @return Instance indicating the client send a message that exceeded the - server maximum message size. - - @since 6.5 - */ -+(instancetype)messageTooLarge; - - -/** - An internal error occurred. - - @return Instance indicating an internal error has occurred. - - @since 6.5 - */ -+(instancetype)internalError; - - -/** - An inbound message with an invalid format was received. - - A message received by the server is not a valid Diffusion message. - The server is unable to process this and closes the client that sent - it. - - @return Instance indicating an inbound message with an invalid format - was received. - - @since 6.5 - */ -+(instancetype)invalidInboundMessage; - - -/** - The client connection was aborted by the server, possibly because the - connection was disallowed. - - This is may be because the connection was disallowed. - Abort messages are also sent to clients that have unrecognised - client IDs. This may be because the server closed the client previously - but the client is unaware of this and tried to continue interacting - with the server. - - @return Instance indicating the client connection was aborted by - the server. - - @since 6.5 - */ -+(instancetype)aborted; - - -/** - Loss of messages from the client has been detected. - - For example, whilst waiting for the arrival of missing messages in - a sequence of messages a timeout has occurred. - - HTTP based transports use multiple TCP connections. This can cause - the messages to be received out of order. To reorder the messages - those sent to the server may contain a sequence number indicating the - correct order. - - If a message is received out of order there is a short time for the - earlier messages to be received. If the messages are not received in - this time the client is closed. - - Missing, invalid or duplicate sequence numbers will also close the - client for this reason. - - This cannot be recovered from as the client and the server are in - inconsistent states. - - @return Instance indicating loss of messages from the client - has been detected. - - @since 6.5 - */ -+(instancetype)lostMessages; - - -/** - The server is closing down. - - The client was closed as part of the server shutdown process. - - @return Instance indicating the server is closing down. - - @deprecated since 6.6 and will be removed in a future release. - - @since 6.5 - */ -+(instancetype)serverClosing __deprecated_msg("Will be removed in a future release"); - - -/** - Closed by a client session. - - A control session initiated the client close. - - @return Instance indicating the sessiion was closed by another - client session. - - @since 6.5 - */ -+(instancetype)closedByController; - - -/** - The session has failed over to a different Diffusion server. - - The session is still open but is now connected to a different - Diffusion server. This server has evicted its view of the session - from its set of local sessions. - - @return Instance indicating the session has failed over to a - different Diffusion server. - - @since 6.5 - */ -+(instancetype)failedOver; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h deleted file mode 100644 index 70a70ad..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRemoteServer; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Interface for the result from the creation of a remote server. - - This is used by the Remote Servers feature. - - @since 6.5 - */ -@interface PTDiffusionCreateRemoteServerResult : NSObject - - -/** - The remote server. - - @since 6.5 - */ -@property (nonatomic, readonly) PTDiffusionRemoteServer *remoteServer; - - -/** - Whether the response successfully creates a remote server or not. - - @since 6.5 - */ -@property (nonatomic, readonly, getter=isSuccess) BOOL success; - - -/** - The list of errors resulting from attempting to create a remote server. - - @since 6.5 - */ -@property (nonatomic, readonly) NSArray *errors; - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCredentials.h deleted file mode 100644 index c8448d9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionCredentials.h +++ /dev/null @@ -1,82 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Credentials contain the proof material to support an authentication request. - - The server passes the credentials through to the configured authentication - handlers for interpretation. - - A credentials object is immutable. - - @see PTDiffusionSessionConfiguration - - @since 5.6 - */ -@interface PTDiffusionCredentials : NSObject - -/** - Returns a credentials object initialized with the given plain-text password to use as proof material. - - @param password The plain-text password to authenticate with. - - @return Credentials instance initialized with the given plain-text password. - - @since 5.6 - */ --(instancetype)initWithPassword:(NSString *)password; - -/** - Returns a credentials object initialized with the given custom data to use as proof material. - - @param data The application-specific, custom credentials to authenticate with. - - @return Credentials instance initialized with the given custom data. - - @since 5.6 - */ --(instancetype)initWithData:(NSData *)data; - -/** - Returns a credentials object initialized with an empty type and password. - - @return Credentials objects initialized with an empty type and password. - - @since 6.5 - */ -+(instancetype)noCredentials; - -/** - The data defining the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly) NSData *data; - -/** - Compares the receiver to the given credentials. - - @param credentials The credentials object with which to compare the receiver. - - @return `YES` if the receiver and the given credentials have the same type and data. - - @since 5.6 - */ --(BOOL)isEqualToCredentials:(nullable PTDiffusionCredentials *)credentials; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDataType.h deleted file mode 100644 index a82451c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDataType.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes providing data type implementations. - - A data type is specified for a particular class (its value class). It provides - methods to convert values of the value class to and from binary. Diffusion - provides several data type implementations. - - A data type can optionally support incremental changes to values, represented - by one or more types of delta. - - @see PTDiffusionDataTypes - - @since 6.0 - */ -@protocol PTDiffusionDataType - -/** - The unique external identifier for this data type. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* typeName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDataTypes.h deleted file mode 100644 index c3709e0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDataTypes.h +++ /dev/null @@ -1,118 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionDataType; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Diffusion data type implementations. - - @since 6.0 - */ -@interface PTDiffusionDataTypes : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Data type that supports arbitrary binary data. - - @see PTDiffusionBinary - - @return Data type that supports arbitrary binary data. - - @since 6.0 - */ -+(id)binary; - -/** - Data type that supports double-precision floating point numbers (Eight-byte - IEEE 754) presented as `NSNumber` instances. - - The integer value is serialized as CBOR-format binary. A serialized value can - be read using the #json datatype. - - This data type does not support binary deltas but does support `nil` values. - - @return Data type that supports double-precision floating point numbers. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -+(id)doubleFloat; - -/** - Data type that supports 64-bit, signed integer values presented as `NSNumber` - instances. - - The integer value is serialized as CBOR-format binary. A serialized value can - be read using the #json datatype. - - This data type does not support binary deltas but does support `nil` values. - - @return Data type that supports 64-bit, signed integer values. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -+(id)int64; - -/** - Data type that supports JSON "JavaScript Object Notation", a lightweight - data-interchange format, serialized as CBOR-format binary. - - @return Data type that supports JSON values. - - @see PTDiffusionJSON - - @since 6.0 - */ -+(id)json; - -/** - Data type that supports string values presented as `NSString` instances. - - The string value is serialized as CBOR-format binary. A serialized value can be - read using the #json datatype. - - This data type supports binary deltas and `nil` values. - - @return Data type that supports string values. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -+(id)string; - -/** - Data type that supports data in the form of records and fields. - - This data type supports binary deltas but does not support `nil` values. - - @return Data type that supports data in the form of records and fields. - - @see PTDiffusionRecordV2 - - @since 6.0 - */ -+(id)recordV2; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h deleted file mode 100644 index 888f576..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received error messages at PTDiffusionLoggingLevel::warn level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultSessionResponseStreamDelegate : PTDiffusionDefaultStreamDelegate - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h deleted file mode 100644 index 5c0b787..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received closure messages at PTDiffusionLoggingLevel::debug level and - error messages at PTDiffusionLoggingLevel::warn level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultStreamDelegate : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h deleted file mode 100644 index ac5f160..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received messages at PTDiffusionLoggingLevel::debug level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultSubscriberStreamDelegate : PTDiffusionDefaultStreamDelegate - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h deleted file mode 100644 index 4705af9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received messages at PTDiffusionLoggingLevel::debug level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultTopicNotificationListener : PTDiffusionDefaultStreamDelegate - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h deleted file mode 100644 index 07b78b1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received closure messages at PTDiffusionLoggingLevel::debug level and - error messages at PTDiffusionLoggingLevel::warn level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultTopicTreeRegistrationDelegate : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionEnumeration.h deleted file mode 100644 index b9c0b4a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionEnumeration.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Base class for objects offering a selection of predefined constant values. - - Classes inheriting from this class share more in common with Java's `enum` type than - they do with C's `enum` (even using Core Foundation's `NS_ENUM` macro) in that they - are object-based. Benefits of this include: - - - Ability to use `nil` in a meaningful way - e.g. to indicate 'not set'. - - Standard `description` method to aid logging clarity during debug sessions. - - Extensible to include additional properties. - - @since 5.7 - */ -@interface PTDiffusionEnumeration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns the constant values offered by this enumeration. - - @return the constant values offered by this enumeration. - - @since 5.7 - */ -+(NSSet *)elements; - -/** - Compares the receiver to the given enumeration. - - @param enumeration The enumeration object with which to compare the receiver. - - @return `YES` if the enumeration is equal to the receiver, otherwise `NO`. - - @since 5.7 - */ --(BOOL)isEqualToEnumeration:(nullable PTDiffusionEnumeration *)enumeration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionError.h deleted file mode 100644 index fa3029f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionError.h +++ /dev/null @@ -1,1153 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - Key used in the `userInfo` dictionary of an array of NSError objects, having - the potential to convey more than one error encountered by an underlying - implementation. - - The associated value is an array of one or more NSError objects. - - @since 6.0 - */ -extern NSString *const PTDiffusionUnderlyingErrorsKey; - - -/** - @file PTDiffusionError.h - - Collection of errors that can be raised by the Apple Client SDK. - - Errors with values from 100 to 501 originate from the Diffusion server. - Remaining errors are unique to the Diffusion Apple Client SDK. - - @since 6.7 - */ -typedef NS_ENUM(NSInteger, PTDiffusionError) { - /** - * Communication with the server failed. - */ - PTDiffusionError_CommunicationFailure = 100, - - /** - * Communication with the server failed because the session is closed. - */ - PTDiffusionError_SessionClosed = 101, - - /** - * Communication with the server failed due to a service request timeout. - */ - PTDiffusionError_RequestTimeOut = 102, - - /** - * The request was rejected because the used principal has insufficient permissions. - */ - PTDiffusionError_AccessDenied = 103, - - /** - * The request was rejected because the requested service is unsupported for this client. - * @since 5.9 - */ - PTDiffusionError_Unsupported = 104, - - /** - * An application callback threw an exception. Check logs for more information. - * @since 5.9 - */ - PTDiffusionError_CallbackException = 105, - - /** - * An operation failed because invalid data was received. - * @since 6.0 - */ - PTDiffusionError_InvalidData = 106, - - /** - * The session does not exist on the server. - * @since 6.0 - */ - PTDiffusionError_NoSuchSession = 107, - - /** - * A datatype operation has failed due to incompatibility. - * @since 6.0 - */ - PTDiffusionError_IncompatibleDataType = 108, - - /** - * A message was not handled by the server. - * @since 6.0 - */ - PTDiffusionError_UnhandledMessage = 109, - - /** - * The cluster was repartitioning and the request could not be routed. - * @since 6.0 - */ - PTDiffusionError_ClusterRepartition = 110, - - /** - * A topic update could not be performed because the topic is managed by a component which prohibits external updates. - * @since 6.0 - */ - PTDiffusionError_IncompatibleState = 111, - - /** - * The cluster operation could not be routed. - * @since 6.0 - */ - PTDiffusionError_ClusterRouting = 112, - - /** - * A conflicting registration exists on the same branch of the topic tree. - * @since 6.5 - */ - PTDiffusionError_TopicTreeRegistrationConflict = 200, - - /** - * A conflicting registration exists. - */ - PTDiffusionError_HandlerConflict = 201, - - /** - * An invalid path was supplied. - */ - PTDiffusionError_InvalidPath = 202, - - /** - * Incompatible update. - */ - PTDiffusionError_IncompatibleUpdate = 500, - - /** - * Topic update failed. - */ - PTDiffusionError_UpdateFailed = 501, - - /** - * No topic was found. - */ - PTDiffusionError_NoSuchTopic = 9000, - - /** - * Topic is not a time series topic. - */ - PTDiffusionError_TopicIsNotTimeSeries = 9001, - - /** - * No times series event was found. - */ - PTDiffusionError_NoSuchEvent = 9002, - - /** - * A request has been rejected. - */ - PTDiffusionError_RejectedRequest = 9003, - - /** - * A topic could not be added because one already exists with a different specification. - */ - PTDiffusionError_TopicExistsMismatch = 9004, - - /** - * A topic could not be added because an invalid path was specified. - */ - PTDiffusionError_InvalidTopicPath = 9005, - - /** - * A topic could not be added because an invalid specification was supplied. - */ - PTDiffusionError_InvalidTopicSpecification = 9006, - - /** - * A topic could not be added because the topic would breach a licensing limit. - */ - PTDiffusionError_TopicLicenseLimit = 9007, - - /** - * A topic could not be added because an incompatible topic already exists at the specified path. - */ - PTDiffusionError_IncompatibleTopicExists = 9010, - - /** - * An unexpected error occurred when creating a topic. - */ - PTDiffusionError_UnexpectedTopicAddFailure = 9011, - - /** - * The topic update failed because the constraint was not satisfied. - */ - PTDiffusionError_UnsatisfiedConstraint = 9012, - - /** - * The topic update failed because the update stream is no longer valid. - */ - PTDiffusionError_InvalidUpdateStream = 9013, - - /** - * Parsing the JSON patch failed. - */ - PTDiffusionError_InvalidJsonPatch = 9014, - - /** - * The JSON patch failed to apply. This happens when attempting to parse an illegal CBOR value. - */ - PTDiffusionError_ApplyPatchFail = 9015, - - /** - * A remote server with the specified name already exists. - */ - PTDiffusionError_RemoteServerExists = 9016, - - /** - * An invalid branch mapping was supplied. - * @since 6.7 - */ - PTDiffusionError_InvalidBranchMappings = 9017, - - /** - * Overflow occurred during a function. - * @since 6.7 - */ - PTDiffusionError_Overflow = 20001, - - /** - * Error while deserializing information. - * @since 6.7 - */ - PTDiffusionError_DeserialisationError = 20002, - - /** - * Unexpected class detected when setting session properties. - * @since 6.7 - */ - PTDiffusionError_UnknownValueType = 20003, - - /** - * Unexpected value detected when setting session properties. - * @since 6.7 - */ - PTDiffusionError_UnexpectedValue = 20004, - - /** - * Invalid session filter. - * @since 6.7 - */ - PTDiffusionError_InvalidFilter = 20005, - - /** - * Unexpected encoding detected while deserialising data. - * @since 6.7 - */ - PTDiffusionError_UnknownEncoding = 20006, - - /** - * Unexpected value detected for enumeration in question. - * @since 6.7 - */ - PTDiffusionError_ValueNotInEnumeration = 20007, - - /** - * Error while serialising message from the transport layer. - * @since 6.7 - */ - PTDiffusionError_MessageSerialisationFailed = 20008, - - /** - * JSON cannot be encoded as JSON string due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_StringWillNotEncodeToUTF8Losslessly = 20009, - - /** - * Unable to read value as CBOR is empty. - * @since 6.7 - */ - PTDiffusionError_EmptyCBOR = 20010, - - /** - * Unhandled CBOR operation. - * @since 6.7 - */ - PTDiffusionError_UnhandledCBOR = 20011, - - /** - * Value has been read multiple times. - * @since 6.7 - */ - PTDiffusionError_SetReadValueCalledMultipleTimes = 20012, - - /** - * Unable to authenticate the principal, in the context of changing principal for the current session. - * @since 6.7 - */ - PTDiffusionError_AuthenticationFailure = 20013, - - /** - * An internal error occurred that prevented the session from creating the transport layer. - * @since 6.7 - */ - PTDiffusionError_SessionFailedToCreateTransport = 20014, - - /** - * Session has been closed by the transport layer. - * @since 6.7 - */ - PTDiffusionError_SessionClosedByTransport = 20015, - - /** - * Connection has been aborted by the reconnection strategy. - * @since 6.7 - */ - PTDiffusionError_ConnectionAbortedByReconnectionStrategy = 20016, - - /** - * Session has been closed due to inactivity. - * @since 6.7 - */ - PTDiffusionError_SessionClosedDueToInactivity = 20017, - - /** - * The received message type is not supported for routing. - * @since 6.7 - */ - PTDiffusionError_MessageTypeNotSupportedForRouting = 20018, - - /** - * Conversation ID was not found in the message headers. - * @since 6.7 - */ - PTDiffusionError_MessageHeadersMissingFetchConversationId = 20019, - - /** - * Reconnection has timed out. - * @since 6.7 - */ - PTDiffusionError_ReconnectionTimeout = 20020, - - /** - * Invalid string representation for session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdComponentCount = 20021, - - /** - * Invalid string representation for session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdCharacterCount = 20022, - - /** - * Invalid hex characters detected in session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdInvalidHexCharacters = 20023, - - /** - * Invalid value detected for token in session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdScanHigh = 20024, - - /** - * Invalid value detected for token in session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdScanLow = 20025, - - /** - * Session lock has been cancelled. - * @since 6.7 - */ - PTDiffusionError_SessionLockCancelled = 20026, - - /** - * Incompatible datatypes. - * @since 6.7 - */ - PTDiffusionError_DataTypeNotCompatible = 20027, - - /** - * Unable to deserialize required information from stream. - * @since 6.7 - */ - PTDiffusionError_StreamExhausted = 20028, - - /** - * Failed to create topic view. - * @since 6.7 - */ - PTDiffusionError_FailedToCreateTopicView = 20029, - - /** - * CBOR functionality is not supported. - * @since 6.7 - */ - PTDiffusionError_CBORNotSupported = 20030, - - /** - * Unexpected item detected while parsing CBOR. - * @since 6.7 - */ - PTDiffusionError_CBORUnexpectedItem = 20031, - - /** - * Unable to append object as the container is immutable. - * @since 6.7 - */ - PTDiffusionError_CBORImmutableContainer = 20032, - - /** - * No instructions were parsed by the CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORMissingCodec = 20033, - - /** - * Insufficient instructions were parsed by the CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORUnfinishedContainer = 20034, - - /** - * Unable to append more objects as the document is already set. - * @since 6.7 - */ - PTDiffusionError_CBORDocumentAlreadySet = 20035, - - /** - * A map entry in the CBOR is incomplete. - * @since 6.7 - */ - PTDiffusionError_CBORIncompleteMapEntry = 20036, - - /** - * Unable to support 64-bit CBOR encoding in the current environment. - * @since 6.7 - */ - PTDiffusionError_CBOR64BitUnsupportedOnThisRuntime = 20037, - - /** - * Value is out of range. - * @since 6.7 - */ - PTDiffusionError_OutOfRange = 20038, - - /** - * Provided additional information was unhandled. - * @since 6.7 - */ - PTDiffusionError_CBORUnhandledInfoValue = 20039, - - /** - * Unable to parse string due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_CBORInvalidUTF8 = 20040, - - /** - * Parsing of a particular type is unhandled. - * @since 6.7 - */ - PTDiffusionError_CBORParsingUnhandledType = 20041, - - /** - * Unable to serialize a type using CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORSerialisationUnhandledType = 20042, - - /** - * Unable to serialize a class using CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORSerialisationUnhandledClass = 20043, - - /** - * Maximum recursion depth reached while running CBOR serialisation. - * @since 6.7 - */ - PTDiffusionError_CBORSerialisationMaximumRecursionDepthExceeded = 20044, - - /** - * Unexpected item detected while parsing the binary delta. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaUnexpectedItem = 20045, - - /** - * Unsupported item for the purposes of binary delta parsing. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaUnsupportedItem = 20046, - - /** - * Binary delta parsing is expecting the size of the copy. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaPendingCopyLength = 20047, - - /** - * Binary delta parsing is expecting a break. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaPendingBreak = 20048, - - /** - * Value is out of range for the current runtime environment. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaOutOfRangeForRuntime = 20049, - - /** - * Delegate was not found. - * @since 6.7 - */ - PTDiffusionError_DelegateNotFound = 20050, - - /** - * Multiple topic constraints found. - * @since 6.7 - */ - PTDiffusionError_MultipleTopicConstraintsFound = 20051, - - /** - * Insufficient data for complete deserialisation. - * @since 6.7 - */ - PTDiffusionError_ConnectionResponseInsufficientData = 20052, - - /** - * Unknown value detected for a given field. - * @since 6.7 - */ - PTDiffusionError_ConnectionResponseUnknownValue = 20053, - - /** - * The service is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_InvalidState = 20054, - - /** - * Topic cache does not have enough information to resolve the received delta. - * @since 6.7 - */ - PTDiffusionError_NoOldValueToApplyDeltaTo = 20055, - - /** - * Topic cache does not have enough information to resolve the received delta type. - * @since 6.7 - */ - PTDiffusionError_NoDeltaTypeAvailable = 20056, - - /** - * Encoding of message headers to string failed. - * @since 6.7 - */ - PTDiffusionError_MessageHeadersToStringEncodingFailed = 20057, - - /** - * Unknown message type. - * @since 6.7 - */ - PTDiffusionError_UnknownMessageType = 20058, - - /** - * Update Stream has an invalid value set for its datatype. - * @since 6.7 - */ - PTDiffusionError_UpdateStreamInvalidNilValue = 20059, - - /** - * Unable to convert received class into expected class. - * @since 6.7 - */ - PTDiffusionError_UnsupportedValueClass = 20060, - - /** - * Unexpected type received. - * @since 6.7 - */ - PTDiffusionError_UnhandledTypeReceived = 20061, - - /** - * Unexpected string start detected. - * @since 6.7 - */ - PTDiffusionError_UnexpectedStringStart = 20062, - - /** - * Unexpected break detected. - * @since 6.7 - */ - PTDiffusionError_UnexpectedBreak = 20063, - - /** - * Unknown datatype for received name. - * @since 6.7 - */ - PTDiffusionError_UnknownDataTypeName = 20064, - - /** - * Received topic data which contradicts the topic cache. - * @since 6.7 - */ - PTDiffusionError_DataLossTopicPathNotInCache = 20065, - - /** - * Topic path is already present in the topic cache. - * @since 6.7 - */ - PTDiffusionError_InvalidSequenceOnCheckByPath = 20066, - - /** - * Topic id is already present in the topic cache. - * @since 6.7 - */ - PTDiffusionError_InvalidSequenceOnCheckById = 20067, - - /** - * Unable to generate notifier from stream. - * @since 6.7 - */ - PTDiffusionError_UnableToGenerateNotifier = 20068, - - /** - * Stream registry is closed. - * @since 6.7 - */ - PTDiffusionError_StreamRegistryClosed = 20069, - - /** - * Buffered data reader has been requested while transport layer is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_BufferedDataReaderRequestInvalidState = 20070, - - /** - * Connection response received while transport layer is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_ConnectionResponseInvalidState = 20071, - - /** - * Message received while transport layer is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_MessageReceivedInvalidState = 20072, - - /** - * Error occurred for unknown reason. - * @since 6.7 - */ - PTDiffusionError_UnknownReason = 20073, - - /** - * Error occurred while appending data to the HTTP message. - * @since 6.7 - */ - PTDiffusionError_HTTPMessageAppendDataError = 20074, - - /** - * Invalid status code received. - * @since 6.7 - */ - PTDiffusionError_InvalidStatusCode = 20075, - - /** - * Authentication challenge handler is not set. - * @since 6.7 - */ - PTDiffusionError_MissingAuthenticationChallengeHandler = 20076, - - /** - * Maximum number of conversations has been reached. - * @since 6.7 - */ - PTDiffusionError_MaximumConversationsReached = 20077, - - /** - * Invalid start of a JSON pointer expression. - * @since 6.7 - */ - PTDiffusionError_JsonPointerExpressionInvalidStart = 20078, - - /** - * Failed to write to stream. - * @since 6.7 - */ - PTDiffusionError_FailedWriteToStream = 20079, - - /** - * Unknown stream error. - * @since 6.7 - */ - PTDiffusionError_UnknownStreamError = 20080, - - /** - * Failed to verify SSL. - * @since 6.7 - */ - PTDiffusionError_FailedToVerifySSL = 20081, - - /** - * Maximum message queue exceeded when writing to stream. - * @since 6.7 - */ - PTDiffusionError_WriteFailedMaxQueueSize = 20082, - - /** - * Failed to write to stream of fixed size or reached capacity. - * @since 6.7 - */ - PTDiffusionError_WriteFailedFixedSize = 20083, - - /** - * Failed to enable SSL. - * @since 6.7 - */ - PTDiffusionError_FailedToEnableSSL = 20084, - - /** - * Failed to configure SSL. - * @since 6.7 - */ - PTDiffusionError_FailedToConfigureSSL = 20085, - - /** - * Connection timeout. - * @since 6.7 - */ - PTDiffusionError_ConnectionTimeout = 20086, - - /** - * Unexpected HTTP response code. - * @since 6.7 - */ - PTDiffusionError_UnexpectedHttpResponseCode = 20087, - - /** - * Unexpected HTTP response header value. - * @since 6.7 - */ - PTDiffusionError_UnexpectedHttpResponseHeaderValue = 20088, - - /** - * Unexpected frame operation code. - * @since 6.7 - */ - PTDiffusionError_UnexpectedFrameOperationCode = 20089, - - /** - * Maximum payload length exceeded. - * @since 6.7 - */ - PTDiffusionError_MaximumPayloadLengthExceeded = 20090, - - /** - * Connection is closed. - * @since 6.7 - */ - PTDiffusionError_ConnectionClosed = 20091, - - /** - * Invalid frame start. - * @since 6.7 - */ - PTDiffusionError_InvalidFrameStart = 20092, - - /** - * Payload data is masked. - * @since 6.7 - */ - PTDiffusionError_MaskedPayloadData = 20093, - - /** - * Unable to support 64-bit encoding in the current environment. - * @since 6.7 - */ - PTDiffusionError_64BitNotSupportedForRuntime = 20094, - - /** - * Failed to initialize compression stream. - * @since 6.7 - */ - PTDiffusionError_ZlibInitFailed = 20095, - - /** - * Failed to process compression. - * @since 6.7 - */ - PTDiffusionError_ZlibProcessFailed = 20096, - - /** - * Failed to destroy compression stream. - * @since 6.7 - */ - PTDiffusionError_ZlibDestroyFailed = 20097, - - /** - * Compressed data is too small. - * @since 6.7 - */ - PTDiffusionError_ZlibCompressedDataTooSmall = 20098, - - /** - * Compressed data header is incorrect. - * @since 6.7 - */ - PTDiffusionError_ZlibCompressedDataHeaderIncorrect = 20099, - - /** - * Last record is not variable. - * @since 6.7 - */ - PTDiffusionError_LastRecordIsNotVariable = 20100, - - /** - * Last record has reached maximum occurrences. - * @since 6.7 - */ - PTDiffusionError_LastRecordHasReachedMaximumOccurrences = 20101, - - /** - * Last record has no occurrences to add field to. - * @since 6.7 - */ - PTDiffusionError_LastRecordHasNoOccurrencesToAddFieldTo = 20102, - - /** - * Last field is not variable. - * @since 6.7 - */ - PTDiffusionError_LastFieldIsNotVariable = 20103, - - /** - * Adding values would exceed maximum field occurrences. - * @since 6.7 - */ - PTDiffusionError_AddingValuesWouldExceedMaximumFieldOccurrences = 20104, - - /** - * Removal would violate the minimum number of occurrences. - * @since 6.7 - */ - PTDiffusionError_RemovalWouldViolateTheMinimumNumberOfOccurrences = 20105, - - /** - * Formatter failed to generate field. - * @since 6.7 - */ - PTDiffusionError_FormatterFailedToGenerate = 20106, - - /** - * String contains invalid characters. - * @since 6.7 - */ - PTDiffusionError_InvalidCharactersInString = 20107, - - /** - * Operation has resulted in an error. - * @since 6.7 - */ - PTDiffusionError_OperationError = 20108, - - /** - * String cannot be encoded due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_EncodeFromUTF8Error = 20109, - - /** - * Data cannot be decoded into string due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_DecodeToUTF8Error = 20110, - - /** - * Field key's name is missing. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyMissingName = 20111, - - /** - * Field key is missing a closing bracket. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyMissingClosingBracket = 20112, - - /** - * Characters found after closing bracket. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyCharactersFoundAfterClosingBracket = 20113, - - /** - * Index in key could not be parsed. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyIndexCouldNotBeParsed = 20114, - - /** - * The key has too many parts. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyTooManyKeyParts = 20115, - - /** - * The total number of records is less than the minimum required. - * @since 6.7 - */ - PTDiffusionError_InsufficientRecords = 20116, - - /** - * The total number of records exceeds the maximum allowed. - * @since 6.7 - */ - PTDiffusionError_TooManyRecords = 20117, - - /** - * The total number of fields is less than the minimum required. - * @since 6.7 - */ - PTDiffusionError_InsufficientFields = 20118, - - /** - * The model size exceeds the maximum size. - * @since 6.7 - */ - PTDiffusionError_RecordModelTooBig = 20119, - - /** - * The record size exceeds the maximum size. - * @since 6.7 - */ - PTDiffusionError_RecordTooBig = 20120, - - /** - * The total number of fields exceeds the maximum allowed. - * @since 6.7 - */ - PTDiffusionError_TooManyFields = 20121, - - /** - * The record size exceeds the maximum size. - * @since 6.7 - */ - PTDiffusionError_ResolvedRecordIndexExceedsModelSize = 20122, - - /** - * The total number of fields exceeds the maximum allowed. - * @since 6.7 - */ - PTDiffusionError_ResolvedFieldIndexExceedsModelSize = 20123, - - /** - * Root of the JSON is not a dictionary. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaRootIsNotObject = 20124, - - /** - * Value in JSON is not a string. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaNameIsNotString = 20125, - - /** - * Value in JSON is not a dictionary. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaValueIsNotObject = 20126, - - /** - * Value in JSON is not a number. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaValueIsNotNumber = 20127, - - /** - * Record has no fields. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaRecordHasNoFields = 20128, - - /** - * Value in JSON is not an array. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaValueIsNotArray = 20129, - - /** - * Records not found. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldRecordsNotDefined = 20130, - - /** - * Cannot find field with given name. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaCannotFindField = 20131, - - /** - * Record name is not defined. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaRecordNameNotDefined = 20132, - - /** - * Field name is not defined. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldNameNotDefined = 20133, - - /** - * Key is not a string. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaKeyIsNotString = 20134, - - /** - * Unknown key. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaUnknownKey = 20135, - - /** - * Record not found. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaUnknownRecordName = 20136, - - /** - * Need to add a record before adding the fields. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderNoCurrentRecord = 20137, - - /** - * Field already exists with the same name. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderDuplicateFieldName = 20138, - - /** - * Cannot add a field after a variable multiplicity field. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderFieldAfterVariableMultiplicityField = 20139, - - /** - * There are no fields for the current record. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderEmptyFields = 20140, - - /** - * Records are empty. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderEmptyRecords = 20141, - - /** - * Record already exists with the same name. - */ - PTDiffusionError_RecordBuilderDuplicateRecordName = 20142, - - /** - * The scale is not positive. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaScaleNotPositive = 20143, - - /** - * Field is negative. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaNegativeField = 20144, - - /** - * Field is invalid. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaInvalidField = 20145, - - /** - * The string supplied has been encoded incorrectly. - * @since 6.2 - */ - PTDiffusionError_MisquotedInput = 20146, - - /** - * The filter was rejected. The message was not sent to any clients. - * @since 6.5 - */ - PTDiffusionError_SendToFilterRejected = 20147, - - /** - * The session was closed after being unexpectedly disconnected. - * @since 6.0 - */ - PTDiffusionError_Disconnected = 20148, - - /** - * The session was closed locally. - * @since 6.0 - */ - PTDiffusionError_ClosedByClient = 20149, - - /** - * There was a problem when establishing a session. The session is closed. No further operations are possible. - * @since 6.0 - */ - PTDiffusionError_Establishment = 20150, - - /** - * The session operation failed due to a security constraint. Repeating the operation with the same security credentials is likely to fail. - * @since 6.0 - */ - PTDiffusionError_Security = 20151, - - /** - * The session operation failed due to an unrecognized response code. - * @since 6.3 - */ - PTDiffusionError_UnrecognizedResponseCode = 20152, - - /** - * The session was closed remotely. - * @since 6.6 - */ - PTDiffusionError_ClosedByServer = 20153, - - /** - * Server unexpectedly aborted. - * @since 6.0 - */ - PTDiffusionError_ServerAborted = 20154, - - /** - * Dictionary does not contain requested key. - * @since 6.7 - */ - PTDiffusionError_KeyNotFoundInDictionary = 20155, - -}; - -NS_ASSUME_NONNULL_END - diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionErrorListener.h deleted file mode 100644 index 58d3cc9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionErrorListener.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes wishing to listen to error notifications. - - Error reports indicate that an unexpected condition has occurred. - They are used sparingly. Error conditions that occur in the context of an API - operation and that an application can reasonably handle are reported to - operation-specific delegates or completion handlers, not as error reports. - - A client can typically do nothing about an error report other than to report it - for diagnosis. The server log should be examined for further information. - - @note The PTDiffusionSessionErrorHandler protocol was deprecated in 5.9 and - removed in 6.0. - - @since 6.0 - */ -@protocol PTDiffusionErrorListener - -/** - Called when an error has been reported. - - @param error The error that was reported. - - @since 6.0 - */ --(void)diffusionDidReportError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFeature.h deleted file mode 100644 index c93f962..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFeature.h +++ /dev/null @@ -1,43 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSession; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A feature is a unit of functionality that is available to a client session. - - This is the base interface for features that may be added directly to a client session. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionFeature : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The session associated with the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly, weak) PTDiffusionSession* session; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchRequest.h deleted file mode 100644 index b086393..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchRequest.h +++ /dev/null @@ -1,428 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionFetchResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A parameterised query that can be used to search the topic tree. - - A new request can be created using the `fetchRequest` - method and modified to specify a range of topics and/or - various levels of detail. The request can then be issued to the server - using the `fetch` method - supplying a topic selector which specifies the selection of topics. The - results are returned via a `completionHandler`. - - As a minimum, the path and type of each selected topic will be returned. - It is also possible to request that the topic values - and/or properties are returned. - - The topics selected by the topic selector can be further restricted by - range. A range is defined by a start path and an end path, and contains - all paths in-between in path order. Given a topic tree containing the - topics: - -
-    a, a/b, a/c, a/c/x, a/c/y, a/d, a/e, b, b/a/x, b/b/x, c
- 
- - the range from `a/c/y` to `b/a/x` includes the topics with - paths: - -
-    a/c/x, a/c/y, a/d, a/e, b, b/a/x
- 
- - The start point of a range can be specified using #fromTopicPath: or - #afterTopicPath: and an end point using #toTopicPath: or #beforeTopicPath:. - #fromTopicPath: and #toTopicPath: include any topic with the specified path in - the selection, whereas #afterTopicPath: and #beforeTopicPath: are non-inclusive - and useful for paging through a potentially large range of topics. If no start - point is specified, the start point is assumed to be the logical beginning of - the topic tree. Similarly, if no end point is specified, the end point is the - logical end of the topic tree. Ranges should be within the scope indicated by - the topic selector used when issuing the fetch. - - As a minimum, the path and type of each topic selected will be returned. It is - also possible to request that the topic values and/or properties are returned. - - The topic types selected are naturally constrained by the data type indicated - when the fetch is requested. So if - PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: - is used, only PTDiffusionTopicType_String topics will be selected. However, if - PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: - is used, all types compatible with PTDiffusionJSON will be selected including - PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 and - PTDiffusionTopicType_Double. - - To select topic types when values are not required, or to further constrain the - selection when values are required, it is also possible to specify exactly - which topic types to select. - - A limit on the number of results returned can be specified using #first:. This - is advisable when the result set could potentially be large. When such a limit - is used then the result will indicate whether more results for the same - selection would be available via the PTDiffusionFetchResult#more property. - - The request can be sent to the server using one of the fetch methods provided - by data type extensions. Results are returned in path order, earliest path - first, starting from the beginning of any range specified. - - It is also possible to request results from the end of the range indicated by - specifying a limit to the number of results using #last:. This returns up to - the specified number of results from the end of the range, in path order. This - is useful for paging backwards through a range of topics. - - Routing topics are **not** supported, and if encountered will be ignored (i.e. - treated as if they did not exist). - - Instances of this class are immutable and can be safely shared and reused. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Specifies a logical start point within the topic tree. - - If specified, only results for topics with a path that is lexically 'after' the - specified path will be returned. - - This is the non-inclusive equivalent of #fromTopicPath: and if used will - override any previous #fromTopicPath: or #afterTopicPath: constraint. - - @param topicPath The topic path after which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics after the specified path (not inclusive). - - @since 6.2 - */ --(instancetype)afterTopicPath:(NSString *)topicPath; - -/** - Specifies a logical end point within the topic tree. - - If specified, only results for topics with a path that is lexically 'before' - the specified path will be returned. - - This is the non-inclusive equivalent of #toTopicPath: and if used will override - any previous #toTopicPath: or #beforeTopicPath: constraint. - - @param topicPath The topic path before which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics before the specified path (not inclusive). - - @since 6.2 - */ --(instancetype)beforeTopicPath:(NSString *)topicPath; - -/** - Specifies a logical start point within the topic tree. - - If specified, only results for topics with a path that is lexically equal to or - 'after' the specified path will be returned. - - This is the inclusive equivalent of #afterTopicPath: and if used will override - any previous #afterTopicPath: or #fromTopicPath: constraint. - - @param topicPath The topic path from which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics from the specified path onwards (inclusive). - - @since 6.2 - */ --(instancetype)fromTopicPath:(NSString *)topicPath; - -/** - Specifies a logical end point within the topic tree. - - If specified, only results for topics with a path that is lexically equal to or - 'before' the specified path will be returned. - - This is the inclusive equivalent of #beforeTopicPath: and if used will override - any previous #beforeTopicPath: or #toTopicPath: constraint. - - @param topicPath The topic path to which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics including and before the specified path (inclusive). - - @since 6.2 - */ --(instancetype)toTopicPath:(NSString *)topicPath; - -/** - Specifies that all properties associated with each topic's - PTDiffusionTopicSpecification should be returned. - - @return A new fetch request derived from this fetch request but specifying that - topic specification properties should be returned. - - @since 6.2 - */ --(instancetype)withProperties; - - -/** - Include the details of reference topics that are not yet published. - - Topic views that use the {@code delay by} clause - create reference topics in an unpublished state. The topics are - published once the delay time has expired. A topic in the - unpublished state prevents a lower priority topic view from creating - a reference topic with the same path. - - A reference topic in the unpublished state which matches the query - will only be included in the fetch results if the session has - {@code PTDiffusionPathPermission.readTopic} permission for the - reference's source topic as well as {@code PTDiffusionPathPermission.readTopic} - permission for the reference topic. Requiring {@code PTDiffusionPathPermission.readTopic} - permission for the source topic ensures less privileged sessions - cannot derive information from the existence of the reference topic - before the delay time has expired. - - @return a new fetch request derived from this fetch request, - additionally specifying that unpublished reference topics - should be included in the results - - @since 6.5 - */ --(instancetype)withUnpublishedDelayedTopics; - - -/** - Specifies a maximum number of topic results to be returned from the start of - the required range. - - If this is not specified, the number of results returned will only be limited - by other constraints of the request. - - This should be used to retrieve results in manageable batches and prevent very - large result sets. - - If there are potentially more results that would satisfy the other constraints, - then the fetch result will indicate so via the PTDiffusionFetchResult#hasMore - property. - - Either this or #last: may be specified. This will therefore override any - previous #last: or #first: constraint. - - @param number The maximum number of results to return from the start of the - range. - - @return A new fetch request derived from this fetch request but selecting only - the number of topics specified from the start of the range. - - @exception NSInvalidArgumentException if number is greater than `INT32_MAX`. - - @since 6.2 - */ --(instancetype)first:(UInt32)number; - -/** - Specifies a maximum number of topic results to be returned from the end of the - required range. - - This is similar to #first: except that the specified number of results are - returned from the end of the range. This is useful for paging backwards through - a range of topics. Results are always returned in topic path order (not reverse - order). - - Either this or #first: may be specified. This will therefore override any - previous #first: or #last: constraint. - - @param number The maximum number of results to return from the end of the - range. - - @return A new fetch request derived from this fetch request but selecting only - the number of topics specified from the end of the range. - - @exception NSInvalidArgumentException if number is greater than `-INT32_MIN`. - - @since 6.2 - */ --(instancetype)last:(UInt32)number; - -/** - Specifies the maximum data size of the result set. - - This may be used to constrain the size of the result. If not specified then by - default the maximum message size for the session (as specified by - PTDiffusionSessionConfiguration#maximumMessageSize ) is used. - - @param size The maximum size of the result set in bytes. If a value greater - than the session's maximum message size is specified, the maximum message size - will be used. - - @return A new fetch request derived from this fetch request but constraining - the size of the result to the specified maximum. - - @exception NSInvalidArgumentException if size is greater than `INT32_MAX`. - - @since 6.2 - */ --(instancetype)maximumResultSize:(UInt32)size; - -/** - Specifies that only topics of the specified topic types should be returned. - - If this is not specified, #allTypes will be returned (unless constrained by - value data type). - - If the specified topic type matches the event type of a time series topic, - it will also be returned. The value will be delivered without the associated - metadata. To specify all time series topics use {@link - PTDiffusionTopicType_TimeSeries}. - - This may be used instead to further constrain the results when already - constraining by values. For example, you can use - PTDiffusionFetchRequest#withJSONValues then specify PTDiffusionTopicType_JSON - here to ensure that only JSON topics are returned and not those topics that are - logically value subtypes of JSON (e.g. PTDiffusionTopicType_String). - - If already constraining by value data type then the topic types specified here - must be compatible with the value class specified or the event type for time - series topics. - - PTDiffusionTopicType_Routing may not be specified. - - @param topicTypes Topic types to be selected, boxed as NSNumber instances. - - @return A new fetch request derived from this fetch request but specifying that - only topics of the specified topic types should be returned. - - @throws IllegalArgumentException if invalid topic types are specified - - @since 6.2 - */ --(instancetype)topicTypes:(NSSet *)topicTypes; - -/** - Specifies a limit on the number of results returned for each deep - branch. - - A deep branch has a root path that has a number of parts equal to the - `deep_branch_depth` parameter. The `deep_branch_limit` specifies the - maximum number of results for each deep branch. - - This method is particularly useful for incrementally exploring a - topic tree from the root, allowing a breadth-first search strategy. - - For example, given a topic tree containing the topics with the - following paths: - -
- x/0
- x/x/1
- x/x/x/2
- y/y/y/y/3
- y/y/y/4
- z/5
- z/z/6
- 
- - Then - -
- PTDiffusionFetchRequest *const request =
- [session.topics.fetchRequest limitDeepBranches:1
-                                          limit:1];
-
- [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
-                                     completionHandler:
- ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
- 
- - will return results with the paths `x/0`, `y/y/y/y/3`, - and `z/5`. The application can then determine the roots of the - tree are `x`, `y`, and `z`. - - The `deepBranchLimit` parameter can usefully be set to - `0`. For example, given the same example topic tree, - -
- PTDiffusionFetchRequest *const request =
- [session.topics.fetchRequest limitDeepBranches:3
-                                          limit:0];
-
- [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
-                                     completionHandler:
- ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
- 
- - will only return results having paths with fewer than three parts; - namely `x/0`, and `z/5`. - - The fetch result does not indicate whether this option caused some - results to be filtered from deep branches. It has no affect on the - ` result. If the result set - contains `deepBranchLimit` results for a particular deep - branch, some topics from that branch may have been filtered. - - @param deepBranchDepth The number of parts in the root path of a - branch for it to be considered deep - - @param deepBranchLimit The maximum number of results to return for - each deep branch - - @return A new fetch request derived from this fetch request but restricting - the number of results for deep branches. - - @since 6.4 - */ --(instancetype)limitDeepBranches:(UInt32)deepBranchDepth - limit:(UInt32)deepBranchLimit; - -/** - A constant set of all topic types that can be fetched. - - @return Set of all topic types that can be fetched. - - @since 6.2 - */ -+(NSSet *)allTypes; - -/** - Sends a fetch request to the server, specifying that values should not be - returned for selected topics. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by #fromTopicPath: / - #afterTopicPath: and/or #toTopicPath: / #beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.2 - */ --(void)fetchWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchResult.h deleted file mode 100644 index 1fd16cf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchResult.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -@class PTDiffusionFetchTopicResult; - -/** - @brief Base class for results from fetch operations issued to the server. - - A fetch operation is issued using a PTDiffusionFetchRequest. - - @since 6.2 - */ -@interface PTDiffusionFetchResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * results; - -/** - Indicates whether the fetch could have returned more results if it had not been - constrained by the PTDiffusionFetchRequest#first: , - PTDiffusionFetchRequest#last: or - PTDiffusionFetchRequest#maximumResultSize: limits. - - `YES` if more results could have been returned, otherwise `NO`. - - @since 6.2 - */ -@property(nonatomic, readonly, getter=hasMore) BOOL more; - - - -/** - The number of elements in the fetch result - - @return the size of the results list - - @since 6.5 - */ --(NSUInteger)size; - - -/** - Return `YES` if the result contains zero elements - - @return `YES` if result list is empty - - @since 6.5 - */ --(BOOL)isEmpty; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h deleted file mode 100644 index a13ac71..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h +++ /dev/null @@ -1,52 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTopicSpecification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a fetch operation for a single selected - topic. - - @since 6.2 - */ -@interface PTDiffusionFetchTopicResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The topic path. - - @since 6.2 - */ -@property(nonatomic, readonly) NSString* path; - -/** - The topic specification. - - If the request specified PTDiffusionFetchRequest#withProperties, the result - reflects the topic's specification and can be used to create an identical - topic. If the request did not specify that properties were to be included, the - specification's property map will be empty. - - @since 6.2 - */ -@property(nonatomic, readonly) PTDiffusionTopicSpecification* specification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h deleted file mode 100644 index 5597758..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result of a querying the server for the - session properties of a particular session ID or session filter - - @since 6.5 - */ -@interface PTDiffusionGetSessionPropertiesResult : NSObject - - -+(instancetype)new NS_UNAVAILABLE; - - --(instancetype)init NS_UNAVAILABLE; - - -/** - Map of the requested session property values - - @since 6.5 - */ -@property(nonatomic, readonly) NSDictionary * properties; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h deleted file mode 100644 index 4d85fa4..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h +++ /dev/null @@ -1,139 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Permissions that protect globally scoped, access-controlled operations. - - There is no related object, permission is granted globally. - - @see PTDiffusionPathPermission - - @since 6.3 - */ -@interface PTDiffusionGlobalPermission : PTDiffusionEnumeration - -/** - Add an authentication handler. - - @return Instance indicating the permission to add an authentication handler. - - @since 6.3 - */ -+(instancetype)authenticate; - -/** - List or listen to client sessions. - - @return Instance indicating the permission to list of listen to client sessions. - - @since 6.3 - */ -+(instancetype)viewSession; - -/** - Alter a client session. This covers a range of actions including: - - - subscribe session to topic - - throttle session - - enable conflation for session - - close session - - @return Instance indicating permission to alter a client session. - - @since 6.3 - */ -+(instancetype)modifySession; - -/** - Required to register any server-side handler. - - This restricts clients from consuming resources by registering long lived - handlers (or example, addMessageHandler). Typically these would never be called - due to lack of other permissions. - - @return Instance indicating permission to register any server-side handler. - - @since 6.3 - */ -+(instancetype)registerHandler; - -/** - View the server's runtime state - for example, read metrics. - - @return Instance indicating permission to view the server's runtime state. - - @since 6.3 - */ -+(instancetype)viewServer; - -/** - Change the server's runtime state - for example, shut it down. - - @return Instance indicating permission to change the server's runtime state. - - @since 6.3 - */ -+(instancetype)controlServer; - -/** - Read the security configuration. - - @return Instance indicating permission to read the security configuration. - - @since 6.3 - */ -+(instancetype)viewSecurity; - -/** - Change the security configuration. - - @return Instance indicating permission to change the security configuration. - - @since 6.3 - */ -+(instancetype)modifySecurity; - -/** - A permission that is unsupported by the session. - - @return Instance indicating an unsupported permission by the session. - - @since 6.3 - */ -+(instancetype)unknownGlobalPermission; - -/** - Read topic views. - - @return Instance indicating the permission to read topic views. - - @since 6.3 - */ -+(instancetype)readTopicViews; - -/** - Modify topic views. - - @return Instance indicating the permission to modify topic views. - - @since 6.3 - */ -+(instancetype)modifyTopicViews; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h deleted file mode 100644 index b8d54a2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionHTTPAuthenticationChallengeHandler; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The protocol implemented by classes providing authentication challenge - handler implementations for HTTP connections. - - Objects conforming to this protocol must be supplied with the session - configuration in order to support HTTP proxies that require authentication. - - @since 6.0 - */ -@protocol PTDiffusionHTTPAuthentication - -/** - Create a challenge handler to be responsible for responding to authentication - challenges during connection negotiation. - - @return the challenge handler - - @since 6.0 - */ --(id)createHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h deleted file mode 100644 index ff4d980..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h +++ /dev/null @@ -1,65 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionHTTPAuthenticationChallengeStatus; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An HTTP response from a server connection request, challenging the - client to authenticate. - - @see PTDiffusionHTTPAuthenticationChallengeHandler - - @since 6.0 - */ -@interface PTDiffusionHTTPAuthenticationChallenge : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The status received from the HTTP server. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionHTTPAuthenticationChallengeStatus* status; - -/** - The headers received from the HTTP server. - - @since 6.0 - */ -@property(nonatomic, readonly) NSDictionary* headers; - -/** - Compares the receiver to the given challenge. - - @param challenge The HTTP authentication challenge object with which to compare - the receiver. - - @return `YES` if the challenge is identical to the receiver, otherwise `NO`. - - @note Two challenge objects are equal if they have the same statusCode and - headers properties. The reasonPhrase property is not used when evaluating - equality. - - @since 6.0 - */ --(BOOL)isEqualToHTTPAuthenticationChallenge:(nullable PTDiffusionHTTPAuthenticationChallenge *)challenge; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h deleted file mode 100644 index e773f48..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionHTTPAuthenticationChallenge; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The protocol implemented by classes providing an authentication challenge - handler implementation for HTTP connections. - - @see PTDiffusionHTTPAuthentication - - @since 6.0 - */ -@protocol PTDiffusionHTTPAuthenticationChallengeHandler - -/** - Called when a challenge is received. The receiver must return a response to the - challenge. - - @param challenge The challenge received from the HTTP server, encapsulating - Status-Code and headers. - - @return HTTP headers to be sent in response to the challenge. - - @exception NSInvalidArgumentException If challenge is `nil`. - - @since 6.0 - */ --(NSDictionary*)responseForChallenge:(PTDiffusionHTTPAuthenticationChallenge *)challenge; - -/** - The maximum number of HTTP transactions permitted before authentication fails. - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger maximumConversations; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h deleted file mode 100644 index 139476b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h +++ /dev/null @@ -1,79 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An HTTP Status received as part of an authentication challenge. - - @see PTDiffusionHTTPAuthenticationChallenge - - @since 6.0 - */ -@interface PTDiffusionHTTPAuthenticationChallengeStatus : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The server responded to the connection request with HTTP Status-Code 401. - - @return The HTTP authentication challenge status response from the server. - - @note The reasonPhrase property for the static instance returned by this - method will always be `nil`. - - @since 6.0 - */ -+(instancetype)unauthorized; - -/** - The server responded to the connection request with HTTP Status-Code 407. - - @return The HTTP authentication challenge status response from the server. - - @note The reasonPhrase property for the static instance returned by this - method will always be `nil`. - - @since 6.0 - */ -+(instancetype)proxyAuthenticationRequired; - -/** - The HTTP Reason-Phrase provided by the server with the response that generated - this status. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) NSString* reasonPhrase; - -/** - Compares the receiver to the given status. - - @param status The HTTP authentication challenge status object with which to - compare the receiver. - - @return `YES` if the status is identical to the receiver, otherwise `NO`. - - @note Two status objects are equal if they mean the same thing. - The reasonPhrase property is not used when evaluating equality. - - @since 6.0 - */ --(BOOL)isEqualToHTTPAuthenticationChallengeStatus:(nullable PTDiffusionHTTPAuthenticationChallengeStatus *)status; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h deleted file mode 100644 index 966605d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionHTTPAuthentication; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Connection details for an HTTP proxy to be tunneled through in order to - reach the Diffusion server. - - @see PTDiffusionSessionConfiguration - - @since 6.0 - */ -@interface PTDiffusionHTTPProxyConfiguration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a HTTP proxy authentication object initialized with the given host and port. - - @param host The host name of the HTTP proxy. - - @param port The port of the HTTP proxy. - - @return A HTTP proxy authentication object initialized with the given host and port. - - @exception NSInvalidArgumentException If host is `nil`. - - @since 6.0 - */ --(instancetype)initWithHost:(NSString *)host - port:(UInt32)port NS_DESIGNATED_INITIALIZER; - -/** - Returns a HTTP proxy authentication object initialized with the given host, port - and authentication. - - @param host The host name of the proxy. - - @param port The TCP port of the proxy. - - @param authentication The provider to be used if the proxy requests authentication. - - @return A HTTP proxy authentication object initialized with the given host, port - and authentication. - - @exception NSInvalidArgumentException If either host or authentication is `nil`. - - @see PTDiffusionBasicHTTPProxyAuthentication - - @since 6.0 - */ --(instancetype)initWithHost:(NSString *)host - port:(UInt32)port - authentication:(id)authentication NS_DESIGNATED_INITIALIZER; - -/** - The host name of the proxy. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* host; - -/** - The TCP port of the proxy. - - @since 6.0 - */ -@property(nonatomic, readonly) UInt32 port; - -/** - The provider to be used if the proxy requests authentication. - - @see PTDiffusionBasicHTTPProxyAuthentication - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) id authentication; - -/** - Compares the receiver to the given configuration. - - @param configuration The HTTP proxy configuration object with which to compare - the receiver. - - @return `YES` if the configuration is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToHTTPProxyConfiguration:(nullable PTDiffusionHTTPProxyConfiguration *)configuration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h deleted file mode 100644 index 28b1664..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h +++ /dev/null @@ -1,56 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - Representation of the HTTP Response received from the server. - */ -@interface PTDiffusionHTTPResponse : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @brief Status code as defined by RFC 2616, section 6.1.1. - - The Status-Code element is a 3-digit integer result code of the - attempt to understand and satisfy the request. - - */ -@property(nonatomic, readonly) NSInteger statusCode; - -/** - @brief Reason Phrase as defined by RFC 2616, section 6.1.1. - - The Reason-Phrase is intended to give a short textual description of the Status-Code. - */ -@property(nonatomic, readonly) NSString* reasonPhrase; - -/** -@brief The headers of the HTTP response. - */ -@property(nonatomic, readonly) NSDictionary* headers; - -/** - @brief The message body of the HTTP response - - Will be nil if there was no message body. - */ -@property(nonatomic, readonly, nullable) NSData* bodyData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSON.h deleted file mode 100644 index 2a6daf1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSON.h +++ /dev/null @@ -1,829 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionBinaryDelta; -@class PTDiffusionJSONFetchResult; -@class PTDiffusionJSONTimeSeriesQueryResult; -@class PTDiffusionJSONUpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionResponse; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionJSONRequestDelegate; -@protocol PTDiffusionJSONRequestStreamDelegate; -@protocol PTDiffusionJSONSessionResponseStreamDelegate; -@protocol PTDiffusionJSONValueStreamDelegate; -@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" - - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An immutable JSON value with support for both binary and JSON deltas. - - JSON is "JavaScript Object Notation", a lightweight data-interchange format. - See [www.json.org](http://www.json.org). - - Internally the value is stored and transmitted not as a JSON string, but in - CBOR format to reduce memory and network overhead. CBOR (Concise Binary - Object Representation) is a standardized format for binary representation of - structured data defined by [RFC 7049](https://tools.ietf.org/html/rfc7049). - See [www.cbor.io](http://www.cbor.io). - - Each JSON value is represented as a single CBOR data item. CBOR supports - composite data types just like JSON, so this data item can be an array or a - map of other data items. The `null` value is represented by the CBOR `Null` - value. - - @since 5.9 - */ -@interface PTDiffusionJSON : PTDiffusionBytes - -/** - Return a JSON object initialized with the given object. - - Object hierarchies passed to this method must be constructed from Foundation - objects which can be logically encoded with CBOR. This provides flexibility - above and beyond the basic capabilities of a 'pure JSON' encoding as well as - being less restrictive than the capabilities of NSJSONSerialization. - - This means: - - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, - `NSDictionary` or `NSNull`. - - Dictionary keys may be instances of any supported type. - - The top level object may be of any supported type. - - Being more permissive than NSJSONSerialization in that: - - `NSData` instances may be used. - - Dictionary keys are not restricted to instances of `NSString`. - - The top level object is not restricted to being a container (`NSArray` or - `NSDictionary`). - - Applications may take advantage of the more permissive nature of the - underlying CBOR encoding by using these capabilities, assuming: - 1. Encoding to JSON string is not required. - 2. Other client applications, perhaps developed in a different language and - against a different library, can also support the capabilities. - - @param object The object to be serialized to CBOR and stored internally to - represent the receiver. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return JSON object initialized with the given object. - - @exception NSInvalidArgumentException Raised if the `object` argument is `nil`. - - @since 5.9 - */ --(nullable instancetype)initWithObject:(id)object - error:(NSError **)error; - -/** - Convenience wrapper around initWithObject:error: that first uses - NSJSONSerialization to generate the object to be serialized. - - @param jsonData A data object containing JSON data. See Apple's - NSJSONSerialization documentation for detailed information regarding - supported encodings. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return JSON object initialized with the given JSON data. - - @exception NSInvalidArgumentException Raised if the `jsonData` argument is `nil`. - - @since 5.9 - */ --(nullable instancetype)initWithJSONData:(NSData *)jsonData - error:(NSError **)error; - -/** - Convenience wrapper around initWithJSONData:error: that first encodes the - given string as UTF-8 (NSUTF8StringEncoding), requiring lossless conversion. - - @param jsonString A JSON string. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return JSON object initialized with the given JSON string. - - @exception NSInvalidArgumentException Raised if the `jsonString` argument is `nil`. - - @since 6.0 - */ --(nullable instancetype)initWithJSONString:(NSString *)jsonString - error:(NSError **)error; - -/** - Compare the receiver's JSON value with another (e.g. an earlier version) to - create a binary delta. - - @param json The original to which the delta should be able to be applied in - order to generate the value represented by the receiver. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return A delta representing the difference between json and the receiver, - or `nil` if there was an error (e.g. either the original or the receiver - don't represent a valid JSON value). - - @exception NSInvalidArgumentException Raised if the json argument is `nil`. - - @since 5.9 - */ --(nullable PTDiffusionBinaryDelta *)binaryDiffFromJSON:(PTDiffusionJSON *)json - error:(NSError **)error; - -/** - Apply a binary delta to the receiver's JSON value to create a new value. - - @param delta The delta describing the changes to be applied to the receiver's - value in order to create the value to be returned. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return The new JSON value, or `nil` if there was an error (e.g. the receiver - does not represent a valid JSON value). - - @exception NSInvalidArgumentException Raised if the delta argument is `nil`. - - @since 5.9 - */ --(nullable PTDiffusionJSON *)applyDelta:(PTDiffusionBinaryDelta *)delta - error:(NSError **)error; - -/** - Check whether the receiver is valid. - - @param error If not valid, upon return contains an `NSError` object that - describes the problem. - - @return `YES` if this instance is valid. - - @since 5.9 - */ --(BOOL)validateWithError:(NSError **)error; - -/** - Creates a Foundation object from the receiver's JSON value. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return An object, or `nil` if there was an error (e.g. the receiver doesn't - represent a valid JSON value). - - @since 5.9 - */ --(nullable id)objectWithError:(NSError **)error; - -/** - Convenience wrapper around objectError: that then uses NSJSONSerialization to - generate the JSON data. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return A data object containing JSON, or `nil` if there was an error (e.g. - the receive doesn't represent a valid JSON value or cannot be converted to - pure JSON). - - @since 5.9 - */ --(nullable NSData*)JSONDataWithError:(NSError **)error; - -/** - A request that can be used to send this value using messaging. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRequest* request; - -/** - A response that can be used to send this value using messaging. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionResponse* response; - -/** - An update constraint requiring the current value of a topic to match this - value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; - -/** - Creates a value stream capable of receiving JSON values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -+(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving JSON time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving JSON requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving JSON requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving JSON responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; - -/** - Compares the receiver to the given JSON. - - @param json The JSON object with which to compare the receiver. - - @return `YES` if the data in json is equal to the contents of the receiver, otherwise `NO`. - - @note Two JSON objects are equal if they are internally represented by the - same CBOR encoding. - - @since 5.9 - */ --(BOOL)isEqualToJSON:(nullable PTDiffusionJSON *)json; - -@end - -/** - @brief Extension adding support for responding to requests using JSON values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionJSON) - -/** - Dispatch a response to a request. - - @param json The value to send in response. - - @exception NSInvalidArgumentException Raised if the json argument is `nil`. - - @since 6.0 - */ --(void)respondWithJSON:(PTDiffusionJSON *)json; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a JSON response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionJSON) - -/** - Send a request for which a JSON response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a JSON response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using JSON values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) - -/** - Update a time series topic by appending a new JSON value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - JSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - - -/** - Update a time series topic by appending a new JSON value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - JSONValue:(PTDiffusionJSON *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new JSON value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - JSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have JSON values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - JSONCompletionHandler:(void (^)(PTDiffusionJSONTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with JSON. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionJSON) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with JSON. - - The JSON data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as - JSON will be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchJSONValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionJSONFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with JSON values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionJSON) - -/** - Sets a topic to a specified JSON value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toJSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified JSON value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toJSONValue:(PTDiffusionJSON *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a JSON value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToJSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a JSON value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToJSONValue:(PTDiffusionJSON *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Creates an update stream to use for updating a specific topic with JSON values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If path is `nil`. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with JSON values - if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If either argument is `nil`. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - JSON values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - JSON values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -NS_ASSUME_NONNULL_END - -#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h deleted file mode 100644 index 5f16be3..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSONFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a JSON fetch operation issued to the - server. - - A JSON fetch operation is issued using the - PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionJSONFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * jsonResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h deleted file mode 100644 index 787a14f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a JSON fetch operation for a single - selected topic. - - A JSON fetch operation is issued using the - PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionJSONFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) PTDiffusionJSON* json; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h deleted file mode 100644 index 7564651..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Result of calls to the Partial Update feature. - - See PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:completionHandler: and - PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:withConstraint:completionHandler: - - Check `failedOperation` to determine whether any of the operations failed. - - @since 6.4 - - */ -@interface PTDiffusionJSONPatchResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @brief an optional NSNumber which if non-null, contains the index of - the first operation which failed - */ -@property(nonatomic, nullable, readonly) NSNumber *failedOperation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h deleted file mode 100644 index 1b2499d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling JSON messaging requests with a - handler registered at the server. - - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionJSONRequestDelegate - -/** - Called when a JSON request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param json The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithJSON:(PTDiffusionJSON *)json - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h deleted file mode 100644 index acdbb12..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling JSON messaging requests. - - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionJSONRequestStreamDelegate - -/** - Called when a JSON request has been received. - - @param stream The stream that received the request. - - @param json The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithJSON:(PTDiffusionJSON *)json - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h deleted file mode 100644 index 04576c9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling JSON messaging responses from - individual sessions. - - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionJSONSessionResponseStreamDelegate - -/** - Called when a session responds to a request with JSON. - - @param stream The stream that received the response. - - @param json The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithJSON:(PTDiffusionJSON *)json - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h deleted file mode 100644 index 9ee409b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as JSON. - - @since 6.0 - */ -@interface PTDiffusionJSONTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The JSON value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionJSON* json; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index ef818ea..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSONTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - JSON values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with JSON values. - - @since 6.0 - */ -@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a JSON value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldJsonEvent The previous event. If `nil` then this is the first event. - - @param newJsonEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldJSONEvent:(nullable PTDiffusionJSONTimeSeriesEvent *)oldJsonEvent - newJSONEvent:(PTDiffusionJSONTimeSeriesEvent *)newJsonEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h deleted file mode 100644 index 696bf4e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSONTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of JSON time series events. - - @since 6.0 - */ -@interface PTDiffusionJSONTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The JSON time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* jsonEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h deleted file mode 100644 index ab37a71..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with JSON - values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionJSONUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionJSON* value; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either value or completionHandler is - `nil`. - - @since 6.3 - */ --(BOOL) setValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h deleted file mode 100644 index 930dd93..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for JSON - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for JSON - topics. - - @see PTDiffusionJSON - - @since 5.9 - */ -@protocol PTDiffusionJSONValueStreamDelegate - -/** - An update was received for a topic path handled by a JSON value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldJson The previous value. If `nil` then this is the first value. - - @param newJson The new value derived from the last update received from the - server. - - @since 5.9 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldJSON:(nullable PTDiffusionJSON *)oldJson - newJSON:(PTDiffusionJSON *)newJson; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLogging.h deleted file mode 100644 index 3e0b6e8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLogging.h +++ /dev/null @@ -1,111 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionLoggingDestinationConfiguration; -@class PTDiffusionLoggingLevel; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Logging provides access to debug information that can be enabled at runtime. - - Changes to properties here have immediate effect on the verbosity or otherwise - of log output. - - The format of output log messages is subject to change. - - By default messages are sent to the Apple System Log facility using synchronous - calls to the Foundation framework's NSLog function. The destinationConfiguration - property can be used to change this behaviour. - - @since 5.7 - */ -@interface PTDiffusionLogging : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns the Diffusion logging object representing the current application process. - - @return Singleton Diffusion logging object representing the current application process. - - @since 5.7 - */ -+(PTDiffusionLogging *)logging; - -/** - Global switch to switch on or off logging. A value of `YES` switches logging on and - a value of `NO` switches it off. - - The default value for this property is `NO`. - - @note Logging may be switched on using this property but the amount of informational - messages output depends on the combination of other properties defined by this - interface. - - @since 5.7 - */ -@property(nonatomic, readwrite, getter=isEnabled) BOOL enabled; - -/** - The ranking of information messages required to be output. - This property allows the granularity of log output to be set. - Only messages ranked at this granularity or above will be enabled. - - The default value for this property is [PTDiffusionLoggingLevel info]. - - @since 5.7 - */ -@property(nonatomic, readwrite) PTDiffusionLoggingLevel* level; - -/** - Set the format of log message output. The syntax of this string is subject to change - so the required formatting tokens are not documented or intended to be constructed for use - by application developers unless instructed by a member of support staff in order to - assist in debugging an issue. - - @param format The format of log message output. - - @since 5.7 - */ --(void)setFormat:(NSString *)format; - -/** - Set all properties to default values, as required for production use when - debugging information is not required or desired. - A call to this method turns off all runtime-switchable log output. - - @note This method intentionally does not reset the destinationConfiguration - property. - - @since 5.7 - */ --(void)reset; - -/** - Options allowing log output to be directed to a custom location. - - The default value for this property is `nil`, specifying that messages should - be sent to the Apple System Log facility using synchronous calls to the - Foundation framework's NSLog function. - - @since 6.0 - */ -@property(nonatomic, readwrite, nullable) PTDiffusionLoggingDestinationConfiguration* destinationConfiguration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h deleted file mode 100644 index a779a35..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h +++ /dev/null @@ -1,61 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Options allowing log output to be directed to a custom location. - - @see PTDiffusionLogging - - @since 6.0 - */ -@interface PTDiffusionLoggingDestinationConfiguration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a logging destination configuration object initialized with the - given message printer. - - @param messagePrinter A block that may be called multiple times during the - lifetime of the current process. - - @return A logging destination configuration object initialized with the given - message printer. - - @note The message printer will always be called from a single GCD dispatch - queue managed by the client library and dedicated to this application process. - - @since 6.0 - */ --(instancetype)initWithMessagePrinter:(PTDiffusionLoggingMessagePrinter)messagePrinter NS_DESIGNATED_INITIALIZER; - -/** - A block that may be called multiple times during the lifetime of the current - process in order to emit formatted log messages. - - @note This property has the `nullable` attribute in order to allow for future - expansion of this API. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable, copy) PTDiffusionLoggingMessagePrinter messagePrinter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h deleted file mode 100644 index a993729..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h +++ /dev/null @@ -1,80 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A level of information events useful for debugging. - - The levels defined here are modelled on those defined by SLF4J as used by - the Diffusion Java API. - - @see PTDiffusionLogging - - @since 5.7 - */ -@interface PTDiffusionLoggingLevel : PTDiffusionEnumeration - -/** - Designates error events that might still allow the application to continue - running normally. - - @return Instance representing the error logging level. - - @since 5.7 - */ -+(instancetype)error; - -/** - Designates potentially harmful situations. - - @return Instance representing the warning logging level. - - @since 5.7 - */ -+(instancetype)warn; - -/** - Designates informational messages that highlight the process of the application - at a coarse-grained level. - - @return Instance representing the informational logging level. - - @since 5.7 - */ -+(instancetype)info; - -/** - Designates fine-grained informational messages that are most useful to debug - an application. - - @return Instance representing the debug logging level. - - @since 5.7 - */ -+(instancetype)debug; - -/** - Designates finer-grained informational events than debug. - - @return Instance representing the trace logging level. - - @since 5.7 - */ -+(instancetype)trace; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h deleted file mode 100644 index d98a267..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h +++ /dev/null @@ -1,26 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - The type definition for a block accepting formatted log messages. - - @see PTDiffusionLoggingDestinationConfiguration - - @since 6.0 - */ -typedef void (^PTDiffusionLoggingMessagePrinter)(NSString* message); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h deleted file mode 100644 index 4544b00..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h +++ /dev/null @@ -1,297 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBytes; -@class PTDiffusionRequestStream; -@class PTDiffusionTopicSelector; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionSessionId; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTopicTreeRegistration; - - -/** - Values assigned to the `code` property of NSError objects generated by the - PTDiffusionMessagingFeature. - - @since 6.5 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionMessagingFeatureErrorCode) { - /** - The filter was rejected. The message was not sent to any clients. - - @see PTDiffusionUnderlyingErrorsKey - - @since 6.5 - - @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. - */ - PTDiffusionMessagingFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead.") = 1, -}; - - -NS_ASSUME_NONNULL_BEGIN - - -/** - The value assigned to the `domain` property of NSError objects generated by the - PTDiffusionMessagingFeature. - - @since 6.5 - - @deprecated since 6.7 Error domains have been converged into PTDiffusion. - */ -extern NSString *const PTDiffusionMessagingFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); - - -/** - @brief This feature provides a client session with request-response messaging - capabilities that can be used to implement application services. - - Request-response messaging allows a session to send requests to other - sessions. Each receiving session provides a corresponding response, which is - returned to the sending session. Each request and response carries an - application provided value. - - The method used to send a request determines which sessions will receive it. - Each request is routed using the provided *message path* – an - application provided string. Two addressing schemes are provided: - unaddressed requests and addressed requests. - - ### Unaddressed requests - - A session can provide an application service by implementing a handler and - registering it with the server. This is somewhat similar to implementing a - REST service, except that interactions between the sender and receiver are - asynchronous. - - Unaddressed requests sent using `sendRequest` - are routed by the server to a handler that has been pre-registered by another - session, and matches the message path. - - Handlers are registered with `#addRequestHandler:forPath:sessionProperties:completionHandler:`. - Each session may register at most one handler for a given message path. - Optionally, one or more session property names can be provided (see - PTDiffusionSession for a full description of session properties), in which - case the values of the session properties for each recipient session will be - returned along with its response. To add a request handler, the control client - session must have PTDiffusionGlobalPermission.registerHandler permission. If - registering to receive session property values, the session must also have - PTDiffusionGlobalPermission.viewSession permission. - - Routing works as follows: - - 1. The session sends the request, providing the message path, the response stream, - the request value and the completion handler that will be called once the server replies. - - 2. The server uses the message path to apply access control. The sender must have the - PTDiffusionPathPermission.sendToMessageHandler path permission for the message path, - or the request will be rejected. - - 3. The server uses the message path to select the appropriate recipient session. - Recipient sessions must pre-register a handler. If there is no registered recipient - session, the request will be rejected. - - 4. Otherwise, the server forwards the request to one of the sessions registered - to handle the message path. The message path is also passed to the recipient - session, providing a hierarchical context. - - 5. The recipient session processes the request and returns a response to the - server, which forwards the response to the sending session. - - Registration works across a cluster of servers. If no matching handler is - registered on the server to which the sending session is connected, the - request will be routed to another server in the cluster that has one. - - ### Addressed Requests - - Addressed requests provide a way to perform actions on a group of sessions, - or to notify sessions of one-off events (for repeating streams of events, use - a topic instead). - - An addressed request can be sent to a set of sessions using - `#sendRequest:toFilter:path:responseStream:completionHandler:`. For the details of session - filters, see PTDiffusionSession. Sending a request to a filter will match zero - or more sessions. Each response received will be passed to the provided - completionHandler. As a convenience, an addressed request can be sent a - specific session using the overloaded variant of - `sendRequest:toSessionId:completionHandler` that accepts a session id. - - Sending an addressed request requires PTDiffusionPathPermission.sendToSession - permission. - - If the sending session is connected to a server belonging to a cluster, the - recipient sessions can be connected to other servers in the cluster. The - filter will be evaluated against all sessions hosted by the cluster. - - To receive addressed requests, a session must set up a local request stream - to handle the specific message path, using `#setRequestStream:forPath:`. - When a request is received for the message path, the method - `diffusionStream:didReceive...Request:` responder from the - PTDiffusionStreamDelegate is triggered. - The session should respond using the provided responder. - Stream delegates receive a `diffusionDidCloseStream:` callback when - unregistered and a `diffusionStream:didFailOnError:` if the session is closed. - - If a request is sent to a session that does not have a matching stream for - the message path, an error will be returned to the sending session. - - ### Accessing the feature - Obtain this feature from a PTDiffusionSession as follows: - -
- PTDiffusionMessagingFeature * messaging = session.messaging;
- 
- - For more detail, - see: @ref md_messaging "Messaging with the Apple client library". - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionMessagingFeature : PTDiffusionFeature - -/** - Assign the request stream to handle requests sent to the given path. - - @param stream The request stream which should be mapped to receive requests - sent to the given path. - - @param path The path for which received requests should be dispatched to the - given request stream. - - @return The previously set request stream for the given path, or `nil` if this - is a fresh dispatch mapping. - - @since 6.0 - */ --(nullable PTDiffusionRequestStream *)setRequestStream:(PTDiffusionRequestStream *)stream - forPath:(NSString *)path; - -/** - Remove the request stream mapped to the given path. - - @param path The path for which any request stream mapping should be removed. - - @return The previously set request stream for the given path, or `nil` if there - was not an existing dispatch mapping. - - @since 6.0 - */ --(nullable PTDiffusionRequestStream *)removeRequestStreamForPath:(NSString *)path; - - -/** - Register a request handler to handle messages received from other client - sessions on a path. - - @param handler Specifies the handler to be registered at the server. - - @param path The request path. - - @param sessionProperties a list of keys of session properties that should - be supplied with each message. See PTDiffusionSession for a full list of - available fixed property keys. To request no properties supply an empty list. - To request all fixed properties include PTDiffusionSession#allFixedProperties - as a key. In this case any other fixed property keys would be ignored. - To request all user properties include PTDiffusionSession#allUserProperties - as a key. In this case any other user properties are ignored. - - @param 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 the `registration` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.5 - */ --(void)addRequestHandler:(PTDiffusionRequestHandler *)handler - forPath:(NSString *)path - sessionProperties:(NSArray *)sessionProperties - completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -/** - Register a request handler to handle requests from other client session - for a branch of the message path hierarchy. - - Each control session may register a single handler for a branch. When the - handler is no longer required, it may be closed using the - PTDiffusionTopicTreeRegistration provided by the completionHandler. To change - the handler for a particular branch the previous handler must first be - closed. - - This is equivalent to calling - `#addRequestHandler:forPath:sessionProperties:completionHandler:` - with an empty array for session properties. - - @param handler Specifies the handler to be registered at the server. - - @param path The request path. - - @param 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 the `registration` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.5 - */ --(void)addRequestHandler:(PTDiffusionRequestHandler *)handler - forPath:(NSString *)path - completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -/** - Send a request to all sessions that satisfy a given session filter. - - @param request The request to send. - - @param filter The session filter expression. - - @param path The path to send the request to. - - @param responseStream The stream that will handle the incoming responses. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. Success indicates that the server has dispatched all - the requests. - - @note The completion handler block will be invoked with a `nil` for the `error` - argument and zero for the `count` argument if no client sessions matched the - filter. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toFilter:(NSString *)filter - path:(NSString *)path - responseStream:(PTDiffusionSessionResponseStream *)responseStream - completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricCollector.h deleted file mode 100644 index fc66026..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricCollector.h +++ /dev/null @@ -1,66 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The common base interface for metric collectors. - - @since 6.7 - */ -@interface PTDiffusionMetricCollector: NSObject - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - Name of the metric collector - - @since 6.7 - */ -@property(nonatomic, readonly) NSString *name; - - -/** - Indicates whether the metric collector exports to Prometheus. - - @since 6.7 - */ -@property(nonatomic, readonly) BOOL exportsToPrometheus; - - -/** - @brief Limit the number of groups maintained by this metric collector. - - Session metric collectors can {@link PTDiffusionSessionMetricCollector#groupByProperties - group metrics by property}. - Topic metric collectors can {@link PTDiffusionSessionTopicCollector#groupsByTopicType - group metrics by topic type}. - This property places an upper limit on the number of groups that will be maintained for the - metric collector. - - For example, if a session metric collector groups by `$SessionId` and `maximumGroups` is 10, - then metrics will only be collected for the first 10 sessions. - - @since 6.8 - */ -@property(nonatomic, readonly) NSInteger maximumGroups; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h deleted file mode 100644 index def2453..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The common base interface for metric collectors. - - @since 6.7 - */ -@interface PTDiffusionMetricCollectorBuilder: NSObject - - -/** - @brief Resets the builder. - - @return the builder - */ --(instancetype)reset; - - -/** - @brief Specifies whether the metric collector should export metrics - to Prometheus or not. - - The default is that metrics are not exported to Prometheus. - - @param export true to export metrics to Prometheus. - - @return the builder - */ --(instancetype)exportToPrometheus:(BOOL)export; - - -/** - @brief Set the maximum number of groups maintained by the metric collector. - - By default, the number of groups is not limited. - - @param limit a positive integer - - @return the builder - */ --(instancetype)maximumGroups:(NSInteger)limit; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h deleted file mode 100644 index 2a189a4..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h +++ /dev/null @@ -1,239 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionMetricCollector; -@class PTDiffusionTopicMetricCollector; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client to configure metric collectors. - - Diffusion servers provide metrics which are made available in several ways: -
    -
  • Java Management Extensions (JMX) MBeans. -
  • Through the Diffusion Management Console. -
  • As endpoints for Prometheus. -
- - Metric collectors allow custom aggregation of metrics that are relevant to - your application. There are no default metric collectors, only the ones that - you create. - - There are two types of metric collector: Session Metric Collectors and Topic - Metric Collectors. - - For full details regarding the configuration and operation of metric - collectors see the user manual. - - ### Session Metric Collectors. - - These can be configured to record metric data for a subset of all sessions, - specified with a session filter. - - The set of metrics recorded by each session metric collector is the same as - those recorded for the whole server. For full details of session metrics, see - the table in the user manual. - - If the session filters of two different session metric collectors select the - same session, both will record metrics for that session. It is only valid to - add the metrics of different session metric collectors if their session - filters select distinct sets of sessions. - - You can optionally group the sessions within a collector by session - properties. - - ### Topic Metric Collectors - These can be configured to record metric data for a subset of all topics, - specified with a topic selector. - - You can optionally group the topics within a collector by topic type. - - The set of metrics recorded by each topic metric collector is the same as - those recorded for the whole server. For full details of topic metrics, see - the table in the user manual. - - If the topic selectors of two different topic metric collectors select the - same topic, both will record metrics for that topic. It is only valid to add - the metrics of different topic metric collectors if their topic selectors - select distinct sets of topics. - - ### Access control - - The following access control restrictions are applied: -
    -
  • To {@link #putSessionMetricCollector:completionHandler: put} or - {@link #removeSessionMetricCollector:completionHandler: remove} a session metric collector, a - session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} - global permission. -
  • To {@link #putTopicMetricCollector:completionHandler: put} or - {@link #removeTopicMetricCollector:completionHandler: remove} a topic metric collector, a - session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} - global permission. -
  • To list {@link #listSessionMetricCollectors: session metric collectors} or - {@link #listTopicMetricCollectors: topic metric collectors}, a session needs - the {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} global permission. -
- - ### Accessing the feature - This feature may be obtained from a {@link Session session} as follows: -
-    PTDiffusionMetricsFeature *const metrics = session.metrics;
-  
- - @author Push Technology Limited - - @since 6.7 - */ -@interface PTDiffusionMetricsFeature : PTDiffusionFeature - -/** - Add a session metric collector, replacing any with the same name. - - @param collector the session metric collector - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_InvalidFilter if the metric collector session filter is invalid; -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void)putSessionMetricCollector:(PTDiffusionSessionMetricCollector *)collector - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - Retrieves the current session metric collectors. - - @param 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 the `collectors` will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) listSessionMetricCollectors:(void (^)(NSArray* _Nullable collectors, - NSError * _Nullable error)) completionHandler; - - -/** - Removes any session metric collector with the given name, if it exists. - - @param name the session metric collector name - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) removeSessionMetricCollector:(NSString *)name - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - Add a topic metric collector, replacing any with the same name. - - {@link PTDiffusionTopicMetricCollector} instance can be created using - {@link PTDiffusionTopicMetricCollectorBuilder}. - - @param collector the topic metric collector - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) putTopicMetricCollector:(PTDiffusionTopicMetricCollector *)collector - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - Retrieves the current topic metric collectors. - - @param 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 the `collectors` will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) listTopicMetricCollectors:(void (^)(NSArray* _Nullable collectors, - NSError * _Nullable error)) completionHandler; - - -/** - Removes any topic metric collector with the given name, if it exists. - - @param name the topic metric collector name - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) removeTopicMetricCollector:(NSString *)name - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h deleted file mode 100644 index 6d29125..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionMissingTopicNotification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Handler called when a client session subscribes or fetches using a topic - selector that matches no topics. - - @see PTDiffusionTopicControlFeature - - @since 5.7 - */ -@protocol PTDiffusionMissingTopicHandler - -/** - Called when a session requests a topic that does not exist, and the - topic path belongs to part of the topic tree for which this handler - was registered. - - @param registration The topic tree registration for which this handler applies. - - @param notification The missing topic notification. - - @since 5.7 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - hadMissingTopicNotification:(PTDiffusionMissingTopicNotification *)notification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h deleted file mode 100644 index f356365..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h +++ /dev/null @@ -1,108 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Notification that a session has made a request using a selector that does - not match any topics. - - @see PTDiffusionMissingTopicHandler - - @since 5.7 - */ -@interface PTDiffusionMissingTopicNotification : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - Cancel the client request on the server. - - @deprecated Since 6.6. - This method is a no-op. In previous releases this would - prevent the selector from being added to the session's - selections. - Since 6.6, the selector is always added to the session's - selections before this notification is issued regardless. - - @since 5.7 - */ --(void)cancel -__deprecated_msg("Will be removed in a future release."); - - -/** - Instruct the server to complete processing of the request. - - @deprecated Since 6.6 - This method is a no-op. In previous releases this would - cause the selector to be added to the sessions's - selections and the selection to be re-evaluated. - Since 6.6, the selector is always added to the session's - selections before this notification is issued. - - - @since 5.7 - */ --(void)proceed -__deprecated_msg("Will be removed in a future release."); - - -/** - The identity of the client session that made the request. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - - -/** - The topic selector expression that triggered this notification. - - @since 5.7 - */ -@property(nonatomic, readonly) NSString* topicSelectorExpression; - - -/** - The list of the names of the servers through which the notification - has been routed. - - The first name in this list will be the name of the server to which - the originating session was connected. If the notification was routed - through remote server connections before reaching the recipient then - those servers will also be listed in the order that the notification - passed through them. - - @since 6.7 - */ -@property (nonatomic, readonly) NSArray* serverNames; - - -/** - The session properties of the session that made the request. - - @since 6.7 - */ -@property (nonatomic, readonly) NSDictionary* sessionProperties; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h deleted file mode 100644 index f0d1233..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h +++ /dev/null @@ -1,294 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A mutable data model based upon a schema. - - An initial version of such a model can be created from a schema using - PTDiffusionRecordV2Schema#createMutableModel. A model created in this way will - have all mandatory fields set to default values. - - The model may then be updated as required and then at any time a - PTDiffusionRecordV2 object can be generated from the current state by reading - the PTDiffusionRecordV2Model#value property. That object may then be used to - update a topic. - - When values for integer or decimal type fields are supplied the values are - validated and normalized. All number values will have any insignificant - leading zeroes removed. A decimal value will also be rounded to its specified - scale using half-up rounding. - - @since 6.0 - */ -@interface PTDiffusionMutableRecordV2Model : PTDiffusionRecordV2Model - -/** - Appends a new initialized record occurrence to the end of a variable - multiplicity record list. - - As the only variable multiplicity record can be the last one there is no need - to name the record. This method will add to the list of occurrences of the last - defined record. The record will be initialized with default values appropriate - to the schema definition and may then have individual field items set - separately. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the last or only record is not a variable repeating record or has already - reached the maximum number of occurrences. - - @since 6.0 - */ --(BOOL)addRecordError:(NSError **)error; - -/** - Appends new values to the end of a variable length field list. - - This is a convenience method for adding to the end of the last record and is - therefore useful when there is only one record type. - - @param fieldValues The values to add. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - details conflict with the schema, possibly because the last field of the last - record is not a variable multiplicity field or the maximum number of - occurrences for the field would be breached. - - one of the values is incompatible with the field type. - - @exception NSInvalidArgumentException If fieldValues is `nil`. - - @note This method does nothing if fieldValues is an empty array. - - @since 6.0 - */ --(BOOL)addFieldValues:(NSArray *)fieldValues - error:(NSError **)error; - -/** - Appends new values to the end of a variable length field list. - - This can only be used for a variable multiplicity field which can only be the - last field in a record and therefore the field does not need to be named. - - @param recordName The name of the record. - - @param recordIndex The index identifying the occurrence of the record. - - @param fieldValues The values to add. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - details conflict with the schema, possibly because the last field of the - record is not a variable multiplicity field or the maximum number of - occurrences for the field would be breached. - - one of the values is incompatible with the field type. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If either recordName or fieldValues is - `nil`, or if recordIndex is negative. - - @note This method does nothing if fieldValues is an empty array. - - @since 6.0 - */ --(BOOL)addToRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldValues:(NSArray *)fieldValues - error:(NSError **)error; - -/** - Remove all optional instances of a variable multiplicity field. - - As a variable repeating field can only be the last or only field within a - record then the field name does not need to be specified. - - This will only remove field occurrences down to the minimum number of - occurrences specified by the schema. - - If the last or only field within the record is not defined as variable - multiplicity, this would have no effect. - - @param recordName The name of the record. - - @param recordIndex The index of the record. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - `recordName` is not defined in the schema. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordName is `nil`, or if recordIndex - is negative. - - @since 6.0 - */ --(BOOL)clearVariableFieldsForRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - error:(NSError **)error; - -/** - Removes all optional instances of a variable multiplicity record. - - As a variable repeating record can only be the last or only record then the - record name does not need to be specified. - - This will only remove record occurrences down to the minimum number of - occurrences specified by the schema. - - If the last or only record is not defined as variable multiplicity, calling - this method has no effect. - - @since 6.0 - */ --(void)clearVariableRecords; - -/** - Removes the specified occurrence of a variable multiplicity field. - - A variable multiplicity field must be the last or only field within a record - and therefore the field name is not required. - - @param recordName The name of the record. - - @param recordIndex The record index. - - @param fieldIndex The index of the field to remove. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the record is not known or the last or only field within the record is not a - variable repeating field or can not be removed as it would violate the - minimum number of occurrences. - - either `recordIndex` or `fieldIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is - negative or fieldIndex is negative. - - @since 6.0 - */ --(BOOL)removeFieldWithIndex:(SInt32)fieldIndex - fromRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - error:(NSError **)error; - -/** - Removes the specified occurrence of a variable multiplicity record. - - A variable multiplicity record must be the last or only record within a schema - and therefore the record name is not required. - - @param recordIndex The index of the record to remove. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the last or only record is not a variable multiplicity record or can not be - removed as it would violate the minimum number of occurrences. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordIndex is negative. - - @since 6.0 - */ --(BOOL)removeRecordWithIndex:(SInt32)recordIndex - error:(NSError **)error; - -/** - Sets a specified field value. - - @param recordName The name of the record containing the field. - - @param recordIndex The index of the record containing the field. - - @param fieldName The name of the field. - - @param fieldIndex The index of the field. - - @param fieldValue The new value. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the details given conflict with the schema or the value is incompatible with - the schema field type. - - either `recordIndex` or `fieldIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is - negative, fieldName is `nil`, fieldIndex is negative or fieldValue is `nil`. - - @since 6.0 - */ --(BOOL)setRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldName:(NSString *)fieldName - fieldIndex:(SInt32)fieldIndex - toFieldValue:(NSString *)fieldValue - error:(NSError **)error; - -/** - Sets a specified field value. - - This allows an item to be addressed using a key of the form - `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in - which case 0 is assumed. The record part may also be omitted in which case the - first occurrence of the first record is assumed. - - @param key The field key. - - @param fieldValue The field value. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the key does not address a valid field. - - a specified index is out of bounds. - - the key format is invalid. - - a specified index is not a valid number. - - @exception NSInvalidArgumentException If either key or fieldValue is `nil`. - - @since 6.0 - */ --(BOOL)setFieldValue:(NSString *)fieldValue - forKey:(NSString *)key - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h deleted file mode 100644 index 6872693..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h +++ /dev/null @@ -1,44 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionNumberFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a numeric fetch operation issued to the - server. - - A numeric fetch operation is issued using either of the - PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: - or - PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: - methods. - - @since 6.2 - */ -@interface PTDiffusionNumberFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * numberResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h deleted file mode 100644 index 237a929..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a numeric fetch operation for a single - selected topic. - - A numeric fetch operation is issued using either of the - PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: - or - PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: - methods. - - @since 6.2 - */ -@interface PTDiffusionNumberFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) NSNumber* number; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h deleted file mode 100644 index 287674f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling numeric messaging requests with - a handler registered at the server. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionNumberRequestDelegate - -/** - Called when a numeric request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param number The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithNumber:(nullable NSNumber *)number - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h deleted file mode 100644 index c31c0fc..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h +++ /dev/null @@ -1,47 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Number messaging requests. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionNumberRequestStreamDelegate - -/** - Called when a numeric request has been received. - - @param stream The stream that received the request. - - @param number The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithNumber:(nullable NSNumber *)number - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h deleted file mode 100644 index 177da2c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling numeric messaging responses from - individual sessions. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionNumberSessionResponseStreamDelegate - -/** - Called when a session responds to a request with a number. - - @param stream The stream that received the response. - - @param number The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithNumber:(nullable NSNumber *)number - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h deleted file mode 100644 index a62f940..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as a number. - - @since 6.0 - */ -@interface PTDiffusionNumberTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The numeric value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) NSNumber* number; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index 6cdc4cf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionNumberTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - numeric values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with numeric values. - - @since 6.0 - */ -@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldNumberEvent The previous event. If `nil` then this is the first event. - - @param newNumberEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldNumberEvent:(nullable PTDiffusionNumberTimeSeriesEvent *)oldNumberEvent - newNumberEvent:(PTDiffusionNumberTimeSeriesEvent *)newNumberEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h deleted file mode 100644 index 85d578f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionNumberTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of number time series events. - - @since 6.0 - */ -@interface PTDiffusionNumberTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The number time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* numberEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h deleted file mode 100644 index 3e88e19..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h +++ /dev/null @@ -1,112 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - numerical primitive values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionNumberUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly, nullable) NSNumber* value; - -/** - Sets the topic to a specified value or no value. - - When a `nil` value is supplied to this method for a PTDiffusionTopicType_Int64 - or PTDiffusionTopicType_Double topic, the topic will be updated to have no - value. If a previous value was present subscribers will receive a notification - that the new value is null. New subscribers will not receive a value - notification. - - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(BOOL) setValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h deleted file mode 100644 index f95c95d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for number - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for numeric - topics. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -@protocol PTDiffusionNumberValueStreamDelegate - -/** - An update was received for a topic path handled by a number value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldNumber The previous value. If `nil` then this is either the first - value, or the previous value was `nil` indicating no value. - - @param newNumber The new value derived from the last update received from the - server, or `nil` if there is no value. - - @since 6.0 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldNumber:(nullable NSNumber *)oldNumber - newNumber:(nullable NSNumber *)newNumber; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h deleted file mode 100644 index e16e776..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A constraint requiring the current value of a JSON topic to match the - partially described value. - - The Swift code: - - let constraint = try PTDiffusionUpdateConstraint - .jsonValue() - .withStringValue(idValue, atPointer: "/id") - .without("/cancellation") - - creates a constraint for a JSON object with a specific ID value and no value - for a "cancellation" property. - - Missing keys are matched differently to keys that are present with `null` - values. - - @since 6.3 - */ -@interface PTDiffusionPartialJSONUpdateConstraint : PTDiffusionUpdateConstraint - -/** - Require a `null` value at a specific position in the JSON object. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the `null` value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return A new constraint or `nil` if there was an error. - - @exception NSInvalidArgumentException If pointer is `nil`. - - @since 6.3 - */ --(nullable instancetype)withNullAt:(NSString *)pointer - error:(NSError **)error; - -/** - Require a specific position in the JSON object to be absent. This does not - match positions that have `null` values. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference that should have no value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return A new constraint or `nil` if there was an error. - - @exception NSInvalidArgumentException If the pointer argument is `nil`. - - @since 6.3 - */ --(nullable instancetype)without:(NSString *)pointer - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPathPermission.h deleted file mode 100644 index de3e036..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPathPermission.h +++ /dev/null @@ -1,203 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Permissions protecting access-controlled operations that are evaluated - for a specific topic path. - - @see PTDiffusionGlobalPermission - - @since 6.5 - - */ - -@interface PTDiffusionPathPermission : PTDiffusionEnumeration - -/** - Required to receive information from a topic. - - If a session does not have read_topic permission for a path, the path will be - excluded from the results of subscription or fetch operations for the session, - and the path's details cannot be retrieved by the session. - - @see #selectTopic - - @return Instance indicating permission to receive information from a topic. - - @since 6.3 - */ -+(instancetype)readTopic; - -/** - Update a topic. - - @return Instance indicating permission to update a topic. - - @since 6.3 - */ -+(instancetype)updateTopic; - -/** - Add a topic or remove a topic. - - @return Instance indicating permission to add or remove a topic. - - @since 6.3 - */ -+(instancetype)modifyTopic; - -/** - Send a message to a handler registered with the server. - - @return Instance indicating permission to send a message to a handler - registered with the server. - - @since 6.3 - */ -+(instancetype)sendToMessageHandler; - -/** - Send a message to a client session. - - @return Instance indicating permission to send a message to a client session. - - @since 6.3 - */ -+(instancetype)sendToSession; - -/** - Use a topic selector that selects the topic path. - - A session must have this permission for the path prefix of any topic selector - used to subscribe or fetch. - - When the subscription or fetch request completes, the resulting topics are - further filtered based on the #readTopic permission. - - A session that has #readTopic but not #selectTopic for a particular topic path - cannot subscribe directly to topics belonging to the path. However, the session - can be independently subscribed by a control session that has - PTDiffusionGlobalPermission#modifySession permission in addition to the - appropriate #selectTopic permission. - - @return Instance indicating permission to use a topic selector that selects - the topic path. - - @since 6.3 - */ -+(instancetype)selectTopic; - -/** - Evaluate queries that return a non-current view of a time series path. - - The #readTopic permission is required to evaluate any type of query for a time - series path. This permission is additionally required for queries that - potentially return a non-current view of all or part of a time series. Such - queries include value range queries that specify an edit range, and all types - of edit range query. - - @return Instance indicating permission to evaluate queries that return a - non-current view of a time series path. - - @see PTDiffusionTimeSeriesFeature - - @since 6.3 - */ -+(instancetype)queryObsoleteTimeSeriesEvents; - -/** - Submit edits to time series topic events. - - The #updateTopic permission is required to update a time series path. This - permission is additionally required to submit edits to a time series path. - - @return Instance indicating permission to submit edits to time series - topic events. - - @see PTDiffusionTimeSeriesFeature - @see #editOwnTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editTimeSeriesEvents; - -/** - Submit edits to time series path events which have an author which is the same - as the principal of the calling session. - - This permission is a more restrictive alternative to #editTimeSeriesEvents. - - The #updateTopic permission is required to update a time series path. This - permission is additionally required to submit edits to a time series path - where the event author is the same as the principal of the calling session. - - @return Instance indicating permission to submit edits to time series path - events which have an author identical to the principal of the - calling session. - - @see PTDiffusionTimeSeriesFeature - @see #editTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editOwnTimeSeriesEvents; - -/** - Acquire a session lock. - - @return Instance indicating permission to acquire a session lock. - - @see PTDiffusionSessionLock - - @since 6.3 - */ -+(instancetype)acquireLock; - -/** - A permission that is unsupported by the session. - - @return Instance indicating an unsupported permission. - - @since 6.3 - */ -+(instancetype)unknownTopicPermission; - - -/** - Expose a branch of the topic tree as a virtual session tree. - - The EXPOSE_BRANCH path permission is powerful since it allows a - session to expose a whole branch of the topic tree under a different set - of path permissions. - - A session granted EXPOSE_BRANCH for a particular path effectively - has the permission for all descendant paths. From a security perspective, - if a role grants EXPOSE_BRANCH at branch X it is - ineffectual for it also to deny EXPOSE_BRANCH at a child branch - X/Y because a branch mapping to X can still expose paths - below X/Y. - - @return Instance indicating permission to expose branches. - - @see PTDiffusionSessionTrees - @since 6.7 -*/ -+(instancetype)exposeBranch; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPingDetails.h deleted file mode 100644 index 537326e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPingDetails.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Details returned in response to a ping to the server. - - A ping details object is immutable. - - @see PTDiffusionPingsFeature - - @since 5.7 - */ -@interface PTDiffusionPingDetails : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The round trip time from when the ping was sent to the time - the response was received. - - @since 5.7 - */ -@property(nonatomic, readonly) NSTimeInterval roundTripTime; - -/** - The time the ping was sent. - - @since 5.7 - */ -@property(nonatomic, readonly) NSDate* timestamp; - -/** - Compares the receiver to the given content. - - @param pingDetails The ping details object with which to compare the receiver. - - @return `YES` if the ping details is equal to the contents of the receiver, otherwise `NO`. - - @since 5.7 - */ --(BOOL)isEqualToPingDetails:(nullable PTDiffusionPingDetails *)pingDetails; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPingsFeature.h deleted file mode 100644 index 0cbeeb1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPingsFeature.h +++ /dev/null @@ -1,51 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionPingDetails; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Pings feature provides a client session with the ability to ping the server. - - The main purpose of a ping is to test, at a very basic level, the current - network conditions that exist between the client session and the server it is - connected to. Each ping request will return details on the latency - experienced in the form of a round-trip time value. - - The Pings feature for a session can be obtained from the session's `pings` property. - - @see PTDiffusionSession - - @since 5.7 - */ -@interface PTDiffusionPingsFeature : PTDiffusionFeature - -/** - Send a ping to the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if the completionHandler is `nil`. - - @since 5.7 - */ --(void)pingServerWithCompletionHandler:(void (^)(PTDiffusionPingDetails * _Nullable details, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPrimitive.h deleted file mode 100644 index 2fd050d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionPrimitive.h +++ /dev/null @@ -1,2408 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionNumberFetchResult; -@class PTDiffusionNumberTimeSeriesQueryResult; -@class PTDiffusionNumberUpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionStringFetchResult; -@class PTDiffusionStringTimeSeriesQueryResult; -@class PTDiffusionStringUpdateStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionNumberRequestDelegate; -@protocol PTDiffusionNumberRequestStreamDelegate; -@protocol PTDiffusionNumberSessionResponseStreamDelegate; -@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionNumberValueStreamDelegate; -@protocol PTDiffusionStringRequestDelegate; -@protocol PTDiffusionStringRequestStreamDelegate; -@protocol PTDiffusionStringSessionResponseStreamDelegate; -@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionStringValueStreamDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Support for creating value streams for primitive values including - string and numeric types. - - @since 6.0 - */ -@interface PTDiffusionPrimitive : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Creates a value stream capable of receiving double-precision floating point - numbers (Eight-byte IEEE 754). - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)doubleFloatNumberValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving 64-bit integer values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)int64NumberValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving string values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)stringValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving double-precision floating point - numeric time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)doubleFloatNumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving 64-bit integer time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)int64NumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving string time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)stringTimeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving double-precision floating point - numeric requests (Eight-byte IEEE 754) for a handler registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)doubleFloatRequestHandlerWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving 64-bit integer requests for a - handler registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)int64RequestHandlerWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving string requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)stringRequestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving double-precision floating point - numeric requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)doubleFloatRequestStreamWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving 64-bit integer requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)int64RequestStreamWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving string requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)stringRequestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving double-precision floating point - numeric responses from discrete sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)doubleFloatSessionResponseStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving 64-bit integer responses from - discrete sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)int64SessionResponseStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving string responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)stringSessionResponseStreamWithDelegate:(id)delegate; - -/** - Creates a request that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param value The value to send as the request. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequest *)requestWithDouble:(double)value; - -/** - Creates a request that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param number The value to send as the request. This may be `nil` in order to - create a 'null' request. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(nullable PTDiffusionRequest *)requestWithDoubleFloatNumber:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a request that can be used to send the given 64-bit integer value using - messaging. - - @param value The value to send as the request. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequest *)requestWithLongLong:(long long)value; - -/** - Creates a request that can be used to send the given 64-bit integer value using - messaging. - - @param number The value to send as the request. This may be `nil` in order to - create a 'null' request. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(nullable PTDiffusionRequest *)requestWithInt64Number:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a request that can be used to send the given string using messaging. - - @param string The value to send as the request. This may be `nil` in order to - create a 'null' request. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(nullable PTDiffusionRequest *)requestWithString:(nullable NSString *)string - error:(NSError **)error; - -/** - Creates a response that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param value The value to send as the response. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionResponse *)responseWithDouble:(double)value; - -/** - Creates a response that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param number The value to send as the response. This may be `nil` in order to - create a 'null' response. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new response, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(nullable PTDiffusionResponse *)responseWithDoubleFloatNumber:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a response that can be used to send the given 64-bit integer value - using messaging. - - @param value The value to send as the response. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionResponse *)responseWithLongLong:(long long)value; - -/** - Creates a response that can be used to send the given 64-bit integer value - using messaging. - - @param number The value to send as the response. This may be `nil` in order to - create a 'null' response. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new response, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(nullable PTDiffusionResponse *)responseWithInt64Number:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a response that can be used to send the given string using messaging. - - @param string The value to send as the response. This may be `nil` in order to - create a 'null' response. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new response, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(nullable PTDiffusionResponse *)responseWithString:(nullable NSString *)string - error:(NSError **)error; - -/** - Returns an update constraint requiring the current value of a topic to match - the given double-precision floating point (Eight-byte IEEE 754) value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param value The value to be matched against the topic value. - - @return The new constraint, or `nil` on failure. - - @since 6.3 - */ -+(PTDiffusionUpdateConstraint *)updateConstraintWithDouble:(double)value; - -/** - Returns an update constraint requiring the current value of a topic to match - the given double-precision floating point (Eight-byte IEEE 754) value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param number The value to be matched against the topic value. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new constraint, or `nil` on failure. - - @exception NSInvalidArgumentException If the number argument is `nil`. - - @since 6.3 - */ -+(nullable PTDiffusionUpdateConstraint *)updateConstraintWithDoubleFloatNumber:(NSNumber *)number - error:(NSError **)error; - -/** - Returns an update constraint requiring the current value of a topic to match - the given 64-bit integer value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param value The value to be matched against the topic value. - - @return The new constraint, or `nil` on failure. - - @since 6.3 - */ -+(PTDiffusionUpdateConstraint *)updateConstraintWithLongLong:(long long)value; - -/** - Returns an update constraint requiring the current value of a topic to match - the given 64-bit integer value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param number The value to be matched against the topic value. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new constraint, or `nil` on failure. - - @exception NSInvalidArgumentException If the number argument is `nil`. - - @since 6.3 - */ -+(nullable PTDiffusionUpdateConstraint *)updateConstraintWithInt64Number:(NSString *)number - error:(NSError **)error; - -/** - Returns an update constraint requiring the current value of a topic to match - the given string value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param string The value to be matched against the topic value. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new constraint, or `nil` on failure. - - @exception NSInvalidArgumentException If the number argument is `nil`. - - @since 6.3 - */ -+(nullable PTDiffusionUpdateConstraint *)updateConstraintWithString:(NSString *)string - error:(NSError **)error; - -@end - -/** - @brief Extension adding support for responding to requests using primitive - values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionPrimitive) - -/** - Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a - request. - - @param value The value to send in response. - - @since 6.0 - */ --(void)respondWithDouble:(double)value; - -/** - Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a - request. - - @param number The value to send in response. This may be `nil` in order to send - a 'null' response. - - @param error Location to store a reason if this method returns `NO` to - indicate failure. - - @return `YES` if a response was queued for dispatch or `NO` if the supplied - number could not be encoded using this data type. - - @since 6.0 - */ --(BOOL)respondWithDoubleFloatNumber:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Dispatch a 64-bit integer response to a request. - - @param value The value to send in response. - - @since 6.0 - */ --(void)respondWithLongLong:(long long)value; - -/** - Dispatch a 64-bit integer response to a request. - - @param number The value to send in response. This may be `nil` in order to send - a 'null' response. - - @param error Location to store a reason if this method returns `NO` to - indicate failure. - - @return `YES` if a response was queued for dispatch or `NO` if the supplied - number could not be encoded using this data type. - - @since 6.0 - */ --(BOOL)respondWithInt64Number:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Dispatch a string response to a request. - - @param string The value to send in response. This may be `nil` in order to send - a 'null' response. - - @param error Location to store a reason if this method returns `NO` to - indicate failure. - - @return `YES` if a response was queued for dispatch or `NO` if the supplied - string could not be encoded using this data type. - - @since 6.0 - */ --(BOOL)respondWithString:(nullable NSString *)string - error:(NSError **)error; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a primitive value in response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionPrimitive) - -/** - Send a request for which a string response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; - -/** - Send a request for which a double-precision floating point (Eight-byte IEEE 754) - response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; - -/** - Send a request for which a 64-bit integer response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a string response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; - -/** - Send a request to a session for which a double-precision floating point - (Eight-byte IEEE 754) response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; - -/** - Send a request to a session for which a 64-bit integer response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using primitive values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) - -/** - Update a time series topic by appending a new string value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - stringValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new string value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - stringValue:(nullable NSString *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new double-precision floating point - (Eight-byte IEEE 754) value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) appendToTopicPath:(NSString *)topicPath - doubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new double-precision floating point - (Eight-byte IEEE 754) value with a supplied timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void) appendToTopicPath:(NSString *)topicPath - doubleFloatNumberValue:(nullable NSNumber *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new 64-bit integer value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - int64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new 64-bit integer value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - int64NumberValue:(nullable NSNumber *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new string value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - stringValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new double-precision floating point - (Eight-byte IEEE 754) value that overrides the value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void) editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - doubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new 64-bit integer value that - overrides the value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - int64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have string values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - stringCompletionHandler:(void (^)(PTDiffusionStringTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have double-precision - floating point (Eight-byte IEEE 754) values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - doubleFloatNumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have 64-bit integer - values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - int64NumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with - primitive values. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionPrimitive) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with string. - - The string data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as strings will be - removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / - PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / - PTDiffusionFetchRequest::beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchStringValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionStringFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with double-precision floating point (Eight-byte IEEE - 754). - - The doubleFloat data type constrains the topic types. So, any topic types - specified in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as - double-precision floating point (Eight-byte IEEE 754) will be removed from the - list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / - PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / - PTDiffusionFetchRequest::beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchDoubleFloatNumberValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with 64-bit integer. - - The int64 data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as 64-bit integer will - be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / - PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / - PTDiffusionFetchRequest::beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchInt64NumberValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with primitive values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionPrimitive) - -/** - Sets a topic to a specified string value, or null. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toStringValue:(nullable NSString *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toDoubleValue:(double)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) number value, or null. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toDoubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified 64-bit integer value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toLongLongValue:(long long)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified 64-bit integer number value, or null. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toInt64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified string value, or null, if a constraint is - satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toStringValue:(nullable NSString *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toDoubleValue:(double)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) number value, or null, if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toDoubleFloatNumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified 64-bit integer value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toLongLongValue:(long long)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified 64-bit integer number value, or null, if a - constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toInt64NumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a string value, or null. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#string. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToStringValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleValue:(double)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) number value, or null. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a 64-bit integer value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToLongLongValue:(long long)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a 64-bit integer number value, or null. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToInt64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a string value, or null, if a constraint - is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#string. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToStringValue:(nullable NSString *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) value if a constraint is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleValue:(double)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) number value, or null, if a constraint is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleFloatNumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a 64-bit integer value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToLongLongValue:(long long)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a 64-bit integer number value, or null, - if a constraint is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToInt64NumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Creates an update stream to use for updating a specific topic with string - values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with 64-bit - integer values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with string - values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values if a constraint is - satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for updating a specific topic with 64-bit - integer values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - string values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#string. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - 64-bit integer values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - string values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#string. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values if a constraint is - satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - 64-bit integer values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -/** - @brief Extension adding support to partial JSON update constraints for - requiring primitive values at locations referenced with a JSON pointer. - - @since 6.3 - */ -@interface PTDiffusionPartialJSONUpdateConstraint (PTDiffusionPrimitive) - -/** - Require a double-precision floating point (Eight-byte IEEE 754) value at a - specific position in the JSON object. - - @param value The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given double value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If pointer is `nil`. - - @since 6.3 - */ --(nullable instancetype)withDoubleValue:(double)value - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a double-precision floating point (Eight-byte IEEE 754) number value at - a specific position in the JSON object. - - @param number The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given number value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If number or pointer is `nil`. - - @note To match a JSON `null` at the referenced location use - PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: - - @since 6.3 - */ --(nullable instancetype)withDoubleFloatNumberValue:(NSNumber *)number - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a 64-bit integer value at a specific position in the JSON object. - - @param value The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given long value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If pointer is `nil`. - - @since 6.3 - */ --(nullable instancetype)withLongLongValue:(long long)value - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a 64-bit integer number value at a specific position in the JSON - object. - - @param number The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given 64-bit number value - at the given specific position in the JSON object. - - @exception NSInvalidArgumentException If number or pointer is `nil`. - - @note To match a JSON `null` at the referenced location use - PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: - - @since 6.3 - */ --(nullable instancetype)withInt64NumberValue:(NSNumber *)number - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a string value at a specific position in the JSON object. - - @param string The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given string value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If string or pointer is `nil`. - - @note To match a JSON `null` at the referenced location use - PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: - - @since 6.3 - */ --(nullable instancetype)withStringValue:(NSString *)string - atPointer:(NSString *)pointer - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2.h deleted file mode 100644 index 4760b44..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2.h +++ /dev/null @@ -1,742 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionRecordV2Delta; -@class PTDiffusionRecordV2FetchResult; -@class PTDiffusionRecordV2Model; -@class PTDiffusionRecordV2Schema; -@class PTDiffusionRecordV2TimeSeriesQueryResult; -@class PTDiffusionRecordV2UpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionResponse; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionRecordV2RequestDelegate; -@protocol PTDiffusionRecordV2RequestStreamDelegate; -@protocol PTDiffusionRecordV2SessionResponseStreamDelegate; -@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionRecordV2ValueStreamDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An immutable record value with support for binary deltas. - - @since 6.0 - */ -@interface PTDiffusionRecordV2 : PTDiffusionBytes - -/** - Parses the value into a model based upon a specified schema. - - This assumes that data is compatible with the schema and does not do any - validation. There is no need to validate the data if this has been done on - entry or at the server. However, if the data is invalid then issues may occur - when attempting to access it. - - If it is not certain that the data is valid then the - #validatedModelWithSchema:error: method should be used instead. - - @param schema The schema to use for parsing the data. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable model derived from the data value; or `nil` if an error - occurred, in which case `*error` will be populated with the failure reason. - Reasons for failure include: - - the data value does not contain correctly encoded record data. - - @since 6.0 - */ --(nullable PTDiffusionRecordV2Model *)modelWithSchema:(PTDiffusionRecordV2Schema *)schema - error:(NSError **)error; - -/** - Parses the value into a model based upon a specified schema. - - @param schema The schema to use for parsing the data. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable model derived from the data value; or `nil` if an error - occurred, in which case `*error` will be populated with the failure reason. - Reasons for failure include: - - the data value does not contain correctly encoded record data. - - the data value is incompatible with the supplied schema. - */ --(nullable PTDiffusionRecordV2Model *)validatedModelWithSchema:(PTDiffusionRecordV2Schema *)schema - error:(NSError **)error; - -/** - Returns the data value as an array of arrays of strings. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable array of records derived from the data value; or `nil` if - an error occurred, in which case `*error` will be populated with the failure - reason. - - @since 6.0 - */ --(nullable NSArray *> *)recordsWithError:(NSError **)error; - -/** - Returns the data value as an array of fields. - - This disregards record boundaries. If there is more than one record, they are - concatenated to produce a list of all of the fields. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable array of fields derived from the data value; or `nil` if - an error occurred, in which case `*error` will be populated with the failure - reason. - - @note This method would normally only be used when it is known that there is - only one record. - - @since 6.0 - */ --(nullable NSArray *)fieldsWithError:(NSError **)error; - -/** - Compare this value with an earlier version to calculate a structural delta. - - @param originalRecord The original value to compare with this value. - - @return Structural delta between the given value and the current value. - - @since 6.0.2 - */ --(PTDiffusionRecordV2Delta *)diffFromOriginalRecord:(PTDiffusionRecordV2 *)originalRecord; - -/** - A request that can be used to send this value using messaging. - - @since 6.0.1 - */ -@property(nonatomic, readonly) PTDiffusionRequest* request; - -/** - A response that can be used to send this value using messaging. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionResponse* response; - -/** - An update constraint requiring the current value of a topic to match this - value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; - -/** - Creates a value stream capable of receiving record values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving record time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving record requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving record requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving record responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; - -/** - Compares the receiver to the given record. - - @param record The record object with which to compare the receiver. - - @return `YES` if the data in record is equal to the contents of the receiver, - otherwise `NO`. - - @note Two record objects are equal if they hold the same number of data bytes, - and if the bytes at the same position in the objects are the same. - - @since 6.3 - */ --(BOOL)isEqualToRecord:(nullable PTDiffusionRecordV2 *)record; - -@end - -/** - @brief Extension adding support for responding to requests using record values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionRecordV2) - -/** - Dispatch a response to a request. - - @param record The value to send in response. - - @exception NSInvalidArgumentException Raised if the record argument is `nil`. - - @since 6.0 - */ --(void)respondWithRecord:(PTDiffusionRecordV2 *)record; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a record response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionRecordV2) - -/** - Send a request for which a record response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a record response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using record values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionRecordV2) - -/** - Update a time series topic by appending a new record value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - recordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new record value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - recordValue:(PTDiffusionRecordV2 *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new record value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - recordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have record values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - recordCompletionHandler:(void (^)(PTDiffusionRecordV2TimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with - records. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionRecordV2) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with records. - - The record data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as - records will be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchRecordValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionRecordV2FetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with record values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionRecordV2) - -/** - Sets a topic to a specified record value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toRecordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified record value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toRecordValue:(PTDiffusionRecordV2 *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a record value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toRecordValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToRecordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a record value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toRecordValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToRecordValue:(PTDiffusionRecordV2 *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Creates an update stream to use for updating a specific topic with record - values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with record - values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - record values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - record values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h deleted file mode 100644 index feabd27..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h +++ /dev/null @@ -1,79 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Builds free format PTDiffusionRecordV2 values. - - This type of builder may be used to generate free format recordV2 values which - are not constrained by a PTDiffusionRecordV2Schema. - - Every mutating method returns the builder instance allowing calls to be - chained. - - @since 6.0.1 - */ -@interface PTDiffusionRecordV2Builder : NSObject - -/** - Adds a new record comprising the given fields. - - @param fields Field values. This may be an empty array, in which case the new - record is added with no fields. - - @return Builder instance with the new record added. - - @since 6.0.1 - */ --(instancetype)addRecordWithFields:(NSArray *)fields; - -/** - Adds one or more field values. - - If there is a current record, adds the fields to the end of the current record; - otherwise, adds a new record and adds the fields to that. - - @param fields Field values. This may be an empty array, in which case nothing - changes. - - @return Builder instance with the new field values added. - - @since 6.0.1 - */ --(instancetype)addFields:(NSArray *)fields; - -/** - Clears all current values from the builder allowing it to be reused to generate new data. - - @return Builder instance with all current values cleared. - - @since 6.0.1 - */ --(instancetype)clear; - -/** - Returns an immutable record from the current state of this builder. - - @return Immutable record from the current state of this builder. - - @since 6.0.1 -*/ --(PTDiffusionRecordV2 *)build; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h deleted file mode 100644 index a466731..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h +++ /dev/null @@ -1,66 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2DeltaChange; -@class PTDiffusionRecordV2Schema; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A description of the differences between two record values. - - @since 6.0.2 - */ -@interface PTDiffusionRecordV2Delta : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a list of the changes represented by the delta with reference to the - specified schema. - - The schema supplied must comply with the data format of the delta. No - validation takes place, so if the schema does not match the data then the - results may be unpredictable. - - @param schema The schema to use for interpreting this delta. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return List of the changes represented by the delta with reference to the - specified schema. - - @since 6.0.2 - */ --(nullable NSArray *)changesWithSchema:(PTDiffusionRecordV2Schema *)schema - error:(NSError **)error; - -/** - Compares the receiver to the given recordV2 delta. - - @param delta The object with which to compare the receiver. - - @return `YES` if the delta is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0.2 - */ --(BOOL)isEqualToRecordV2Delta:(nullable PTDiffusionRecordV2Delta *)delta; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h deleted file mode 100644 index 242bdcb..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h +++ /dev/null @@ -1,100 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2DeltaChangeType; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Represents a single change between one record value and another. - - @since 6.0.2 - */ -@interface PTDiffusionRecordV2DeltaChange : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @brief A change contained within a record delta. - - @since 6.0.2 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2DeltaChangeType* type; - -/** - The name of the affected record. - - @since 6.0.2 - */ -@property(nonatomic, readonly) NSString* recordName; - -/** - The index of the affected record. - - This will be `0` for the first (or only) record occurrence with the given name. - - @since 6.0.2 - */ -@property(nonatomic, readonly) SInt32 recordIndex; - -/** - The name of the affected field. - - This will be a zero length (empty) string if the type is - PTDiffusionRecordV2DeltaChangeType#recordsAdded or - PTDiffusionRecordV2DeltaChangeType#recordsRemoved. - - @since 6.0.2 - */ -@property(nonatomic, readonly) NSString* fieldName; - -/** - The index of the affected field. - - This will be `0` if the type is - PTDiffusionRecordV2DeltaChangeType#recordsAdded or - PTDiffusionRecordV2DeltaChangeType#recordsRemoved. - - @since 6.0.2 - */ -@property(nonatomic, readonly) SInt32 fieldIndex; - -/** - The string key representation of the affected item in the form - `recordName(recordIndex).fieldName(fieldIndex)` or just - `recordName(recordIndex)` if the type is - PTDiffusionRecordV2DeltaChangeType#recordsAdded or - PTDiffusionRecordV2DeltaChangeType#recordsRemoved. - - @since 6.0.2 - */ -@property(nonatomic, readonly) NSString* key; - -/** - Compares the receiver to the given recordV2 delta change. - - @param change The object with which to compare the receiver. - - @return `YES` if the change is equal to the contents of the receiver, - otherwise `NO`. - - @since 6.0.2 - */ --(BOOL)isEqualToRecordV2DeltaChange:(nullable PTDiffusionRecordV2DeltaChange *)change; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h deleted file mode 100644 index 764b033..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h +++ /dev/null @@ -1,98 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The type of change represented by a record delta. - - @since 6.0.2 - */ -@interface PTDiffusionRecordV2DeltaChangeType : PTDiffusionEnumeration - -/** - The change indicates that a field had its value changed. - - This could be a field that has had its value changed or a new field that has - been added at the end of a variable length record. - - The change will contain name and index details of both the record and the - field. - - @return Instance indicating that a field had its value changed. - - @since 6.0.2 - */ -+(instancetype)fieldChanged; - -/** - The change indicates that one or more field values have been added. - - This will only occur when variable multiplicity fields are used within records. - - The change will contain name and index of the record and the name and index of - the first field added. - - @return Instance indicating that one or more field values have been added. - - @since 6.0.2 - */ -+(instancetype)fieldsAdded; - -/** - The change indicates that a field value has been removed. - - This will only occur when variable multiplicity fields are used within records. - - The change will contain name and index details of the record and the name and - index of the first field removed. - - @return Instance indicating that a field value has been removed. - - @since 6.0.2 - */ -+(instancetype)fieldsRemoved; - -/** - The change indicates that one or more records have been added. - - This will only occur when variable multiplicity records are in use. - - The change will contain only the record name and the index of the first record - added. - - @return Instance indicating that one or more records have been added. - - @since 6.0.2 - */ -+(instancetype)recordsAdded; - -/** - The change indicates that one or more records have been removed. - - This will only occur when variable multiplicity records are in use. - - The change will contain only the record name and the index of the first record - removed. - - @return Instance indicating that one or more records have been removed. - - @since 6.0.2 - */ -+(instancetype)recordsRemoved; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h deleted file mode 100644 index f4fcca1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2FetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a record fetch operation issued to the - server. - - A record fetch operation is issued using the - PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionRecordV2FetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * recordResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h deleted file mode 100644 index 3d2d57d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a record fetch operation for a single - selected topic. - - A record fetch operation is issued using the - PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionRecordV2FetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) PTDiffusionRecordV2* record; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h deleted file mode 100644 index 53f84c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h +++ /dev/null @@ -1,183 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A data model based upon a schema. - - A read only model can be created from any PTDiffusionRecordV2 object using the - PTDiffusionRecordV2#modelWithSchema: method. The model then provides direct - access to the fields within the data. Fields may be accessed either by - explicitly specifying the record and field occurrence or by specifying a key of - the form: - - `recordName(recordIndex).fieldName(fieldIndex)` - - Indexes start from 0 and if omitted then 0 is assumed. The record name may also - be omitted, in which case the first record definition. This form of addressing - is useful when there is only one record definition. - - Examples of valid keys include: - - | Key | Meaning | - | --------------------------- | ----------------------------------------------------------------------------- | - | `Address(4).AddressLine(3)` | The 4th `AddressLine` occurrence within the 5th `Address` record. | - | `Address.Name` | The first (or only) `Name` field within the first (or only) `Address` record. | - | `AddressLine(1)` | The 2nd `AddressLine` field within the first (or only) record. | - | `Name` | The first (or only) `Name` field within the first (or only) record. | - - The #recordCountWithRecordName:error: and - #fieldCountWithRecordName:recordIndex:fieldName:error: methods are useful for - determining the actual number of occurrences of variable multiplicity items. - - @since 6.0 - */ -@interface PTDiffusionRecordV2Model : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns an immutable record instance generated from this model; or `nil` if an - error occurred, in which case `*error` will be populated with the failure - reason. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return Immutable record instance generated from this model. - - @since 6.0 - */ --(nullable PTDiffusionRecordV2 *)valueWithError:(NSError **)error; - -/** - Returns the actual number of occurrences of a named field within a specified - record occurrence. - - For all but variable fields this returns the schema defined number of - occurrences of the field. - - @param recordName The record name. - - @param recordIndex The record index. - - @param fieldName The field name. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The actual number of occurrences of the field as an unsigned integer; - or `nil` if an error occurred, in which case `*error` will be populated with - the failure reason. Reasons for failure include: - - either `recordName` or `fieldName` are not defined in the schema. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If either recordName or fieldName is - `nil`, or if recordIndex is negative. - - @since 6.0 - */ --(nullable NSNumber *)fieldCountWithRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldName:(NSString *)fieldName - error:(NSError **)error; - -/** - Returns the actual number of occurrences of a named record. - - If the record is not variable, this is the same as the defined number of - occurrences in the schema. - - @param recordName The record name. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The actual number of occurrences of the record as an unsigned integer; - or `nil` if an error occurred, in which case `*error` will be populated with - the failure reason. Reasons for failure include: - - `recordName` is not defined in the schema. - - @exception NSInvalidArgumentException If recordName is `nil`. - - @since 6.0 - */ --(nullable NSNumber *)recordCountWithRecordName:(NSString *)recordName - error:(NSError **)error; - -/** - Get a field value. - - This allows an item to be addressed using a key of the form - `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in - which case 0 is assumed. The record part may also be omitted in which case the - first occurrence of the first record is assumed. - - @param key The field key. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The field value; or `nil` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the key does not address a valid field. - - an index is out of bounds. - - the key format is invalid. - - an index is not a valid number. - - @exception NSInvalidArgumentException If key is `nil`. - - @since 6.0 - */ --(nullable NSString *)fieldValueForKey:(NSString *)key - error:(NSError **)error; - -/** - Get a field value. - - @param recordName The name of the record. - - @param recordIndex the index of the record. - - @param fieldName The name of the field. - - @param fieldIndex The index of the field. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The field value; or `nil` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - either `recordName` or `fieldName` are not defined in the schema. - - either `recordIndex` or `fieldIndex` is out of bounds. - - @exception NSInvalidArgumentException If either recordName or fieldName is - `nil`, recordIndex is negative or fieldIndex is negative. - - @since 6.0 - */ --(nullable NSString *)fieldValueForRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldName:(NSString *)fieldName - fieldIndex:(SInt32)fieldIndex - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h deleted file mode 100644 index e97cfda..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling record messaging requests with a - handler registered at the server. - - @see PTDiffusionRecordV2 - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionRecordV2RequestDelegate - -/** - Called when a record request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param record The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h deleted file mode 100644 index 0c309ea..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling RecordV2 messaging requests. - - @see PTDiffusionRecordV2 - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionRecordV2RequestStreamDelegate - -/** - Called when a record request has been received. - - @param stream The stream that received the request. - - @param record The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h deleted file mode 100644 index 0a3ed64..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h +++ /dev/null @@ -1,114 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionMutableRecordV2Model; -@class PTDiffusionRecordV2SchemaRecord; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A schema. - - A schema describes data value format in terms of one or more record definitions. - A record definition describes the layout of a record and comprises one or more - field definitions. - - Within the data value there can be multiple occurrences of a record or field - described by a single definition. The defined (or allowed, when describing - variable numbers) number of occurrences of each definition is referred to as - its 'multiplicity'. The multiplicity can be fixed (the item occurs a fixed - number of times), or variable (the item occurs from a minimum number of times - to a maximum number of times). If a variable field is used it must be the last - in a record definition and if a variable record is used it must be the last in - the schema definition. - - A field may be defined as of type 'string', 'integer' or 'decimal'. A decimal - type has a further property of 'scale' which defines the number of digits to - the right of the decimal point. - - @see PTDiffusionRecordV2SchemaBuilder - - @since 6.0 - */ -@interface PTDiffusionRecordV2Schema : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a schema object initialized from the given JSON definition. - - @param jsonData Encoded JSON string representation of the schema. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable schema derived from the JSON representation; or `nil` if - an error occurred, in which case `*error` will be populated with the failure - reason. - - @since 6.0 - */ -+(nullable instancetype)schemaWithJSONData:(NSData *)jsonData - error:(NSError **)error; - -/** - Returns the schema in a JSON format. - - @return Schema in a JSON format. - - @since 6.0 - */ --(NSData *)JSONData; - -/** - Create a mutable model based upon the schema. - - The model will be created with all mandatory record occurrences and all - mandatory field occurrences initialized to default values. - - Such a model may be mutated and used to generate updated PTDiffusionRecordV2 - instances for updating purposes. - - @return a new initialized model. - - @since 6.0 - */ --(PTDiffusionMutableRecordV2Model *)createMutableModel; - -/** - An immutable, ordered list of record definitions. - - There will be at least one. - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray * records; - -/** - Compares the receiver to the given schema. - - @param schema The schema object with which to compare the receiver. - - @return `YES` if the schema is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2Schema:(nullable PTDiffusionRecordV2Schema *)schema; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h deleted file mode 100644 index 5612c5d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h +++ /dev/null @@ -1,342 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2Schema; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Used to build an immutable PTDiffusionRecordV2Schema. - - A schema defines the records and fields that may occur in a RecordV2 topic - value. - - The schema must declare at least one record type and every record must have at - least one field type declared. - - Every record type and field type has a 'multiplicity' which defines the number - of times that the record or field may occur within the data. Multiplicity is - specified as a 'minimum' and 'maximum' number of occurrences or where the - minimum and maximum are the same (fixed multiplicity) then the multiplicity may - be specified as a single 'occurs' value. If the minimum and maximum are - different, this is referred to a 'variable' multiplicity. Only the last record - declared or the last field within a record may have variable multiplicity. The - maximum value may be declared as -1 to indicate that the record or field can - have an unlimited number of occurrences. - - The builder is used to add a record definition followed by the fields within - it. After all fields have been added to a record another may then be added, and - so on, and then finally #build is queried to return an immutable schema - object. - - Every mutating method returns the builder instance allowing calls to be - chained. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaBuilder : NSObject - -/** - Returns an immutable schema from the current state of this builder. - - @return Immutable schema from the current state of this builder. - - @exception NSInternalInconsistencyException No records have been specified yet - for this builder instance. - - @since 6.0 - */ --(PTDiffusionRecordV2Schema *)build; - -/** - Add a new single occurrence record to the schema. - - This is the equivalent to calling #addRecordWithName:occurs: with a value of - `1` for `occurs`. - - @param name The record name. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addRecordWithName:(NSString *)name; - -/** - Add a new fixed multiplicity record to the schema. - - This is the equivalent to calling #addRecordWithName:min:max: with the value of - `occurs` for both `min` and `max`. - - @param name The record name. - - @param occurs The number of times the record is to occur. This must be a - positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addRecordWithName:(NSString *)name - occurs:(SInt32)occurs; - -/** - Add a new record to the schema. - - @param name The record name. - - @param min The minimum number of occurrences of the record. - - @param max The maximum number of occurrences of the record. This must either be - `-1` to indicate an unlimited number or it must be a positive number greater - than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addRecordWithName:(NSString *)name - min:(SInt32)min - max:(SInt32)max; - -/** - Add a new single occurrence string field to the current record. - - This is the equivalent to calling #addStringWithName:occurs: with a value of - `1` for `occurs`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addStringWithName:(NSString *)name; - -/** - Add a new fixed multiplicity string field to the current record. - - This is the equivalent to calling #addStringWithName:min:max: with the value of - `occurs` for both `min` and `max`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param occurs The number of times the field is to occur within the record. This - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addStringWithName:(NSString *)name - occurs:(SInt32)occurs; - -/** - Add a new string field to the current record. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param min The minimum number of occurrences of the field within the record. - - @param max The maximum number of occurrences of the field within the record. - This must either be `-1` to indicate an unlimited number or it must be a - positive number greater than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addStringWithName:(NSString *)name - min:(SInt32)min - max:(SInt32)max; - -/** - Add a new single occurrence integer field to the current record. - - This is the equivalent to calling #addIntegerWithName:occurs: with a value of - `1` for `occurs`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addIntegerWithName:(NSString *)name; - -/** - Add a new fixed multiplicity integer field to the current record. - - This is the equivalent to calling #addIntegerWithName:min:max: with the value - of `occurs` for both `min` and `max`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param occurs The number of times the field is to occur within the record. This - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addIntegerWithName:(NSString *)name - occurs:(SInt32)occurs; - -/** - Add a new integer field to the current record. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param min The minimum number of occurrences of the field within the record. - - @param max The maximum number of occurrences of the field within the record. - This must either be `-1` to indicate an unlimited number or it must be a - positive number greater than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addIntegerWithName:(NSString *)name - min:(SInt32)min - max:(SInt32)max; - -/** - Add a new single occurrence decimal field to the current record. - - This is the equivalent to calling #addDecimalWithName:scale:occurs: with a - value of `1` for `occurs`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param scale The scale of the field (the number of decimal places). This must - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `scale` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addDecimalWithName:(NSString *)name - scale:(SInt32)scale; - -/** - Add a new fixed multiplicity decimal field to the current record. - - This is the equivalent to calling #addDecimalWithName:scale:min:max: with the - value of `occurs` for both `min` and `max`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param scale The scale of the field (the number of decimal places). This must - must be a positive value. - - @param occurs The number of times the field is to occur within the record. This - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`, `scale` is less than - one or `occurs` is less than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addDecimalWithName:(NSString *)name - scale:(SInt32)scale - occurs:(SInt32)occurs; - -/** - Add a new decimal field to the current record. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param scale The scale of the field (the number of decimal places). This must - must be a positive value. - - @param min The minimum number of occurrences of the field within the record. - - @param max The maximum number of occurrences of the field within the record. - This must either be `-1` to indicate an unlimited number or it must be a - positive number greater than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addDecimalWithName:(NSString *)name - scale:(SInt32)scale - min:(SInt32)min - max:(SInt32)max; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h deleted file mode 100644 index 3db6034..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2SchemaFieldType; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A field definition within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaField : PTDiffusionRecordV2SchemaNode - -/** - The field type. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2SchemaFieldType* type; - -/** - The scale of a decimal field or zero for other types. - - @since 6.0 - */ -@property(nonatomic, readonly) SInt32 scale; - -/** - Compares the receiver to the given schema field. - - @param field The schema field object with which to compare the receiver. - - @return `YES` if the field is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2SchemaField:(nullable PTDiffusionRecordV2SchemaField *)field; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h deleted file mode 100644 index 1528f70..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Type of field defined within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaFieldType : PTDiffusionEnumeration - -/** - Plain string. - - @return Instance representing the plain string schema field type. - - @since 6.0 - */ -+(instancetype)string; - -/** - Integer. - - @return Instance representing the integer schema field type. - - @since 6.0 - */ -+(instancetype)integer; - -/** - Decimal. - - @return Instance representing the decimal schema field type. - - @since 6.0 - */ -+(instancetype)decimal; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h deleted file mode 100644 index 467e591..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A node within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaNode : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The node name. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* name; - -/** - The minimum number of occurrences of the node within its parent. - - This may be zero for a variable multiplicity field, otherwise it will be a - positive value. - - @since 6.0 -*/ -@property(nonatomic, readonly) SInt32 min; - -/** - The maximum number of occurrances of the node within its parent. - - This will be a positive value greater than or equal to the minimum value, or - -1 to indicate an unlimited number. - - @since 6.0 -*/ -@property(nonatomic, readonly) SInt32 max; - -/** - `YES` if the node has variable multiplicity - i.e. `min != max`. - - @since 6.0 - */ -@property(nonatomic, readonly, getter=isVariable) BOOL variable; - -/** - Compares the receiver to the given schema node. - - @param node The schema node object with which to compare the receiver. - - @return `YES` if the node is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2SchemaNode:(nullable PTDiffusionRecordV2SchemaNode *)node; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h deleted file mode 100644 index 5faf861..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h +++ /dev/null @@ -1,50 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2SchemaField; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A record definition within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaRecord : PTDiffusionRecordV2SchemaNode - -/** - An ordered list of the field definitions within the record. - - There will be at least one. - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* fields; - -/** - Compares the receiver to the given schema record. - - @param record The schema record object with which to compare the receiver. - - @return `YES` if the record is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2SchemaRecord:(nullable PTDiffusionRecordV2SchemaRecord *)record; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h deleted file mode 100644 index 2c8d181..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling record messaging responses from - individual sessions. - - @see PTDiffusionRecordV2 - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionRecordV2SessionResponseStreamDelegate - -/** - Called when a session responds to a request with a record. - - @param stream The stream that received the response. - - @param record The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithRecord:(PTDiffusionRecordV2 *)record - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h deleted file mode 100644 index b684558..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as a record. - - @since 6.0 - */ -@interface PTDiffusionRecordV2TimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The record value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2* record; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index fbeb15d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2TimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - record values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with record values. - - @since 6.0 - */ -@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a record value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldRecordEvent The previous event. If `nil` then this is the first event. - - @param newRecordEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldRecordEvent:(nullable PTDiffusionRecordV2TimeSeriesEvent *)oldRecordEvent - newRecordEvent:(PTDiffusionRecordV2TimeSeriesEvent *)newRecordEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h deleted file mode 100644 index 9eb6d39..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2TimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of record time series events. - - @since 6.0 - */ -@interface PTDiffusionRecordV2TimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The record time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* recordEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h deleted file mode 100644 index c1276ee..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - record values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionRecordV2UpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2* value; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either value or completionHandler is - `nil`. - - @since 6.3 - */ --(BOOL) setValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h deleted file mode 100644 index f4a23cd..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for record - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for record - topics. - - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@protocol PTDiffusionRecordV2ValueStreamDelegate - -/** - An update was received for a topic path handled by a record value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldRecord The previous value. If `nil` then this is the first value. - - @param newRecord The new value derived from the last update received from the - server. - - @since 6.0 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldRecord:(nullable PTDiffusionRecordV2 *)oldRecord - newRecord:(PTDiffusionRecordV2 *)newRecord; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRegistration.h deleted file mode 100644 index 14b8d3d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRegistration.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A reference to a registered handle. - - Such a reference is provided once a handler with a server-side presence has - been registered. - - @since 6.1 - */ -@interface PTDiffusionRegistration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Request that the handler is unregistered from the server. - - After the handler is unregistered, the completionHandler will be notified. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.1 - */ --(void)closeWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Request that the handler is unregistered from the server. - - If the handler has already been unregistered, calling this method has no effect. - - @note Before 6.1 this method was defined on PTDiffusionTopicTreeRegistration. - - @since 5.7 - */ --(void)close; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServer.h deleted file mode 100644 index 991ffb8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServer.h +++ /dev/null @@ -1,78 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRemoteServerConnectionOption; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Interface for a RemoteServer specification - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionRemoteServer : NSObject - - -/** - The remote server name - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *name; - - -/** - The URL for connection to remote server. - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *url; - - -/** - The principal used for the remote server connection - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *principal; - - -/** - The remote server connection options - - @since 6.5 - */ -@property (nonatomic, readonly) NSDictionary *connectionOptions; - - -/** - The missing topic notification filter expression or null if - one has not been specified. - - @since 6.7 - */ -@property (nonatomic, readonly) NSString *missingTopicNotificationFilter; - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h deleted file mode 100644 index 61737b8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h +++ /dev/null @@ -1,157 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRemoteServerConnectionOption; -@class PTDiffusionRemoteServer; -@class PTDiffusionCredentials; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A Remote Server builder. - - A builder of this type is used to create instances of {@link PTDiffusionRemoteServer} - that can be supplied to {@link PTDiffusionRemoteServersFeature#createRemoteServer:completionHandler: createRemoteServer:}. - - @since 6.7 - */ -@interface PTDiffusionRemoteServerBuilder : NSObject - -/** - Reset the builder. - - @return this builder. - - @since 6.7 - */ --(instancetype)reset; - - -/** - Specifies the name of a principal used by the remote server to - connect to the primary server. - - The default, if not specified, is the anonymous principal. - - @param principal principal name of a zero length string to indicate an - anonymous connection. - - @return this builder. - - @since 6.7 - */ --(instancetype)principal:(NSString * _Nullable)principal; - - -/** - Specifies the credentials to use when connecting to the primary server. - - The default, if not specified, is {@link PTDiffusionCredentials.noCredentials}. - - @param credentials the credentials to use. - - @return this builder. - - @since 6.7 - */ --(instancetype)credentials:(PTDiffusionCredentials * _Nullable)credentials; - - -/** - Specifies a map of {@link PTDiffusionRermoteServerConnectionOption} settings. - - This will replace any options currently set for the builder. - - Any options not supplied will take their default values. - - If no connection options are specified, either using this method or - {@link PTDiffusionRemoteServerBuilder#connectionOption:withValue:} then all options - will take their default values. - - @param connectionOptions the map of options. - - @return this builder. - - @since 6.7 - */ --(instancetype)connectionOptions:(NSDictionary* _Nullable)connectionOptions; - - -/** - Specifies a single connection option. - - This will add to the options currently specified to the builder, or replace a value if - it has already been specified. - - @param option the connection option. - - @param value the connection option value or null to remove the option. - - @return this builder. - - @since 6.7 - */ --(instancetype)connectionOption:(PTDiffusionRemoteServerConnectionOption *)option - withValue:(NSString * _Nullable)value; - - -/** - Specifies a topic selector expression which will filter missing - topic notifications propagated from secondary to primary servers. - - {@link PTDiffusionMissingTopicNotification}s are notified when a client - subscribes using a topic selector that matches no existing topics. - By specifying a missing topic notification filter, all notifications that - match the filter on the secondary server will be propagated to the primary server. - - A match occurs if the path prefix of the subscription selector matches the path - prefix of the specified selector. - - If no filter is specified then no missing topic notifications will be propagated. - - The special selector expression `*.*` may be used to indicate that all missing topic - notifications should be propagated. - - Only the path prefix of the specified selector(s) is considered when matching therefore, - any use of regular expressions would be ignored. - - @param filter a topic selector expression specifying the filter to apply or null to remove - any existing filter. - - @return this builder. - - @since 6.7 - */ --(instancetype)missingTopicNotificationFilter:(NSString * _Nullable)filter; - - -/** - Creates a remote server object using the current values known - to this builder. - - @param name the name of the remote server. - - @param url the URL to use to connect to the primary server. - - @return a new remote server instance. - - @since 6.7 - */ --(PTDiffusionRemoteServer *)createWithName:(NSString *)name - andURL:(NSString *)url; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h deleted file mode 100644 index 2cae572..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h +++ /dev/null @@ -1,165 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Connection option key for a remote server - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionRemoteServerConnectionOption : PTDiffusionEnumeration - - -/** - Specifies the reconnection timeout session attribute. - - This is the total time in milliseconds that will be allowed to - reconnect a failed connection to the remote server. - - For reconnection to work the remote server connector must have - been configured to support reconnection. - - If a value is not specified - `PTDiffusionSessionConfiguration.reconnectionTimeout` is used. - - @return Instance representing the key for the reconnection timeout session attribute. - - @since 6.5 - */ -+(instancetype)reconnectionTimeout; - - -/** - Specifies the delay after losing a connection before attempting a - reconnection. - - The value is specified in milliseconds. Default 1000 (1 second). - - @return Instance representing the key for the delay after losing a - connection before attempting a reconnection. - - @since 6.5 - */ -+(instancetype) retryDelay; - - -/** - Specifies the recovery buffer size session attribute. - - If the remote server is configured to support reconnection, a - session established with a non-zero reconnect-timeout retains a - buffer of sent messages. If the session disconnects and - reconnects, this buffer is used to re-send messages that the - server has not received. - - The default value is 10,000 messages. If reconnect-timeout is 0 - then this value is ignored. - - @return Instance representing the key for the recovery buffer size - session attribute. - - @since 6.5 - */ -+(instancetype)recoveryBufferSize; - - -/** - Specifies the input buffer size session attribute. - - This is the size of the input buffer to use for the connection - with the remote server. It is used to receive messages from the - remote server. This should be set to the same size as the output - buffer used at the remote server. - - If not specified, a default of 1024k is used. - - @return Instance representing the key for the input buffer size - session attribute. - - @since 6.5 - */ -+(instancetype)inputBufferSize; - - -/** - Specifies the output buffer size session attribute. - - This is the size of the output buffer to use for the connection - with the remote server. It is used to send messages to the remote - server. This should be set to the same size as the input buffer - used by the remote server. - - If not specified, a default of 1024k is used. - - @return Instance representing the key for output buffer size - session attribute. - - @since 6.5 - */ -+(instancetype)outputBufferSize; - - -/** - Specifies the maximum queue size session attribute. - - This is the maximum number of messages that can be queued to send - to the remote server. If this number is exceeded, the connection - will be closed. This must be sufficient to cater for messages - that may be queued whilst disconnected (awaiting reconnect). - - The default value is 10,000 messages. - - @return Instance representing the key for the maximum queue size - session attribute. - - @since 6.5 - */ -+(instancetype)maximumQueueSize; - - -/** - Specifies the connection timeout session attribute value (in - milliseconds). - - If a value is not specified - `PTDiffusionSessionConfiguration.connectionTimeout` is used. - - @return Instance representing the key for the connection timeout - session attribute. - - @since 6.5 - */ -+(instancetype)connectionTimeout; - - - -/** - Specifies the write timeout session attribute value (in - milliseconds). - - @return Instance representing the key for the write timeout - session attribute. - - @since 6.5 - */ -+(instancetype)writeTimeout; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h deleted file mode 100644 index 7c8ec46..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h +++ /dev/null @@ -1,97 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Represents the current connection state of the remote server - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionRemoteServerConnectionState : PTDiffusionEnumeration - - -/** - The connection is inactive. - - This means that the remote server can successfully connect but a - physical connection is not being maintained as there are no - components that require the remote server. - - If in an inactive or failed state, a test connection will have - been tried to check that the connection can be made and the - connection will then have been closed. - - @return Instance representing the inactive connection state. - - @since 6.5 - */ -+(instancetype)inactive; - - -/** - The remote server is connected and actively in use by components - that require it. - - @return Instance representing the connected connection state. - - @since 6.5 - */ -+(instancetype)connected; - - -/** - The connection has failed but a retry is scheduled. - - In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` - will provide details of the failure that resulted in a retry. - - @return Instance representing the retrying connection state. - - @since 6.5 - */ -+(instancetype)retrying; - - -/** - The connection failed to establish. - - If the connection was in an inactive or failed state state, a - test connection was tried and failed. - - In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` - will provide more detail. - - @return Instance representing the failed connection state. - - @since 6.5 - */ -+(instancetype)failed; - - -/** - The named remote server did not exist. - - @return Instance representing the remote server missing connection state. - - @since 6.5 - */ -+(instancetype)missing; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h deleted file mode 100644 index 17f5dbf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h +++ /dev/null @@ -1,272 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionCredentials; -@class PTDiffusionRemoteServer; -@class PTDiffusionRemoteServerConnectionOption; -@class PTDiffusionRemoteServerConnectionState; -@class PTDiffusionCheckRemoteServerResult; -@class PTDiffusionCreateRemoteServerResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client session to manage remote servers. - - A remote server provides the configuration to connect to a Diffusion server - belonging to a different cluster. Each server in the local cluster will - establish a session with each remote server. - - Higher level components, such as remote topic views, can specify the use of - such remote servers by name. The connecting and disconnecting is handled - automatically by the server (or servers in the same cluster) where the remote - servers are defined. - - A component can specify a remote server by name even if it does not exist - (has not yet been created) and when the remote server is created the - connection will take place automatically. - - If a remote server is removed and there are components that depend upon it, - those components will be disabled. - - An example of the use of remote servers is within remote topic views (those - that indicate that their source topics are to be taken from a different - server) where the name of such a server can be specified. - - ### Remote Server persistence and replication - - Remote server configurations created through this feature are replicated - across a cluster and persisted to disk. - - ### Access control - - The following access control restrictions are applied: - -
    -
  • To create, remove or check a remote server, a session needs the - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission. -
  • To list remote servers, a session needs the - {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission. -
- - ### Accessing the feature - - This feature may be obtained from a {@link PTDiffusionSession session} as follows: - -
- PTDiffusionRemoteServersFeature *remoteServers = session.remoteServersFeature;
- 
- - @since 6.5 - */ -@interface PTDiffusionRemoteServersFeature : PTDiffusionFeature - - -/** - @brief Create a new remote server instance at the server. - - If a remote server with the same name already exists an error will be returned. - - @param remoteServer remote server definition using a {@link PTDiffusionRemoteServerBuilder - remote server builder}. - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a full definition of the remote server created - by the operation. - If the remote server definition is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.7 - */ --(void)createRemoteServer:(PTDiffusionRemoteServer *const)remoteServer - completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler; - - -/** - @brief Create a new remote server instance with default connection options. - - If a remote server with the same name already exists an error will be returned. - - @param name the name of the remote server - - @param url the URL used to connect to the primary server - - @param principal the name of a principal used by the remote server to - connect to the primary server. A zero length string may be - supplied to indicate an anonymous connection - - @param credentials used for connecting to the primary server - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a full definition of the remote server created - by the operation. - If the remote server definition is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - - @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. - This method will be removed in a future release. - */ --(void)createRemoteServer:(NSString *const)name - withURL:(NSString *const)url - principal:(NSString *const)principal - credentials:(PTDiffusionCredentials *const)credentials - completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); - - -/** - @brief Create a new remote server instance. - - If a remote server with the same name already exists an error will be returned. - - @param name the name of the remote server - - @param url the URL used to connect to the primary server - - @param principal the name of a principal used by the remote server to - connect to the primary server. A zero length string may be - supplied to indicate an anonymous connection - - @param credentials used for connecting to the primary server - - @param connectionOptions map of connection option settings. Any options - not supplied will take their default values - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a full definition of the remote server - created by the operation. - If the remote server definition is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - - @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. - This method will be removed in a future release. - */ --(void)createRemoteServer:(NSString *const)name - withURL:(NSString *const)url - principal:(NSString *const)principal - credentials:(PTDiffusionCredentials *const)credentials - connectionOptions:(NSDictionary const*)connectionOptions - completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); - - - -/** - @brief Check the current state of a named remote server. - - This will report back the current state of the remote server, but also - can be used to forcibly retry a failed remote server connection. - - @param name the name of the remote server - - @param completionHandler a completion handler that returns when a response is - received from the server, return the details of the remote server state. - If the state is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - */ --(void)checkRemoteServer:(NSString *const)name - completionHandler:(void (^)(PTDiffusionCheckRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler; - - -/** - @brief List all the remote servers that have been created - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a list of remote servers. - If the list is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - */ --(void)listRemoteServers:(void (^)(NSArray * _Nullable result, - NSError * _Nullable error))completionHandler; - - -/** - @brief Remove a named remote server if it exists - - If the named remote server does not exist the completionHandler - will return without an error - - When a named remote server is removed, any components that specify it - would be disabled. - - @param name the name of the remote server - - @param completionHandler a completion handler that returns when a response is - received from the server. - If the error is not nil, this means an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - - if the session is closed -
- - @since 6.5 - */ --(void)removeRemoteServer:(NSString *const)name - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequest.h deleted file mode 100644 index 5eeafe1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequest.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A request to be sent using messaging. - - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionRequest : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestContext.h deleted file mode 100644 index 6c99e05..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestContext.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A request context provides additional contextual information for - received messaging requests. - - @since 6.0 - */ -@interface PTDiffusionRequestContext : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The ID of the session that sent the request. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - -/** - The message path of the request. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* path; - -/** - Properties of the session that sent the request. - - @since 6.0 - */ -@property(nonatomic, readonly) NSDictionary* sessionProperties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestHandler.h deleted file mode 100644 index 9900629..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestHandler.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Handler to receive request notifications. - - @see PTDiffusionMessagingFeature - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionRequestHandler : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestStream.h deleted file mode 100644 index a03f935..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionRequestStream.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A request stream represents an asynchronous, variable length feed of - messaging requests. - - @see PTDiffusionMessagingFeature - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionRequestStream : PTDiffusionStream - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionResponder.h deleted file mode 100644 index 940983a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionResponder.h +++ /dev/null @@ -1,62 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionResponse; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Responder provided with requests, used to dispatch responses. - - @see PTDiffusionRequestHandler - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionResponder : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Dispatch a response to a request. - - @param response The value to send in response. - - @exception NSInvalidArgumentException Raised if the response argument is `nil`. - - @since 6.1 - */ --(void)respondWithResponse:(PTDiffusionResponse *)response; - -/** - Dispatch a rejection to a request, indicating that a response could not be - generated. - - @param reason Freeform text to provide to the requestor by way of explanation - for this rejection. - - @exception NSInvalidArgumentException Raised if the reason argument is `nil`. - - @since 6.0 - */ --(void)rejectWithReason:(NSString *)reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionResponse.h deleted file mode 100644 index 9828470..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionResponse.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A response to be sent using messaging. - - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.1 - */ -@interface PTDiffusionResponse : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h deleted file mode 100644 index abd9c58..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h +++ /dev/null @@ -1,87 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionCredentials; -@class PTDiffusionGlobalPermission; -@class PTDiffusionPathPermission; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature provides a client session with the ability to change its - associated principal as well as to query permissions assigned to it. - - The Security feature for a session can be obtained from the session's - `security` property. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSecurityFeature : PTDiffusionFeature - -/** - Change the security principal associated with the current session. - - If authentication fails, the current principal will remain valid. - - @param principal The new principal name. - - @param credentials The credentials authenticating the new principal. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if the completionHandler argument - is `nil`. - - @since 5.6 - */ --(void)changePrincipal:(nullable NSString *)principal - credentials:(nullable PTDiffusionCredentials *)credentials - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Query the global permissions assigned to the calling session. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.3 - */ --(void)getGlobalPermissionsWithCompletionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; - -/** - Query the topic permissions assigned to the calling session on a given path. - - @param path the path to query for permissions - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.3 - */ --(void)getTopicPermissionsForPath:(NSString *)path - completionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h deleted file mode 100644 index e71c65d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -/** - Delivery priority for a sent message. - - @since 5.6 - */ -typedef NS_ENUM(NSUInteger, PTDiffusionSendDeliveryPriority) { - /** - Normal priority. - - @since 5.6 - */ - PTDiffusionSendDeliveryPriority_Normal = 1, - - /** - Highest priority. - - @since 5.6 - */ - PTDiffusionSendDeliveryPriority_High = 2, - - /** - Lowest priority. - - @since 5.6 - */ - PTDiffusionSendDeliveryPriority_Low = 3, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - Returns a localized string representation of the given send delivery priority. - - @param priority The send delivery priority for which a description is to be - returned. - - @since 5.7 - */ -NSString* PTDiffusionSendDeliveryPriorityToString(PTDiffusionSendDeliveryPriority priority); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSession.h deleted file mode 100644 index dad91b1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSession.h +++ /dev/null @@ -1,613 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionClientControlFeature; -@class PTDiffusionMessagingFeature; -@class PTDiffusionPingsFeature; -@class PTDiffusionSecurityFeature; -@class PTDiffusionSessionConfiguration; -@class PTDiffusionSessionId; -@class PTDiffusionSessionLock; -@class PTDiffusionSessionLockAttempt; -@class PTDiffusionSessionLockScope; -@class PTDiffusionSessionState; -@class PTDiffusionSubscriptionControlFeature; -@class PTDiffusionTimeSeriesFeature; -@class PTDiffusionTopicControlFeature; -@class PTDiffusionTopicNotificationsFeature; -@class PTDiffusionTopicsFeature; -@class PTDiffusionTopicUpdateFeature; -@class PTDiffusionTopicViewsFeature; -@class PTDiffusionRemoteServersFeature; -@class PTDiffusionSessionTreesFeature; -@class PTDiffusionMetricsFeature; -@class PTDiffusionHTTPResponse; - -@protocol PTDiffusionErrorListener; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A client session to a server or cluster of servers. - - The @ref md_quick_start "Quick Start" guide provides basic instructions on how - to connect to a Diffusion server. - - Also see: - - @ref md_session_filters "Session Filters". - - @ref md_session_properties "Session Properties". - - A new session can be created by connecting to a server using - `#openWithURL:completionHandler:` specifying the server URL. - A `PTDiffusionSessionConfiguration` can also be configured to control - the behaviour of the session using `#openWithURL:configuration:completionHandler:` - - The session provides a variety of operations to the application. These are - grouped into feature interfaces, such as Topics and Messaging, - exposed to the application through the following methods: -
    -
  • #clientControl -
  • #messaging -
  • #pings -
  • #remoteServers -
  • #security -
  • #subscriptionControl -
  • #timeSeries -
  • #topicControl -
  • #topics -
  • #topicUpdate -
  • #topicViews -
- - ###Session lifecycle - - Each session is managed by a server. The server assigns the session a - unique identity, and manages the session's topic subscriptions, - security details, and session properties. - - A session can be terminated using `close`. A session may also be - terminated by the server because of an error or a time out, or by other - privileged sessions using the ClientControl feature. - - A client can become disconnected from the server, and reconnect to the server - without loss of the session. Reconnection can be configured using - `PTDiffusionSessionConfiguration.reconnectionStrategy`. The server - must be configured to allow reconnection. - - If a session is connected to a server that belongs to a cluster with session - replication enabled, and then becomes disconnected, it will attempt to - reconnect to the original server. A properly configured load balancer can - detect that the original server is unavailable and re-route the reconnection - request to a second server in the cluster. The second server can recover - session data and continue the session. This process is known as "fail over". - Unlike reconnection, in-flight messages can be lost during failover, and the - application will be unsubscribed and re-subscribed to topics. - - The current state of the session can be retrieved with `state`. - This property is Key-Value Observable with changes being notified on - the main dispatch queue when the session state changes. - - ### Session locks - - The actions of multiple sessions can be coordinated using session locks. See - PTDiffusionSession#lockWithName:completionHandler: - - @since 5.6 - */ -@interface PTDiffusionSession : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - Starts asynchronously connecting to a Diffusion server using the given session configuration. - - @param url The location of the server to connect to. Encapsulates host, port and protocol to use. - Must be absolute. - - @param configuration The configuration options to connect with. - - @param completionHandler The completion handler to call on connection success or failure. - The completion handler will be called from the main dispatch queue and will only be called once. - - @note Your completion handler _must_ store a strong reference to the session instance in order - for it to remain open. - - @note The completion handler block is called after the session's state property has been set - to connected but before those observing through the notification center are informed. - - @since 5.6 - */ -+(void)openWithURL:(NSURL *)url - configuration:(PTDiffusionSessionConfiguration *)configuration - completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; - - -/** - Starts asynchronously connecting to a Diffusion server using the default session configuration. - - @param url The location of the server to connect to. Encapsulates host, port and protocol to use. - Must be absolute. - - @param completionHandler The completion handler to call on connection success or failure. - The completion handler will be called from the main dispatch queue and will only be called once. - - @note Your completion handler _must_ store a strong reference to the session instance in order - for it to remain open. - - @note The completion handler block is called after the session's state property has been set - to connected but before those observing through the notification center are informed. - - @since 5.6 - */ -+(void)openWithURL:(NSURL *)url - completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; - - -/** - The configuration used to open the session. - - @since 5.6 - */ -@property(nonatomic, readonly, copy) PTDiffusionSessionConfiguration* configuration; - - -/** - The unique identifier for the session as assigned by the server it connects to. - - This property is Key-Value Observable with changes being notified on the main dispatch queue. - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - - -/** - The name of the security principal associated with the session. - - @return The principal name. If the session has no associated principal, it is - known as an anonymous session, in which case the empty string - anonymousPrincipal will be assigned to this property. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* principal; - - -/** - The current state of the session. - - This property is Key-Value Observable with changes being notified on the main dispatch queue. - KVO notifications are sent before the invocation of any callback handler blocks. - - @note Session state can also be observed using the notification center. - See PTDiffusionSessionStateChange for details. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionSessionState* state; - - -/** - The delegate to use to report unexpected, non-fatal errors to. - - @since 6.0 - */ -@property(nonatomic, weak) id errorListener; - - -/** - Close the session. Once closed a session cannot be restarted. - - @since 5.6 - */ --(void)close; - - -/** - Attempt to acquire a session lock. - - The completion handler block will be called with the requested lock if the - server assigns it to the session. Otherwise, the completion handler block will - be called with an error indicating why the lock could not be acquired. - - Acquiring the lock can take an arbitrarily long time if other sessions are - competing for the lock. The server will retain the session's request for the - lock until it is assigned to the session, the session is closed, or the session - cancels the CompletableFuture. - - A session can call this method multiple times. If the lock is acquired, all - calls will complete successfully with equal SessionLocks. - - Calling cancel on the returned PTDiffusionCancellable has no effect on other - pending calls to acquire this lock. - - Upon successful acquisition, the session owns the lock and is responsible for - unlocking it. When calling cancel on the returned PTDiffusionCancellable, take - care that it has not already completed by checking the return value. The - following Swift code releases the lock if the request could not be canceled. - - let attempt = session.lock(withName: "my-lock") { (lock, error) in - / / .. - } - - if (!attempt.cancel()) { - attempt.lock?.unlock() { (wasOwned, error) in } - } - - A session that acquires a lock will remain its owner until it is unlocked or - the session closes. The variant of this methods that takes a scope parameter - provides the further option of releasing the lock when the session loses its - connection to the server. - - ### Access control - - To allow fine-grained access control, lock names are interpreted as path names, - controlled with the `PTDiffusionPathPermission.acquireLock` path permission. This allows permission to - be granted to a session to acquire the lock `update-topic/a` while preventing - the session from acquiring the lock `update-topic/b`, for example. - - @param name The name of the session lock. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - If this session has successfully acquired the session lock, or this session - already owns the session lock, the completion handler will be called with the - lock instance. - - If the completion handler is called with an error to indicate failure, this - session does not own the session lock. Common reasons for failure include: - - - The calling session does not have the `PTDiffusionPathPermission.acquireLock` permission for this lock - name. - - The session is closed. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @see #lockWithName:scope:completionHandler: - - @since 6.3 - */ --(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name - completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; - - -/** - Variant of #lockWithName:completionHandler: that provides control over when a - lock will be released. - - If called with PTDiffusionSessionLockScope#unlockOnSessionLoss, this method - behaves exactly like #lockWithName:completionHandler:. - - If called with PTDiffusionSessionLockScope#unlockOnConnectionLoss, any lock - that is returned will be unlocked if the session loses its connection to the - server. This is useful to allow another session to take ownership of the lock - while this session is reconnecting. - - @param name The name of the session lock - - @param scope Preferred scope. The scope of a lock controls when it will be - released automatically. If a session makes multiple requests for a lock using - different scopes, and the server assigns the lock to the session fulfilling the - requests, the lock will be given the weakest scope - (PTDiffusionSessionLockScope#unlockOnConnectionLoss). - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @see #lockWithName:completionHandler: - - @since 6.3 - */ --(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name - scope:(PTDiffusionSessionLockScope *)scope - completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; - - -/** - Returns the last HTTP response received from the server. - - @since 6.3.6 - */ --(PTDiffusionHTTPResponse * _Nullable)websocketHTTPResponse; - - - -#pragma mark - Features - -/** - The Client control feature provides the capability to listen and set session properties - - @since 6.5 - */ -@property(nonatomic, readonly) PTDiffusionClientControlFeature *clientControl; - - -/** - The Topics feature provides the capability to receive streamed topic updates and/or - fetch the state of topics. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionTopicsFeature* topics; - - -/** - The Topic Control features provides the capability to manage topics. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionTopicControlFeature* topicControl; - - -/** - The Topic Update feature provides a client session with the ability to update - topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionTopicUpdateFeature* topicUpdate; - - -/** - The Messaging feature provides messaging capabilities. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionMessagingFeature* messaging; - - -/** - The Security feature provides a client session with the ability to change - the associated principal. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionSecurityFeature* security; - - -/** - The Pings feature provides a client session with the ability to test the - roundtrip time associated with sending a request to the server and receiving - the associated response. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionPingsFeature* pings; - - -/** - The Time Series feature provides a client session with the ability to update - and query time series topics. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionTimeSeriesFeature* timeSeries; - - -/** - The Topic Notifications feature allows a client session to receive - notifications about changes to selected topics. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionTopicNotificationsFeature* topicNotifications; - - -/** - The Subscription Control feature allows a client session to subscribe or - unsubscribe other sessions to topics, as well as also providing a mechanism for - handling requests to subscribe to routing topics. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionSubscriptionControlFeature* subscriptionControl; - - -/** - The Topic Views feature allows a client session to manage topic views. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionTopicViewsFeature* topicViews; - - -/** - The Remote Servers feature allows a client session to create, remove, list - and check remote servers. - - @since 6.5 - */ -@property(nonatomic, readonly) PTDiffusionRemoteServersFeature* remoteServers; - - -/** - The Session Trees feature allows the creation and alteration of branch mapping tables. - - @see PTDiffusionSessionTreesFeature - - @since 6.7 - */ -@property(nonatomic, readonly) PTDiffusionSessionTreesFeature* sessionTrees; - - -/** - The Metrics feature allows a client to configure metric collectors. - - @see PTDiffusionMetricsFeature - - @since 6.7 - */ -@property(nonatomic, readonly) PTDiffusionMetricsFeature* metrics; - - - - -#pragma mark - Session properties - -/** - Value assigned to the principal property if this is an anonymous session. - - @since 6.0 - */ -+(NSString *)anonymousPrincipal; - - -/** - This constant can be used instead of a property key in requests for session - property values to indicate that all fixed session properties are required. - - @since 6.0 - */ -+(NSString *)allFixedProperties; - - -/** - This constant can be used instead of a property key in requests for session - property values to indicate that all user defined session properties are - required. - - @since 6.0 - */ -+(NSString *)allUserProperties; - - -/** - Session property key for session roles. - - @since 6.2 - */ -+(NSString *)rolesPropertyKey; - - -/** - Session property key for session identifier. - - @see PTDiffusionSessionId - - @since 6.2 - */ -+(NSString *)sessionIdPropertyKey; - - -/** - Session property key for principal. - - @since 6.2 - */ -+(NSString *)principalPropertyKey; - - -/** - Session property key for connector name. - - @since 6.2 - */ -+(NSString *)connectorPropertyKey; - - -/** - Session property key for transport. - - @since 6.2 - */ -+(NSString *)transportPropertyKey; - - -/** - Session property key for client type. - - @since 6.2 - */ -+(NSString *)clientTypePropertyKey; - - -/** - Session property key for country code. - - @since 6.2 - */ -+(NSString *)countryPropertyKey; - - -/** - Session property key for language code. - - @since 6.2 - */ -+(NSString *)languagePropertyKey; - - -/** - Session property key for server name. - - @since 6.2 - */ -+(NSString *)serverNamePropertyKey; - - -/** - Session property key for client IP address. - - @since 6.2 - */ -+(NSString *)clientIPPropertyKey; - - -/** - Session property key for client latitude. - - @since 6.2 - */ -+(NSString *)latitudePropertyKey; - - -/** - Session property key for client longitude. - - @since 6.2 - */ -+(NSString *)longitudePropertyKey; - - -/** - Session property key for client start time. - - @since 6.2 - */ -+(NSString *)startTimePropertyKey; - -/** - Session property key for gateway client type. - - @since 6.6 - */ -+(NSString *)gatewayTypePropertyKey; - -/** - Session property key for gateway client id. - - @since 6.6 - */ -+(NSString *)gatewayIdPropertyKey; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h deleted file mode 100644 index 2211ad9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h +++ /dev/null @@ -1,440 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionCredentials; -@class PTDiffusionHTTPProxyConfiguration; - -@protocol PTDiffusionSessionReconnectionStrategy; - -extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session configuration defines behavior and policies to use when connecting to Diffusion. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSessionConfiguration : NSObject - -/** - Returns a session configuration object initialized with the given principal and credentials. - - @param principal The security principal to use when opening the session. - A value of `nil` dictates that no principal name will be associated with the session, - indicating anonymous authentication. - - @param credentials The security credentials to use when opening the session. - A value of `nil` dictates that no credentials will be used when authenticating the session. - - @return The session configuration instance initialized with the given principal and credentials. - - @since 5.6 - */ --(instancetype)initWithPrincipal:(nullable NSString *)principal - credentials:(nullable PTDiffusionCredentials *)credentials; - -/** - The security principal to use when opening the session. - - A value of `nil` dictates that no principal name will be associated with the session, - indicating anonymous authentication. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly, copy) NSString *principal; - -/** - The security credentials to use when opening the session. - - A value of `nil` dictates that no credentials will be used when authenticating the session. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; - -/** - The reconnection timeout in seconds that will be used on connection failure. - - The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - - A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; - -/** - The reconnection strategy that will be used on connection failure. - - A value of `nil` when a valid reconnectionTimeout has been set dictates that the default - reconnection strategy will be employed. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly) id reconnectionStrategy; - -/** - The default recovery buffer size in messages. - - @return Number representing the default recovery buffer size in messages. - - @see recoveryBufferSize - - @since 6.0 - */ -+(NSUInteger)defaultRecoveryBufferSize; - -/** - The recovery buffer size in messages; can be zero. - - If the server is configured to support reconnection, a session established with - a non-zero reconnection time retains a buffer of sent messages. - If the session disconnects and reconnects, this buffer is used to re-send - messages that the server has not received. - - Higher values increase the chance of successful reconnection, but increase the - per-session memory footprint. - - @see defaultRecoveryBufferSize - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger recoveryBufferSize; - -/** - The default connection timeout (2 seconds). - - @return Time interval representing the default connection timeout. - - @since 5.7 - */ -+(NSTimeInterval)defaultConnectionTimeout; - -/** - The lowest value that the maximum message size can be set to in bytes. - - @return Number representing the lowest value in bytes that the maximum message size can be set to. - - @see maximumMessageSize - - @since 6.0 - */ -+(NSUInteger)maximumMessageSizeMinimum; - -/** - The default maximum message size in bytes. - - The maximum message size limits the - size of received messages. This default value is NSUIntegerMax, so the message - size is effectively unlimited. - - @return Number representing the default maximum message size in bytes. - - @see maximumMessageSize - - @since 6.0 - */ -+(NSUInteger)defaultMaximumMessageSize; - -/** - The default maximum outbound queue size in messages. - - @return Number representing the default maximum outbound queue size in messages. - - @see maximumQueueSize - - @since 6.0 - */ -+(NSUInteger)defaultMaximumQueueSize; - -/** - The maximum message size in bytes. - - This constrains the size of messages that may be received from the server and - thus the size of any content that can be received. The limit protects against - unexpectedly large messages. - - @see defaultMaximumMessageSize - @see maximumMessageSizeMinimum - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger maximumMessageSize; - -/** - The maximum size of the outbound message queue for the connection. - - The outbound message queue should be large enough to accommodate all the - messages sent to the server. This would include topic updates, messaging and - service requests such as registering a handler. - - It may be necessary to increase this value for applications that send messages - in bursts, or continue to send messages when a session is disconnected and - reconnecting. Larger values allow more messages to be queued, and increase the - memory footprint of the session. - - If the outbound message queue fills, sending a message will cause the session - to close with an error. - - @see defaultMaximumQueueSize - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger maximumQueueSize; - -/** - The connection timeout. - - This constrains the time taken to establish an initial connection to the server. - The server is responsible for limiting the overall time taken to complete a connection - once it has received the request. - - @since 5.7 - */ -@property(nonatomic, readonly) NSTimeInterval connectionTimeout; - -/** - Security settings to be applied to the underlying transport streams for SSL/TLS - encrypted connections. - - A value of `nil` or an empty dictionary indicates that default settings, as - defined by the host operating system, will be applied. - - Supported keys are documented by Apple under 'CFStream Property SSL Settings - Constants' in their Core Foundation - [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - - For example, a rudimentary approach to allowing otherwise disallowed self-signed - certificates could be to disable validation of the certificate chain entirely: - - configuration.sslOptions = - [NSDictionary dictionaryWithObject:kCFBooleanFalse - forKey:kCFStreamSSLValidatesCertificateChain]; - - @since 5.7.1 - */ -@property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; - -/** - User-defined @ref md_session_properties "session properties". - - These properties will be provided to the server when a session is created using - this session configuration. They will be validated during authentication and - may be discarded or changed. - - A value of `nil` or an empty dictionary indicates that no user-defined session - properties will be provided to the server on connection. - - @since 6.3 - */ -@property(nonatomic, nullable, readonly, copy) NSDictionary* properties; - -/** - Configuration of the HTTP Proxy that should be used to make connections to the server. - - This allows connection to a server using HTTP CONNECT tunneling through the - specified proxy. - - A value of `nil` dictates that a proxy is not used. This is the default. - - @since 6.0 - */ -@property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; - -/** - Compares the receiver to the given session configuration. - - @param sessionConfiguration The session configuration object with which to compare the receiver. - - @return `YES` if the receiver and the given session configuration will have the same effect. - - @since 5.6 - */ --(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; - -@end - -/** - @brief A mutable session configuration can be modified prior to being used to define - behaviour and policies to use when connecting to Diffusion. - - @since 5.6 - */ -@interface PTDiffusionMutableSessionConfiguration : PTDiffusionSessionConfiguration - -/** - The security principal to use when opening the session. - - A value of `nil` dictates that no principal name will be associated with the session, - indicating anonymous authentication. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite, copy) NSString *principal; - -/** - The security credentials to use when opening the session. - - A value of `nil` dictates that no credentials will be used when authenticating the session. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; - -/** - The reconnection timeout in seconds that will be used on connection failure. - - The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - - A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite) NSNumber* reconnectionTimeout; - -/** - The reconnection strategy that will be used on connection failure. - - A value of `nil` when a valid reconnectionTimeout has been set dictates that the default - reconnection strategy will be employed. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite) id reconnectionStrategy; - -/** - The recovery buffer size in messages; can be zero. - - If the server is configured to support reconnection, a session established with - a non-zero reconnection time retains a buffer of sent messages. - If the session disconnects and reconnects, this buffer is used to re-send - messages that the server has not received. - - Higher values increase the chance of successful reconnection, but increase the - per-session memory footprint. - - @see defaultRecoveryBufferSize - - @since 6.0 - */ -@property(nonatomic, readwrite) NSUInteger recoveryBufferSize; - -/** - The maximum message size in bytes. - - This constrains the size of messages that may be received from the server and - thus the size of any content that can be received. The limit protects against - unexpectedly large messages. - - @exception NSInvalidArgumentException On writing to this property if the - given size is below the allowable minimum. - - @see defaultMaximumMessageSize - @see maximumMessageSizeMinimum - - @since 6.0 - */ -@property(nonatomic, readwrite) NSUInteger maximumMessageSize; - -/** - The maximum size of the outbound message queue for the connection. - - The outbound message queue should be large enough to accommodate all the - messages sent to the server. This would include topic updates, messaging and - service requests such as registering a handler. - - It may be necessary to increase this value for applications that send messages - in bursts, or continue to send messages when a session is disconnected and - reconnecting. Larger values allow more messages to be queued, and increase the - memory footprint of the session. - - If the outbound message queue fills, sending a message will cause the session - to close with an error. - - @see defaultMaximumQueueSize - - @since 6.0 - */ -@property(nonatomic, readwrite) NSUInteger maximumQueueSize; - -/** - The connection timeout. - - This constrains the time taken to establish an initial connection to the server. - The server is responsible for limiting the overall time taken to complete a connection - once it has received the request. - - If not explicitly set, defaultConnectionTimeout will be assumed. - - @note If this exceeds one hour (3,600 seconds) a warning will be logged and the - connection timeout will be constrained to one hour. - - @since 5.7 - */ -@property(nonatomic, readwrite) NSTimeInterval connectionTimeout; - -/** - Security settings to be applied to the underlying transport streams for SSL/TLS - encrypted connections. - - A value of `nil` or an empty dictionary indicates that default settings, as - defined by the host operating system, will be applied. - - Supported keys are documented by Apple under 'CFStream Property SSL Settings - Constants' in their Core Foundation - [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - - For example, a rudimentary approach to allowing otherwise disallowed self-signed - certificates could be to disable validation of the certificate chain entirely: - - configuration.sslOptions = - [NSDictionary dictionaryWithObject:kCFBooleanFalse - forKey:kCFStreamSSLValidatesCertificateChain]; - - @since 5.7.1 - */ -@property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; - -/** - User-defined @ref md_session_properties "session properties". - - These properties will be provided to the server when a session is created using - this session configuration. They will be validated during authentication and - may be discarded or changed. - - A value of `nil` or an empty dictionary indicates that no user-defined session - properties will be provided to the server on connection. - - @since 6.3 - */ -@property(nonatomic, nullable, readwrite, copy) NSDictionary* properties; - -/** - Configuration of the HTTP Proxy that should be used to make connections to the server. - - This allows connection to a server using HTTP CONNECT tunneling through the - specified proxy. - - A value of `nil` dictates that a proxy is not used. This is the default. - - @since 6.0 - */ -@property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionError.h deleted file mode 100644 index 398b49e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionError.h +++ /dev/null @@ -1,100 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - The value assigned to the `domain` property of NSError objects generated when - establishing or reestablishing a session's connection to the server. - - @see PTDiffusionSessionErrorCode - - @since 6.0 - - @deprecated since 6.7, use PTDiffusion instead. - */ -extern NSString *const PTDiffusionSessionErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - Values assigned to the `code` property of NSError objects generated when - establishing or reestablishing a session's connection to the server. - - @see PTDiffusionSessionErrorDomain - - @since 6.0 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { - /** - The session was closed after being unexpectedly disconnected. - - @since 6.0 - - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Disconnected instead. instead. - */ - PTDiffusionSessionErrorCode_Disconnected __deprecated_enum_msg("Use PTDiffusionError_Disconnected instead.") = 2, - - /** - The session was closed locally. - - @since 6.0 - - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Establishment instead. instead. - */ - PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, - - /** - There was a problem when establishing a session. - - The session is closed. No further operations are possible. - - @since 6.0 - - @deprecated since 6.7, use PTDiffusionError_Establishment instead. - */ - PTDiffusionSessionErrorCode_Establishment __deprecated_enum_msg("Use PTDiffusionError_Establishment instead.") = 4, - - /** - The session operation failed due to a security constraint. - - Repeating the operation with the same security credentials is likely to - fail. - - @since 6.0 - - @deprecated since 6.7, use PTDiffusionError_Security instead. - */ - PTDiffusionSessionErrorCode_Security __deprecated_enum_msg("Use PTDiffusionError_Security instead.") = 5, - - /** - The session operation failed due to an unrecognised response code. - - @since 6.3 - - @deprecated since 6.7, use PTDiffusionError_UnrecognizedResponseCode instead. - */ - PTDiffusionSessionErrorCode_UnrecognisedResponseCode __deprecated_enum_msg("Use PTDiffusionError_UnrecognizedResponseCode instead.") = 6, - - /** - The session was closed remotely. - - @since 6.6 - - @deprecated since 6.7, use PTDiffusionError_ClosedByServer instead. - */ - PTDiffusionSessionErrorCode_ClosedByServer __deprecated_enum_msg("Use PTDiffusionError_ClosedByServer instead") = 7, -}; - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionId.h deleted file mode 100644 index c960865..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionId.h +++ /dev/null @@ -1,74 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session ID is a unique session identifier, allocated by the server. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSessionId : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a session ID object initialized with the given string. - - @param string A string, previously returned by the `description` method on an - instance of this class. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @note The string representation used is the same as that provided by our Java - client library (see the `toString()` method on `SessionId`). This is a client - operation. A session that has been closed will not be recreated. - - @return The session ID instance initialised with the given string. - - @exception NSInvalidArgumentException If the given string is `nil`. - - @since 6.0 - */ --(nullable instancetype)initWithString:(NSString *)string - error:(NSError **)error NS_DESIGNATED_INITIALIZER; - -/** - Compares the receiver to the given session ID. - - @param sessionId The session ID object with which to compare the receiver. - - @return `YES` if the given session ID is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToSessionId:(nullable PTDiffusionSessionId *)sessionId; - -/** - Returns the description of the session ID. - - @return The description of the session ID. - - @since 6.5 - */ --(NSString *)description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLock.h deleted file mode 100644 index 9de38c1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLock.h +++ /dev/null @@ -1,165 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionLockScope; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A server-managed resource that can be used to coordinate exclusive - access to shared resources across sessions. - - For example, to ensure a single session has the right to update a topic; to - ensure at most one session responds to an event; or to select a single session - to perform a housekeeping task. Session locks support general collaborative - locking schemes. The application architect is responsible for designing a - suitable locking scheme and for ensuring each application component follows the - scheme appropriately. - - Session locks are identified by a lock name. Lock names are arbitrary and - chosen at will to suit the application. Each lock is owned by at most one - session. Locks are established on demand; there is no separate operation to - create or destroy a lock. - - A session lock is acquired using the - PTDiffusionSession#lockWithName:completionHandler: method. If no other session - owns the lock, the server will assign the lock to the calling session - immediately. Otherwise, the server will record that the session is waiting to - acquire the lock. A session can call `lock` more than once for a given session - lock; if the lock is acquired, all calls will complete successfully with equal - PTDiffusionSessionLock instances. - - If a session closes, the session locks it owns are automatically released. A - session can also release a lock using the #unlockWithCompletionHandler: method. - When a session lock is released and other sessions are waiting to acquire the - lock, the server will arbitrarily select one of the waiting sessions and notify - it that it has acquired the lock. All of the newly selected session's pending - `lock` calls will complete normally. Other sessions will continue to wait. - - The PTDiffusionSession#lockWithName:scope:completionHandler: method takes a - scope parameter that provides the further option of automatically releasing the - lock when the session loses its connection to the server. - - There is no association between a lock and a thread. If a session calls `lock` - for a lock it already owns, the call will complete normally and immediately - with a PTDiffusionSessionLock instance that is equal to the one returned when - the lock was originally acquired. A single call to `unlock` will release this - session's claim to a lock. - - Lock ownership can be lost due to an independent event such as loss of - connection, and not only due to the use of the locking API by the owner. - Consequently, the session should poll using #owned to check that it still owns - the lock before accessing the protected resource. - - ### Race conditions - - This session lock API has inherent race conditions. Even if an application is - coded correctly to protect a shared resource using session locks, there may be - a period where two or more sessions concurrently access the resource. The races - arise for several reasons including - - - due to the *check-then-act* approach of polling #owned, the lock can be lost - after the check has succeeded but before the resource is accessed; - - the server can detect a session is disconnected and assign the lock to - another session before the original session has detected the disconnection. - - Despite this imprecision, session locks provide a useful way to coordinate - session actions. - - @since 6.3 - */ -@interface PTDiffusionSessionLock : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The name of the session lock. - - @since 6.3 - */ -@property(nonatomic, readonly) NSString* name; - -/** - A value that identifies the acquisition of the lock with the given #name. - Session locks that are acquired later are guaranteed to have bigger sequence - values, allowing the sequence number to be used as a fencing token. - - @since 6.3 - */ -@property(nonatomic, readonly) SInt64 sequence; - -/** - Whether the session lock is still owned by the session. This method may be - manually polled but does not support KVO. - - @since 6.3 - */ -@property(readonly, getter=isOwned) BOOL owned; - -/** - The scope of the lock. - - The scope determines when the lock will be released automatically. - - If a session makes multiple lock requests for a lock using different scopes, - and the server assigns the lock to the session fulfilling the requests, the - lock will be given the weakest scope - (PTDiffusionSessionLockScope#unlockOnConnectionLoss). Consequently, an - individual request can complete with a lock that has a different scope to that - requested. - - @see PTDiffusionSession#lockWithName:scope:completionHandler: - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionSessionLockScope* scope; - -/** - Release the session lock, if owned. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - On successful completion, this session will no longer own the named session - lock, and `wasOwned` will wrap a `BOOL` value where `YES` indicates this - session previously owned the lock and `NO` indicates that it did not. - - On completion with failure, this session does not own the session lock. The - common reason for failure, indicated by the error reported, is that the session - is closed. - - @exception NSInvalidArgumentException Raised if completionHandler is `nil`. - - @since 6.3 - */ --(void)unlockWithCompletionHandler:(void (^)(NSNumber * _Nullable wasOwned, NSError * _Nullable error))completionHandler; - -/** - Compares the receiver to the given session lock. - - @param sessionLock The session lock object with which to compare the receiver. - - @return `YES` if the session lock is equal to the receiver, otherwise `NO`. - - @since 6.3 - */ --(BOOL)isEqualToSessionLock:(nullable PTDiffusionSessionLock *)sessionLock; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h deleted file mode 100644 index 7d870c5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h +++ /dev/null @@ -1,57 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionLock; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A handle to a session lock request. - - Instances of this object may be used to cancel the session lock attempt as well - as to query the lock instance once acquired. - - @since 6.3 - */ -@interface PTDiffusionSessionLockAttempt : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The acquired lock, if the attempt was successful. Until a response has come - back from the server, this property will be `nil`. It will remain `nil` if that - response indicates that the session lock attempt failed. - - @since 6.3 - */ -@property(nullable, readonly) PTDiffusionSessionLock * lock; - -/** - Compares the receiver to the given session lock attempt. - - @param sessionLockAttempt The session lock attempt object with which to compare - the receiver. - - @return `YES` if the session lock attempt is equal to the receiver, otherwise `NO`. - - @since 6.3 - */ --(BOOL)isEqualToSessionLockAttempt:(nullable PTDiffusionSessionLockAttempt *)sessionLockAttempt; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h deleted file mode 100644 index 22c03cf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h +++ /dev/null @@ -1,59 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The definition of a session metric collector. - - These can be configured to record metric data for a subset of all - sessions, specified with a session filter. - - @since 6.7 - */ -@interface PTDiffusionSessionMetricCollector : PTDiffusionMetricCollector - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - The session filter. - - @since 6.7 - */ -@property(nonatomic, readonly) NSString *sessionFilter; - - -/** - The list of properties to group by. - - @since 6.7 - */ -@property(nonatomic, readonly) NSArray* groupByProperties; - - -/** - Indicates whether metrics with no matches should be removed. - - @since 6.7 - */ -@property(nonatomic, readonly) BOOL removesMetricsWithNoMatches; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h deleted file mode 100644 index faf8565..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h +++ /dev/null @@ -1,93 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionMetricCollector; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session metric collector builder. - - @since 6.7 - */ -@interface PTDiffusionSessionMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder - - -/** - Adds the name of a session property to group by to the list known - to this builder. - - @param propertyName the name of the session property. - See {@link PTDiffusionSession Session} for details of session properties. - - @return the builder - - @since 6.7 - */ --(instancetype)groupByProperty:(NSString *)propertyName; - - -/** - Specifies a list of session property names to group by, replacing - any current list known to this builder. - - @param propertyNames a list of session property names. - See {@link PTDiffusionSession Session} for details of session properties. - - @return the builder - - @since 6.7 - */ --(instancetype)groupByProperties:(NSArray*) propertyNames; - - -/** - Specifies whether the metric collector should remove any metrics - that have no matches. - - The default is that the metric collector will not remove metrics - with no matches. - - @param remove true to indicate that metrics with no matches - should be removed. - - @return the builder - - @since 6.7 - */ --(instancetype)removeMetricsWithNoMatches:(BOOL)remove; - - -/** - @brief Create a new {@link PTDiffusionSessionMetricCollector} using the values - currently known to this builder. - - @param name the name of the {@link PTDiffusionSessionMetricCollector} - - @param sessionFilter the session filter indicating the sessions - this filter should apply to. The format of a session property - filter is documented in {@link PTDiffusionSession} - - @return a new {@link PTDiffusionSessionMetricCollector} with all of the - current settings of this builder. - - @since 6.7 - */ --(PTDiffusionSessionMetricCollector *) createCollectorWithName:(NSString *const)name - andSessionFilter:(NSString *const)sessionFilter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h deleted file mode 100644 index 5b76343..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h +++ /dev/null @@ -1,136 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Listener for Session properties events from the server. - - @see PTDiffusionClientControlFeature - - @since 6.5 - */ -@protocol PTDiffusionSessionPropertiesDelegate - -/** - A new session was opened - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the opened session - - @param properties The properties for the opened session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionOpened:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has closed - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the closed session - - @param closeReason The reason why the session closed - - @param properties The properties for the closed session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionClosed:(PTDiffusionSessionId *)sessionId - withCloseReason:(PTDiffusionCloseReason *) closeReason - andProperties:(NSDictionary*)properties; - - - -/** - A session has been updated - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the updated session - - @param properties The properties for the updated session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionUpdated:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has disconnected - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the disconnected session - - @param properties The properties for the disconnected session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionDisconnected:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has reconnected - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the reconnected session - - @param properties The properties for the reconnected session - - @since 6.6 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionReconnected:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has failed over to a different host - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the failed over session - - @param properties The properties for the failed over session - - @since 6.6 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionFailedOver:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - - - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h deleted file mode 100644 index 7a0cb20..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h +++ /dev/null @@ -1,39 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A reference to a handler registered for a particular set of - session properties - - A topic tree registration is provided once a handler with a server-side - presence has been registered. - - @since 6.5 - */ - -@interface PTDiffusionSessionPropertiesListenerRegistration : PTDiffusionRegistration - -/** - The set of session properties registered. - - @since 6.5 - */ -@property(nonatomic, readonly) NSArray* properties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h deleted file mode 100644 index 3b31c14..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionPropertiesListenerRegistration; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Common protocol for delegates that establish a server side control presence for the - client session at a particular set of session properties. - - @since 6.5 - */ -@protocol PTDiffusionSessionPropertiesListenerRegistrationDelegate - -/** - Called if the handler is closed. - - No further calls will be made to this handler. - - @param registration The session properties registration for which this delegate applies. - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistrationDidClose:(PTDiffusionSessionPropertiesListenerRegistration *)registration; - -/** - Called in the event of a contextual error relating to this handler. - - No further calls will be made to this handler. - - @param registration The session properties registration for which this delegate applies. - - @param error The failure reason. - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - didFailWithError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h deleted file mode 100644 index 476ebe2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session reconnection attempt can either be started or aborted. - - @see PTDffusionSessionReconnectionStrategy - - @since 5.6 - */ -@interface PTDiffusionSessionReconnectionAttempt : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Request that the session starts the reconnection attempt. - - @since 5.6 - */ --(void)start; - -/** - Request that the session aborts the reconnection attempt. - - @since 5.6 - */ --(void)abort; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h deleted file mode 100644 index d221776..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h +++ /dev/null @@ -1,97 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSession; -@class PTDiffusionSessionReconnectionAttempt; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The session reconnection strategy protocol defines the behaviour for a session when - recovering a failed connection. - - @see PTDiffusionSessionConfiguration - - @since 5.6 - */ -@protocol PTDiffusionSessionReconnectionStrategy - -/** - The connection has failed when connecting or connected and the session is now in - a recovering state. - - @param session The session which is recovering. - - @param attempt The reconnection attempt object providing `start` and `abort` methods - to be used by the implementing strategy immediately or at some point in the future - to instruct the session how to proceed. - - @since 5.6 - */ --(void) diffusionSession:(PTDiffusionSession *)session - wishesToReconnectWithAttempt:(PTDiffusionSessionReconnectionAttempt *)attempt; - -@end - -/** - @brief Immediate abort is a default reconnection strategy supplied with the client library. - - This strategy immediately aborts. - - @since 5.6 - */ -@interface PTDiffusionSessionImmediateAbortReconnectionStrategy : NSObject -@end - -/** - @brief Delayed is a default reconnection strategy supplied with the client library. - - This strategy attempts to reconnect after a fixed delay specified in seconds. - - @since 5.6 - */ -@interface PTDiffusionSessionDelayedReconnectionStrategy : NSObject - -/** - Returns a delayed reconnection strategy initialised with a default 5 second delay. - - @return The delayed reconnection strategy instance initialised with a 5 second delay. - - @since 5.6 - */ --(instancetype)init; - -/** - Returns a delayed reconnection strategy initialised with the given delay. - - @param delay The delay in seconds, after which point the receiver will call the session reconnection - attempt's `start` method. - - @return The delayed reconnection strategy instance initialised with the given delay. - - @since 5.6 - */ --(instancetype)initWithDelay:(NSTimeInterval)delay NS_DESIGNATED_INITIALIZER; - -/** - The delay, in seconds, after which point the receiver will call the session reconnection - attempt's `start` method. - - @since 5.6 - */ -@property(nonatomic, readonly) NSTimeInterval delay; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h deleted file mode 100644 index ada35b0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A response stream represents an asynchronous, variable length feed of - messaging responses from other sessions. - - @see PTDiffusionMessagingFeature - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.1 - */ -@interface PTDiffusionSessionResponseStream : PTDiffusionStream - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h deleted file mode 100644 index 6259851..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h +++ /dev/null @@ -1,83 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling messaging responses from - individual sessions. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionSessionResponseStreamDelegate - -/** - Called when a session responds to a request with an error. - - @param stream The stream that received the response. - - @param error The error generated by the responding session. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void)diffusionStream:(PTDiffusionStream *)stream - didReceiveError:(NSError *)error - fromSessionId:(PTDiffusionSessionId *)sessionId; - -/** - The stream closed prematurely. - - @param stream The stream that closed. - - @param error The reason why the stream closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - - @deprecated since 6.6 this method is no longer called; in a future - release, PTDiffusionSessionResponseStreamDelegate will no longer extend - PTDiffusionStreamDelegate - */ --(void)diffusionStream:(PTDiffusionStream *)stream - didFailWithError:(NSError *)error -__deprecated_msg("Will be removed in a future release."); - -/** - The stream closed normally. - - @param stream The stream that closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - - @deprecated since 6.6 this method is no longer called; in a future - release, PTDiffusionSessionResponseStreamDelegate will no longer extend - PTDiffusionStreamDelegate - */ --(void)diffusionDidCloseStream:(PTDiffusionStream *)stream -__deprecated_msg("Will be removed in a future release."); - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionState.h deleted file mode 100644 index 844aa43..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionState.h +++ /dev/null @@ -1,84 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Session state represents the condition a session has in respect - of connectivity to a Diffusion server. - - A session state object is immutable. - - @see PTDiffusionSessionStateChange - - @since 5.6 - */ -@interface PTDiffusionSessionState : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - `YES` if the session has an active connection to the server, otherwise `NO`. - - @since 5.6 - */ -@property(nonatomic, readonly, getter=isConnected) BOOL connected; - -/** - `YES` if the session is in the process of attempting reconnection to the server, - otherwise `NO`. - - @since 5.6 - */ -@property(nonatomic, readonly, getter=isRecovering) BOOL recovering; - -/** - `YES` if the session is closed, otherwise `NO`. - - This might mean that the session lost its connection to the server and - could not be recovered. - - @since 5.6 - */ -@property(nonatomic, readonly, getter=isClosed) BOOL closed; - -/** - If the session is closed then this property will be `nil` if the closure - was normal and expected, otherwise it will contain the failure reason. - - @note This property is to be considered as an auxiliary, informational - attachment to this session state instance. As such it is not incorporated - within the result of the hash method and is not checked on calls to isEqual: - or isEqualToSessionState:. - - @since 5.9 - */ -@property(nonatomic, readonly, nullable) NSError* error; - -/** - Compares the receiver to the given session state. - - @param sessionState The session state object with which to compare the receiver. - - @return `YES` if the given session state is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h deleted file mode 100644 index e11b54c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h +++ /dev/null @@ -1,91 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionState; - -NS_ASSUME_NONNULL_BEGIN - -/** - The name used for session state change notifications. - - The notification's `userInfo` dictionary contains a PTDiffusionSessionStateChange object that describes the state change, - accessed using #PTDiffusionSessionStateChangeUserInfoKey. - - @relates PTDiffusionSessionStateChange - @see PTDiffusionSessionStateChangeUserInfoKey - - @note Session state change notifications are notified from the main dispatch queue and are delivered after - both KVO notifications on the session's state property and any invocations of completion callback handler blocks. - - @since 5.6 - */ -extern NSString *const PTDiffusionSessionStateDidChangeNotification; - -/** - The notification `userInfo` dictionary key used to access the PTDiffusionSessionStateChange object on - receipt of a #PTDiffusionSessionStateDidChangeNotification. - - @relates PTDiffusionSessionStateChange - @see PTDiffusionSessionStateDidChangeNotification - - @since 5.6 - */ -extern NSString *const PTDiffusionSessionStateChangeUserInfoKey; - -/** - @brief A session state change represents a change in a session's state. - - A session state change object is immutable. - - The @ref md_quick_start "Quick Start" guide provides an example of observing session state changes broadcast - through the default notification center. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSessionStateChange : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The previous state. This is the state that the session was in prior to transitioning to its current state. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionSessionState* previousState; - -/** - The current state. This is the state that the session has now transitioned to. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionSessionState* state; - -/** - Compares the receiver to the given session state change. - - @param sessionStateChange The session state change object with which to compare the receiver. - - @return `YES` if the given session state change is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToSessionStateChange:(nullable PTDiffusionSessionStateChange *)sessionStateChange; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h deleted file mode 100644 index 3d1d139..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h +++ /dev/null @@ -1,209 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBranchMappingTable; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client session to configure session trees. - - A session tree is a virtual view of the topic tree presented to a session by - fetch and subscription operations. Custom session trees for different - sessions can be configured using declarative rules maintained by the server - to meet data security, data optimisation, or personalisation and localisation - requirements. Each session can be presented with a unique session tree based - on its session properties. - - A session tree is produced by applying branch mappings to the topic - tree. Branch mappings are organised into branch mapping tables. Each - branch mapping table is assigned to a unique path – the session tree branch. - - A session tree is composed of session paths. Each session path is - mapped via the branch mapping tables to a unique topic path. - - A branch mapping table is an ordered list of (session filter, topic tree branch) - pairs. For example, the branch mapping table for the session tree branch - market/prices might be: - -
- Session filter                           Topic tree branch
- =========                                =============
- USER_TIER is '1' or $Country is 'DE'     backend/discounted_prices
- USER_TIER is '2'                         backend/standard_prices
- $Principal is ''                         backend/delayed_prices
- 
- - With this configuration, if an unauthenticated session (one that matches the - $Principal is '' session filter) subscribes to the session path - market/prices/X, and there is a topic bound to the topic path - backend/delayed_prices/X, the subscription will complete. The session - will receive a subscription notification under the session path - market/prices/X, together with the topic properties and the value of - the topic. The session is unaware that the data originates from a topic bound - to a different topic path. If no topic is bound to - backend/delayed_prices/X, the subscription will not resolve and the - session will receive no data, even if there is a topic bound to - market/prices/X. - - Session trees complement the data transformation capabilities of - {@link PTDiffusionTopicViewsFeature topic views}. In our example, the time delayed - time feed at backend/delayed_prices could be maintained by a topic - view using the delay by clause. - - Branch mappings are persisted by the server and shared across a cluster, in a - similar manner to topic views, security stores, and metric collectors. Branch - mappings are editable using this feature, and via the management console. - - For a given session and session path, at most one branch mapping applies. The - applicable branch mapping is chosen as follows: -
    -
  • Each branch mapping table with session tree branch that is a prefix of the - session path is considered. For a given table, the first branch mapping with - a condition that matches the session's properties is the one that applies. A - branch mapping table may have no applicable branch mappings for a session. -
  • If there are several such branch mapping tables with a branch mapping - that for the session, the one with the longest prefix of the session path - applies. -
  • If no branch mapping table has a branch mapping for the session, the - session path is translated to the identical topic path. -
- - ### Access control - - To subscribe to or fetch from a session path, a session must be granted the - appropriate path permission to the session path for the operation - ({@link PTDiffusionPathPermission#selectTopic SELECT_TOPIC}, or - {@link PTDiffusionPathPermission#readTopic READ_TOPIC}). The session - doesn't require any permissions to the topic path of the topic providing - the data. - - To create or replace branch mappings, a session needs the - {@link PTDiffusionPathPermission#modifyTopic MODIFY_TOPIC} path permission - for the session tree branch of the branch mapping table, - {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} path permission - for the topic tree branch of each branch mapping, and (if an existing table with - the same session tree branch is being replaced) - {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for - each branch mapping of existing table. - - To retrieve a branch mapping table, a session needs the - {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for - its session tree branch. - - ### Accessing the feature - - This feature may be obtained from a {@link PTDiffusionSession session} as follows: -
- PTDiffusionSessionTreesFeature *const sessionTrees = session.sessionTrees;
- 
- - @see PTDiffusionSession - - @since 6.7 - */ -@interface PTDiffusionSessionTreesFeature : PTDiffusionFeature - -/** - @brief Create or replace a branch mapping table. - - The server ensures that there is at most one branch mapping table for a - session tree branch. Putting a new branch mapping table will replace any previous - branch mapping table with the same session tree branch. To remove all branch - mappings for a session tree branch, put an empty branch mapping table. - - @param branchMappingTable the new table - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • InvalidBranchMappingError – if branchMappingTable or one of its - branch mappings is invalid; -
  • SessionSecurityError – if the calling - session does not have the {@link PTDiffusionPathPermission#modifyTopic - MODIFY_TOPIC} permission for the session tree branch of the branch - mapping table, {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} - permission for each branch mapping of branchMappingTable, and (if - there is an existing table for the session tree branch) - {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for - each branch mapping of existing table; -
  • ClusterRoutingError – if the operation failed due to a transient - cluster error; -
  • SessionClosedError – if the session is closed. -
- - @since 6.7 -*/ --(void) putBranchMappingTable:(PTDiffusionBranchMappingTable *)branchMappingTable - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - @brief Retrieve the session tree branches of the server's branch mapping tables. - - The results will only include the session tree branches of branch mapping tables - that have at least one branch mapping and for which the calling session - has {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for - the session tree branch. - - Individual branch mapping tables can be retrieved using - {@link #getBranchMappingTableForSessionTreeBranch:completionHandler: getBranchMappingTable}. - - @param 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 the `sessionTreeBranches` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • SessionClosedError – if the session is closed. -
- - @since 6.7 -*/ --(void) getSessionTreeBranchesWithMappings:(void (^)(NSArray * _Nullable sessionTreeBranches, NSError * _Nullable error)) completionHandler; - - -/** - @brief Retrieve a branch mapping table from the server. - - If there is no branch mapping table at the given session tree branch, this - method will return an empty branch mapping table. - - @param sessionTreeBranch the session tree branch that identifies the branch mapping - table - - @param 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 the `branchMappingTable` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • SessionSecurityError – if the calling - session does not have the {@link PTDiffusionPathPermission#readTopic - READ_TOPIC} permission for the session tree branch; -
  • SessionClosedError – if the session is closed. -
- - @since 6.7 -*/ --(void) getBranchMappingTableForSessionTreeBranch:(NSString *)sessionTreeBranch - completionHandler:(void (^)(PTDiffusionBranchMappingTable * _Nullable branchMappingTable, NSError * _Nullable error)) completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h deleted file mode 100644 index 5b16c46..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h +++ /dev/null @@ -1,50 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result of a querying the server for the - session properties of a particular session ID or session filter - - @since 6.5 - */ -@interface PTDiffusionSetSessionPropertiesResult : NSObject - - -+(instancetype)new NS_UNAVAILABLE; - - --(instancetype)init NS_UNAVAILABLE; - - -/** - Map of the changed session properties - The contained values in this Map are the old values prior to the change - - @since 6.5 - */ -@property(nonatomic, readonly) NSDictionary * changedProperties; - - -/** - List of the added session properties - - @since 6.5 - */ -@property(nonatomic, readonly) NSArray * addedProperties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStream.h deleted file mode 100644 index 18a71d0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStream.h +++ /dev/null @@ -1,43 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionStreamDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A stream represents an asynchronous, variable length feed of updates from the - Diffusion server. - - @see PTDiffusionTopicsFeature - @see PTDiffusionMessagingFeature - - @since 5.6 - */ -@interface PTDiffusionStream : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The delegate receiving the streaming updates for the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly, weak) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h deleted file mode 100644 index af12c1c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h +++ /dev/null @@ -1,57 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The stream delegate protocol defines the methods to be implemented by - classes wishing to receive streaming updates. - - @see PTDiffusionTopicsFeature - @see PTDiffusionMessagingFeature - - @since 5.6 - */ -@protocol PTDiffusionStreamDelegate - -/** - The stream closed prematurely. - - @param stream The stream that closed. - - @param error The reason why the stream closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - */ --(void)diffusionStream:(PTDiffusionStream *)stream - didFailWithError:(NSError *)error; - -/** - The stream closed normally. - - @param stream The stream that closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - */ --(void)diffusionDidCloseStream:(PTDiffusionStream *)stream; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h deleted file mode 100644 index a2a378f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStringFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a string fetch operation issued to the - server. - - A string fetch operation is issued using the - PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionStringFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * stringResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h deleted file mode 100644 index bda7a97..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h +++ /dev/null @@ -1,39 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a string fetch operation for a single - selected topic. - - A string fetch operation is issued using the - PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionStringFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) NSString* string; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h deleted file mode 100644 index db83bdd..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling string messaging requests with a - handler registered at the server. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionStringRequestDelegate - -/** - Called when a string request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param string The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithString:(nullable NSString *)string - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h deleted file mode 100644 index 266e8ab..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h +++ /dev/null @@ -1,47 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling String messaging requests. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionStringRequestStreamDelegate - -/** - Called when a string request has been received. - - @param stream The stream that received the request. - - @param string The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithString:(nullable NSString *)string - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h deleted file mode 100644 index 7fdc28e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling string messaging responses from - individual sessions. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionStringSessionResponseStreamDelegate - -/** - Called when a session responds to a request with a string. - - @param stream The stream that received the response. - - @param string The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithString:(nullable NSString *)string - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h deleted file mode 100644 index 51fc3c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as a string. - - @since 6.0 - */ -@interface PTDiffusionStringTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The string value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) NSString* string; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index 22c4859..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStringTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - string values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with string values. - - @since 6.0 - */ -@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldStringEvent The previous event. If `nil` then this is the first event. - - @param newStringEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldStringEvent:(nullable PTDiffusionStringTimeSeriesEvent *)oldStringEvent - newStringEvent:(PTDiffusionStringTimeSeriesEvent *)newStringEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h deleted file mode 100644 index af93739..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStringTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of string time series events. - - @since 6.0 - */ -@interface PTDiffusionStringTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The string time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* stringEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h deleted file mode 100644 index 32983b0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h +++ /dev/null @@ -1,111 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - string primitive values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionStringUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly, nullable) NSString* value; - -/** - Sets the topic to a specified value or no value. - - When a `nil` value is supplied to this method for a PTDiffusionTopicType_String - topic, the topic will be updated to have no value. If a previous value was - present subscribers will receive a notification that the new value is null. New - subscribers will not receive a value notification. - - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(BOOL) setValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h deleted file mode 100644 index fe42f3a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for string - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for string - topics. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -@protocol PTDiffusionStringValueStreamDelegate - -/** - An update was received for a topic path handled by a string value stream. - - @param stream The topic stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldString The previous value. If `nil` then this is either the first - value, or the previous value was `nil` indicating no value. - - @param newString The new value derived from the last update received from the - server, or `nil` if there is no value. - - @since 6.0 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldString:(nullable NSString *)oldString - newString:(nullable NSString *)newString; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h deleted file mode 100644 index 4fed397..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h +++ /dev/null @@ -1,93 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionStream; -@class PTDiffusionTopicSpecification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed subscription events for - value topics. - - This protocol defines methods to be implemented by classes wishing to receive - streamed subscription events. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -@protocol PTDiffusionSubscriberStreamDelegate - -/** - Subscription notification. - - This method is called when a session is subscribed to a topic that matches the - stream registration. This method is also called when a stream is added, for all - of the session's subscriptions to topics that match the stream registration. - - For a given topic, this will be the initial notification, and the first - notification following an unsubscription notification if the session - re-subscribes to the topic. - - This method is also called for fallback streams that match the topic type when - the session removes the last stream that selected a subscribed topic. The - fallback stream will now receive updates for the topic, starting with an - immediate notification of the currently cached value (if any). - - @param stream The stream that received the update. - - @param topicPath The topic path to which the session has been subscribed. - - @param specification The specification for the subscribed topic. - - @since 5.9 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didSubscribeToTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Unsubscription notification. - - This method is called if the session is unsubscribed from a topic that matches - the stream registration. The stream will receive no more updates for the topic - unless the session re-subscribes to the topic. - - This method is also called for fallback streams that match the topic type if - the session adds the first stream that selects a subscribed topic. For these - notifications, the reason will be - PTDiffusionTopicUnsubscriptionReason_StreamChange. The fallback stream will no - longer receive updates for the topic. - - @param stream The stream that received the update. - - @param topicPath The topic path from which the session has been unsubscribed. - - @param specification The specification for the unsubscribed topic. - - @param reason The reason for the unsubscription. - - @since 5.9 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didUnsubscribeFromTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - reason:(PTDiffusionTopicUnsubscriptionReason)reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h deleted file mode 100644 index b6ef0a2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h +++ /dev/null @@ -1,261 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRegistration; -@class PTDiffusionSessionId; -@class PTDiffusionStream; - -@protocol PTDiffusionSubscriptionRoutingRequestHandler; - -/** - Values assigned to the `code` property of NSError objects generated by the - PTDiffusionSubscriptionControlFeature. - - @since 6.1 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionSubscriptionControlFeatureErrorCode) { - /** - The filter was rejected. The command was not sent to any clients. - - @see PTDiffusionUnderlyingErrorsKey - - @since 6.1 - - @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. - */ - PTDiffusionSubscriptionControlFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead") = 1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - The value assigned to the `domain` property of NSError objects generated by the - PTDiffusionSubscriptionControlFeature. - - @since 6.1 - */ -extern NSString *const PTDiffusionSubscriptionControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - @brief The Subscription Control feature allows a client session to subscribe - or unsubscribe other sessions to topics, as well as also providing a mechanism - for handling requests to subscribe to routing topics (deprecated). - - The Subscription Control feature for a session can be obtained from the - session's `PTDiffusionSession#subscriptionControl` property. - - Requests to subscribe sessions to topics can be submitted at any time even if - the topics do not exist at the server. @ref md_topic_selectors "Topic selectors" - are used on subscription to match against topics at the server. The session - will become subscribed to any topics that exist at the server that match the - selector (unless they are already subscribed, or the session has insufficient - permission). The subscription request is also retained at the server so that if - any newly created topics match the selector, the session will then become - subscribed to it (unless a subsequent unsubscription cancels it). - - Specific sessions may be subscribed/unsubscribed if the PTDiffusionSessionId is - known. - - Subscriptions may also be requested using - @ref md_session_filters "session filters", where all sessions that satisfy a - particular filter expression will be subscribed/unsubscribed. The filter is - only evaluated once against the current sessions that exist at the time - it is - not retained and applied to any sessions that are created later. In order to be - notified of new sessions as they are created a - PTDiffusionSessionPropertiesListener can be used and those sessions subscribed - as required based upon their session properties. - - A handler for routing topics belonging to a branch of the topic tree can be - added using this feature's 'add routing subscription handler' method. When - another session subscribes to one of the routing topics, the handler will be - called to determine the appropriate source topic. - - ### Access control - - To subscribe other sessions to topics, a session must have `PTDiffusionGlobalPermission#modifySession` - permission, and `PTDiffusionPathPermission#selectTopic` permission for the path prefix of the topic - selector used for subscription. The subscribed sessions will only be subscribed - to matching topics for which they have `PTDiffusionPathPermission#readTopic` permission. - - To unsubscribe other sessions, a session must have `PTDiffusionGlobalPermission#modifySession` permission. - - To register a routing subscription handler the session needs `PTDiffusionGlobalPermission#viewSession`, - `PTDiffusionGlobalPermission#modifySession` and `PTDiffusionGlobalPermission#registerHandler` permissions. - - When handling a subscription request to a routing topic via a routing handler - the target session needs `PTDiffusionPathPermission#readTopic` permission to both the routing topic - being subscribed to and the target topic that is assigned. - - @since 6.1 - */ -@interface PTDiffusionSubscriptionControlFeature : PTDiffusionFeature - -/** - Subscribe another session to topics. - - New subscriptions will be established for existing topics that match the - provided topic selector and for which the subscribed session has `PTDiffusionPathPermission#readTopic` - permission. The topic selector will be added to the topic selections of the - subscribed session, and re-evaluated when new topics are added or the session's - security roles change. - - A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot - subscribe directly, but can be subscribed indirectly using this method. - - @param sessionId Identifies the session to subscribe. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to subscribe to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.1 - */ --(void) subscribeSessionId:(PTDiffusionSessionId *)sessionId - withTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Unsubscribe another session from topics. - - @param sessionId Identifies the session to unsubscribe. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to unsubscribe from. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.1 - */ --(void) unsubscribeSessionId:(PTDiffusionSessionId *)sessionId - withTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Subscribe sessions that satisfy a given session filter to topics. - - For each session that matches the filter, new subscriptions will be established - for existing topics that match the provided topic selector and for which the - sessions has `PTDiffusionPathPermission#readTopic` permission. The topic selector will be added to the - topic selections of the subscribed session, and re-evaluated when new topics - are added or the session's security roles change. - - A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot - subscribe directly, but can be subscribed indirectly using this method. - - @param filter The @ref md_session_filters "session filter" expression. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to subscribe to. - - @param 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 the `count` argument indicates the number of clients - that satisfied the filter and qualified for subscription. On failure the - `error` argument passed to the block will not be `nil` and the `count` argument - will be zero. The completion handler will be called asynchronously on the main - dispatch queue. - - @note The completion handler block will be invoked with a `nil` for the `error` - argument and zero for the `count` argument if no client sessions satisified the - filter. - - @exception NSInvalidArgumentException If any arguments are `nil`. - - @since 6.1 - */ --(void) subscribeWithFilter:(NSString *)filter - topicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; - -/** - Unsubscribe sessions that satisfy a given session filter from topics. - - @param filter The @ref md_session_filters "session filter" expression. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to unsubscribe from. - - @param 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 the `count` argument indicates the number of clients - that satisfied the filter and qualified for unsubscription. On failure the - `error` argument passed to the block will not be `nil` and the `count` argument - will be zero. The completion handler will be called asynchronously on the main - dispatch queue. - - @note The completion handler block will be invoked with a `nil` for the `error` - argument and zero for the `count` argument if no client sessions satisified the - filter. - - @exception NSInvalidArgumentException If any arguments are `nil`. - - @since 6.1 - */ --(void)unsubscribeWithFilter:(NSString *)filter - topicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; - -/** - Adds a handler for routing topics that belong to a branch of the topic tree. - When another session subscribes to one of the routing topics, the handler will - be called to determine the appropriate source topic. - - For each subscription to the routing topic, the server will select a handler - registered for the most specific branch. If multiple handlers are registered - for the same branch, the server will select one of them arbitrarily. - - @param handler The object which will handle the incoming subscription routing - requests. It will be sent messages asynchronously on the main dispatch queue. - A weak reference is maintained to this object. - - @param topicPath Identifies the branch of the topic tree to associate the - handler with. - - @param 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 the `registration` argument will point to a - registration object which can be used to manage the registration. The - completion handler will be called asynchronously on the main dispatch queue. - - @return Stream resulting from the registration of the given routing request handler - for the given topic path. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - - @deprecated since 6.7 Routing Topics are deprecated. The more powerful - {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. - */ --(PTDiffusionStream *)addRoutingRequestHandler:(id)handler - forTopicPath:(NSString *)topicPath - completionHandler:(void (^)(PTDiffusionRegistration * _Nullable registration, NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h deleted file mode 100644 index fc872e7..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h +++ /dev/null @@ -1,103 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A single request from a session to subscribe to a routing topic. - - Each request received by a handler must either be routed or deferred. - - @since 6.1 - */ -@interface PTDiffusionSubscriptionRoutingRequest : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Identifies the session making the subscription request. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - -/** - Identifies the subscribed routing topic. - - @since 6.1 - */ -@property(nonatomic, readonly) NSString* topicPath; - -/** - Defer the handling of this subscription request. - - * When a request is deferred, the server will discard the request, and the - requesting session will not receive a subscription notification. - - An implementation can retain the requesting PTDiffusionSessionId and the - routing topic's path so a routing subscription can be established at a later - time using the PTDiffusionSubscriptionControlFeature. - - Each instance of this class can be used once. If route or defer has already - been called for this instance, calling this method will cause a warning to be - logged by the server, but otherwise have no effect. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if completionHandler is `nil`. - - @since 6.1 - */ --(void)deferWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Resolve a subscription request by providing the path of a source topic to which - the requesting session will be subscribed via the routing topic. - - The requesting session will receive a subscription notification with the - routing topic's path and the topic specification of the source topic. If the - source topic is stateful, the requesting session will also be sent an update - for the routing topic path with the current value of the source topic. The - existence of the source topic is hidden from the requesting session. Updates to - the source topic are forwarded to the session as if they came from the routing - topic. - - A session that does not have `SELECT_TOPIC` or `READ_TOPIC` permission for the - source topic cannot subscribe directly, but can be subscribed indirectly using - this method. - - @param topicPath The topic path of the source topic to route to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.1 - */ --(void)routeToSourceTopicPath:(NSString *)topicPath - withCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h deleted file mode 100644 index d7bae1a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h +++ /dev/null @@ -1,47 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSubscriptionRoutingRequest; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed subscription routing - requests. - - This protocol defines methods to be implemented by classes wishing to provide - routing functionality. - - @see PTDiffusionSubscriptionControlFeature - - @since 6.1 - */ -@protocol PTDiffusionSubscriptionRoutingRequestHandler - -/** - Notification of a request to subscribe to a specific routing topic. - - @param stream The stream that received the update. - - @param request The request, which must be replied to or deferred. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveSubscriptionRoutingRequest:(PTDiffusionSubscriptionRoutingRequest *)request; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h deleted file mode 100644 index 6231157..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h +++ /dev/null @@ -1,110 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionBytes; -@class PTDiffusionTimeSeriesFetchResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series. - - Two instances are equal if and only if they have identical attributes. - Typically two instances that have the same sequence number will be equal, but - this may not be true if the event has changed on the server. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesEvent : PTDiffusionTimeSeriesEventMetadata - -/** - If this is an edit event, returns the metadata of the original event that this - event replaces; otherwise returns this event. - - The result is always the metadata of an original event, never that of an edit - event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionTimeSeriesEventMetadata* originalEvent; - -/** - If this is an edit event then `YES`, otherwise `NO` indicating that this is an - original event. - - @since 6.0 - */ -@property(nonatomic, readonly, getter=isEditEvent) BOOL editEvent; - -/** - The value associated with the event. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionBytes* bytes; - -/** - Compares the receiver to the given time series event. - - @param timeSeriesEvent The time series event object with which to compare the - receiver. - - @return `YES` if it is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesEvent:(nullable PTDiffusionTimeSeriesEvent *)timeSeriesEvent; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with time - series events. - - @since 6.3 - */ -@interface PTDiffusionFetchRequest (PTDiffusionTimeSeriesEvent) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to time series topics. Any - topic types specified in a previous call to PTDiffusionFetchRequest#topicTypes: - that cannot be read as a time series will be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.3 - */ --(void)fetchTimeSeriesEventsWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionTimeSeriesFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h deleted file mode 100644 index b994743..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h +++ /dev/null @@ -1,87 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Metadata associated with a time series event. - - @see PTDiffusionTimeSeriesEvent - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesEventMetadata : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Sequence number identifying this event within its time series. - Assigned by the server when the event is created. - - Sequence numbers are unique within a time series. Each event appended to a - time series is assigned a sequence number that is equal to the sequence - number of the preceding event plus one. - - @return The sequence number; never higher than `INT64_MAX`. - - @since 6.0 - */ -@property(nonatomic, readonly) UInt64 sequence; - -/** - Event timestamp. Assigned by the server when the event is created. - - Events do not have unique timestamps. Events with different sequence numbers - may have the same timestamp. - - Subsequent events in a time series usually have timestamps that are greater or - equal to the timestamps of earlier events, but this is not guaranteed due to - changes to the time source used by the server. - - @return The difference, measured in milliseconds, between the time the server - added the event to the time series and midnight, January 1, 1970 UTC. - - @since 6.0 - */ -@property(nonatomic, readonly) SInt64 timestamp; - -/** - Server-authenticated identity of the session that created the event. - - @return The principal that created the event, or - [PTDiffusionSession anonymousPrincipal] if the session that created the event - was not authenticated - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* author; - -/** - Compares the receiver to the given time series event metadata. - - @param timeSeriesEventMetadata The time series event metadata object with which - to compare the receiver. - - @return `YES` if it matches the receiver for just metadata elements (sequence, - timestamp and author), otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesEventMetadata:(nullable PTDiffusionTimeSeriesEventMetadata *)timeSeriesEventMetadata; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h deleted file mode 100644 index 50f5705..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h +++ /dev/null @@ -1,320 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a session to update and query time series topics. - - ## Time series topics - - A time series is a sequence of events. Each event contains a value - and has server-assigned metadata comprised of a sequence number, timestamp, - and author. Events in a time series are ordered by increasing sequence - number. Sequence numbers have values between `0` and `NSIntegerMax` - and are contiguous: an event with sequence number - `n` will be followed by one with sequence number `n + 1`. Two - events with the same sequence number will be equal – having the same - timestamp, author, and value. - - A time series topic allows sessions to access a time series that is - maintained by the server. A time series topic has an associated - {@link PTDiffusionDataType event data type}, such as `PTDiffusionBinary`, - `PTDiffusionPrimitive `, or `PTDiffusionJSON`, that determines the type of value - associated with each event. - - This feature provides a historic query API for time series topics, allowing a - session to query arbitrary sub-sequences of a time series. The - {@link PTDiffusionTopicControlFeature topic control} and {@link PTDiffusionTopicsFeature topics} - features complete the API, providing ways to create and subscribe to a - time series topic. - - The API presents a time series as an append-only data structure of immutable - events that is only changed by adding new events. - - ### Edit events - - Although a time series is append-only, an event can be overridden by - appending an edit event. An edit event is a special type of event - that overrides an earlier event in the time series (referred to as the - original event) with a new value. When an edit event is added to a - time series, the server retains both the original event and the edit event, - allowing subscription and query results to reflect the edit. - - For example, suppose a time series has two events with the values `A` - and `B`, and the first event has been overridden by a later edit event - that provides a new value of `X`. The server has the following - information about the time series. - - - - - - - - - - - - - - - - - - - - - - -
SequenceValueType
0Aoriginal event
1Boriginal event
2Xedit of sequence 0
- - The current value of the event with sequence number 0 is `X`. - - If an original event has several edit events, the latest edit event (the one - with the highest sequence number) determines its current value. Each edit - event refers to an original event, never to another edit event. - - Extending the example by appending a further edit event to the time series: - - - - - - - - - - - - -
SequenceValueType
3Ysecond edit of sequence 0
- - The current value of the event with sequence number 0 is now `Y`. - - - ### Retained range - - A time series topic retains a range of the most recent events. When a new - event is added to the time series, older events that fall outside of the - range are discarded. By default, this range includes the ten most recent - events. A different range can be configured by setting the - {@link PTDiffusionTopicSpecification#timeSeriesRetainedRangePropertyKey - timeSeriesRetainedRange} property. - - ## Subscribing to a time series topic - - A session can {@link PTDiffusionTopicsFeature#subscribeWithTopicSelectorExpression:completionHandler: - subscribe} to a time series topic and add a value stream to receive updates - about events appended to the time series. Events are represented by - {@link PTDiffusionTimeSeriesEvent event} instances. Each event has a value and - {@link PTDiffusionTimeSeriesEventMetadata metadata}. An edit event has two sets of - metadata – its own metadata and that of the original event that it - replaces. - - ### Subscription range - - New subscribers are sent a range of events from the end of the time series. - This is known as the subscription range. Configuring a subscription - range is a convenient way to provide new subscribers with an appropriate - subset of the latest events. - - The default subscription range depends on whether the topic is configured to - publish delta streams. If delta streams are enabled, new subscribers are sent - the latest event if one exists. If delta streams are disabled, new - subscribers are sent no events. Delta streams are enabled by default and can - be disabled by setting the {@link PTDiffusionTopicSpecification#publishValuesOnlyPropertyKey - publishValuesOnly} property to `true`. - - A larger subscription range can be configured by setting the - {@link PTDiffusionTopicSpecification#timeSeriesSubscriptionRangePropertyKey - timeSeriesSubscriptionRange} property. Regardless of the - `timeSeriesSubscriptionRange` property, if delta streams are - enabled, new subscribers will be sent at least the latest event if one - exists. - - If the range of events is insufficient, the subscribing session can use a - {@link PTDiffusionTimeSeriesRangeQuery range query} to retrieve older events. - - When configuring a non-default subscription range for a time series topic, - register value streams before subscribing to the topic. The session only - maintains a local cache of the latest value received for a topic, not the - full subscription range. If a value stream is added after a session has - subscribed to a matching time series topic, the new stream will only be - notified of the latest value. - - ## Updating a time series topic - - A session can use `appendToTopicPath:value:completionHandler` to submit a value to be added to a - time series. The server will add an event to the end of the time series based - on the supplied value, with a new sequence number, timestamp, and the author - set to the authenticated principal of the session. - - Using `appendToTopicPath:value:timestamp:completionHandler` allows a session - to submit a value and supplied timestamp. - This provides control over the timestamp of the event. - The supplied instant must not be before the latest event stored by the time - series topic. There are no other restrictions. - - A session can use `editAtTopicPath:originalSequence:value:completionHandler:` - to submit an edit to an original time series event, identified by its sequence number. - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - Time series topics can also be updated using the functionality provided by - the {@link PTDiffusionTopicUpdateFeature topic update} feature. This includes - `setWithPath:toValue:completionHandler:`, `addWithPath:specification:andSetToJSONValue:completionHandler:` - and {@link PTDiffusionUpdateStream update streams}. This usage performs - an append operation with the added benefits of {@link PTDiffusionUpdateConstraint update constraints}, - topic creation when updating (upsert), and delta streams. When using methods - from {@link PTDiffusionTopicUpdateFeature topic update} the sequence number, timestamp and author metadata - will be generated using the same rules as - `appendToTopicPath:value:timestamp:completionHandler` but the associated - {@link PTDiffusionTimeSeriesEventMetadata event metadata} will not be returned to the caller. - - ## Querying a time series topic - - {@link PTDiffusionTimeSeriesRangeQuery} is a builder for configuring a query that selects a range - of a time series. There are two types of range query that differ in how edits - are processed – value range queries and edit range queries. - - ### Value range queries - - A value range query returns a merged view of part of a time series. This is - the most common time series query and appropriate for most applications. - - The result of a value range query reflects the latest available edits and the - {@link PTDiffusionTimeSeriesQueryResultEventArrayStructure#valueEventStream - query result stream} is ordered by the original - event sequence number, presenting edit events instead of the original events - they replace. Original events that have no edit events are included verbatim. - Original events that have edit events are replaced by the latest edit event. - - A value range query of the example time series, with no range constraints so - the entire time series is selected, returns two events: - -
-    sequence=3, value=Y; original event sequence=0
-    sequence=1, value=B
- 
- - The original value of the first event is not provided. It's apparent that the - first event is an edit event because it provides the metadata of the original - event it replaces. - - ### Edit range queries - - Applications with auditing and other administrative requirements can access - original event values using an edit range query. An edit range query returns - an unmerged view of a time series that can include both original events and - the edit events that replace them. Edit range queries are rarely needed - – value range queries satisfy most use cases. - - Edit range queries provide a detailed view of a time series. Because this is - potentially sensitive information, an edit range query can only be performed - by a session that has the {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents - queryObsoleteTimeSeriesEvents} permission for the target topic. - - There are two sub-types of edit range query. - - A full audit trail of edit events can be obtained using an all edits - edit range query. The result contains all original events selected by the - query, together with all subsequent edit events that affect the original - events. The query result stream provides events in time series order. An all - edits query of the example time series, with no range constraints so the - entire time series is selected, returns four events: - -
-    sequence=0; value=A
-    sequence=1; value=B
-    sequence=2; value=X; original event sequence=0
-    sequence=3; value=Y; original event sequence=0
- 
- - A latest edits edit range query returns a query result stream in - time series order that contains all original events selected by the query, - together with the latest edit events that affect the original events. A - latest edits query of the example time series, with no range constraints so - the entire time series is selected, returns three events: - -
-    sequence=0; value=A
-    sequence=1; value=B
-    sequence=3; value=Y; original event sequence=0
- 
- - The initial range of events delivered for a subscription to a time series - topic is derived from a latest edits edit range query. See - Subscription Range. - - When evaluated for a time series that has no edit events, an edit range query - will return the same results as a similarly configured value range query. - - ## Changes to a time series made outside the API - - The API presents a time series as an append-only data structure of immutable - events that is only changed by adding new events. The API does not allow - events to be deleted or edited. - - There are circumstances in which events can be removed from a time series by - server operations outside the API. For example, a time series topic can be - configured to discard or archive older events to save storage space; or the - time series may be held in memory and lost if the server restarts. Subscribed - sessions are not notified when events are removed in this way, but a session - can infer the removal of events that are no longer included in query results. - Similarly, an event's value can be changed on the server. For example, if an - administrator changes its value to redact sensitive data. Again, subscribed - sessions are not notified when events are modified, but a session can infer - this has happened from query results. - - Whether such changes can happen for a particular time series topic depends on - the topic specification, and the administrative actions that are allowed. To - write a robust application, do not rely on two Event instances with the same - sequence number but obtained though different API calls, being equal; nor - that there are no sequence number gaps between events in query results. - - ## Access control - - The session must have the {@link PTDiffusionPathPermission#readTopic readTopic} - permission for a topic to query a time series topic. The - {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents - queryObsoleteTimeSeriesEvents} permission is additionally required - to evaluate an {@link PTDiffusionTimeSeriesRangeQuery#forEdits edit range} query, or a - {@link PTDiffusionTimeSeriesRangeQuery#forValues value range query} with an - {@link PTDiffusionTimeSeriesRangeQuery#editRange edit range}. - - The session must have the {@link PTDiffusionPathPermission#updateTopic updateTopic} - permission for a topic to `appendToTopicPath:value:completionHandler:` - a new event to a time series topic. The - {@link PTDiffusionPathPermission#editTimeSeriesEvents editTimeSeriesEvents} - permission is additionally required to submit an edit via - `editAtTopicPath:originalSequence:value:completionHandler:` to any time series - topic event. The more restrictive - {@link PTDiffusionPathPermission#editOwnTimeSeriesEvents editOwnTimeSeriesEvents} - permission allows a session to submit edits to time series topic - events that are authored by the principal of the calling session. - - The Time Series feature for a session can be obtained from the session's - {@link PTDiffusionSession#timeSeries timeSeries} property. - - @see PTDiffusionSession - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature : PTDiffusionFeature - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h deleted file mode 100644 index 14aaf1f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTimeSeriesFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a time series fetch operation issued to - the server. - - A time series fetch operation is issued using the - PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: - method. - - @since 6.3 - */ -@interface PTDiffusionTimeSeriesFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.3 - */ -@property(nonatomic, readonly) NSArray * timeSeriesResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h deleted file mode 100644 index 7f3ff85..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a time series fetch operation for a single - selected topic. - - A time series fetch operation is issued using the - PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: - method. - - @since 6.3 - */ -@interface PTDiffusionTimeSeriesFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the latest event, or `nil` if the topic has no events. - - @since 6.3 - */ -@property(nonatomic, readonly, nullable) PTDiffusionTimeSeriesEvent* event; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h deleted file mode 100644 index 89f595f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTimeSeriesEvent; -@class PTDiffusionTimeSeriesQueryResultEventArrayStructure; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of time series events. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesQueryResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - If this result includes all events selected by the query then `YES`. - - When this property returns `YES` then the value returned by the selectedCount - property will be the same as the count of the array returned by the events - property. - - @since 6.0 - */ -@property(nonatomic, readonly, getter=isComplete) BOOL complete; - -/** - The number of events selected by the query. - - This number may be greater than the count of the array returned by the events - property due to a policy of the time series topic to limit the number of - returned results, or the use a limit on the range query. - - @since 6.0 - */ -@property(nonatomic, readonly) UInt64 selectedCount; - -/** - The structural properties of the events array. - - @see events - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionTimeSeriesQueryResultEventArrayStructure* eventArrayStructure; - -/** - Compares the receiver to the given time series query result. - - @param timeSeriesQueryResult The time series query result object with which - to compare the receiver. - - @return `YES` if it is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesQueryResult:(nullable PTDiffusionTimeSeriesQueryResult *)timeSeriesQueryResult; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h deleted file mode 100644 index 82a403d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h +++ /dev/null @@ -1,69 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Describes the structural properties of the array of events presented - by a time series query result. - - @see PTDiffusionTimeSeriesQueryResult - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesQueryResultEventArrayStructure : PTDiffusionEnumeration - -/** - The array is presented in time series order, with the following properties: - - - The sequence of each event in the array is unique. - - The array is ordered by sequence. The sequence of each subsequent event - in the stream is greater than its predecessor. - - Edit event timestamps may lie outside the query range. - - The array can have multiple edit events for the same original event. - - @return Instance indicating the array is presented in time series order. - - @since 6.0 - */ -+(instancetype)editEventStream; - -/** - The array is ordered by the original event sequence number, presenting edit - events instead of the original events they replace. - - The array has the following properties: - - - The sequence of each event in the stream is unique. - - The original event sequence of each event in the stream is unique. - - The stream is ordered by original event sequence. The original event sequence - of each subsequent event in the stream is greater than its predecessor. - - If no events have been removed from the time series, the original event - sequence of each subsequent event is one greater than its predecessor. - - If an event is an original event, the query found no corresponding edit - events. - - If an event is an edit event, its timestamp attribute may lie outside the - query range. Consequentially, the sequence and timestamp attributes of the - events may be non-sequential. - - @return Instance indicating array is ordered by the original event sequence number. - - @since 6.0 - */ -+(instancetype)valueEventStream; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h deleted file mode 100644 index 9c97336..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h +++ /dev/null @@ -1,379 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Builder for queries that select a range of events from a time series. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesRangeQuery : NSObject - -/** - Return a copy of the receiver configured to perform a value range query with - the view range set to the entire time series. - - Operator type: value range. - - @return a copy of the receiver configured to perform a view range query with a - new view range that selects the entire time series. - - @since 6.0 - */ --(instancetype)forValues; - -/** - Return a copy of the receiver configured to perform an edit range query with - the view range set to the entire time series. - - Operator type: value range. - - @return a copy of the receiver configured to perform an edit range query with a - new view range that selects the entire time series. - - @since 6.0 - */ --(instancetype)forEdits; - -/** - Return a copy of the receiver configured to perform a value range query with - the edit range set to the entire time series. - - This operator can only be applied to value range queries. Newly initialised - range query instances are value range queries. The @ref forValues operator can - be used to create a value range query from an edit range query. - - Operator type: edit range. - - @return a copy of the receiver configured to perform a view range query with a - new edit range that selects the entire time series, or `nil` if this is not a - value range query. - - @since 6.0 - */ --(nullable instancetype)editRange; - -/** - Return a copy of the receiver configured to perform an edit range query with - the edit range that selects all edits in the entire time series. - - This operator can only be applied to edit range queries. Newly initialised - range query instances are value range queries. The @ref forEdits operator can - be used to create an edit range query from a value range query. - - Operator type: edit range. - - @return a copy of the receiver configured to perform an edit range query with a - new edit range that selects all edits in the entire time series, or `nil` if - this is not an edit range query. - - @since 6.0 - */ --(nullable instancetype)allEdits; - -/** - Return a copy of the receiver configured to perform an edit range query with - the edit range that selects latest edits in the entire time series. - - This operator can only be applied to edit range queries. Newly initialised - range query instances are value range queries. The @ref forEdits operator can - be used to create an edit range query from a value range query. - - Operator type: edit range. - - @return a copy of the receiver configured to perform an edit range query with a - new edit range that selects the latest edits in the entire time series, or - `nil` if this is not an edit range query. - - @since 6.0 - */ --(nullable instancetype)latestEdits; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be an absolute sequence number. - - Operator type: anchor. - - @param sequence absolute sequence number specifying the anchor of the returned - range. - - @return a copy of the receiver with a new anchor. - - @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)fromSequence:(UInt64)sequence; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be the start of the time series. - - There is a difference between `fromStart` and `fromSequence:0` if the range - also ends before the first event of the time series. For example, - `[[query fromStart] toStart]` is always empty, but - `[[query fromSequence:0] toStart]` includes the event with sequence number `0`. - - Operator type: anchor. - - @return a copy of the receiver with a new anchor. - - @since 6.0 - */ --(instancetype)fromStart; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be an absolute time. - - Operator type: anchor. - - @param date absolute time specifying the anchor of range. - - @return a copy of the receiver with a new anchor. - - @since 6.0 - */ --(instancetype)fromDate:(NSDate *)date; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be a relative offset before the end of the time series. - - Operator type: anchor. - - @param count specifies the anchor as a number of events before the end of the - time series. For value range queries, count is the number of original events. - For edit range queries, count is the number of events of any type. - - @return a copy of the receiver with a new anchor. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)fromLastWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be a relative time from the timestamp of the last event in the time series. - - Operator type: anchor. - - @param timeInterval specifies anchor relative to the timestamp of the latest - event in the time series. - - @return a copy of the receiver with a new anchor. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)fromLastWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver with the span of the current range configured to - end at an absolute sequence number. - - Operator type: span. - - @param sequence absolute sequence number specifying the end of the returned - range. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)toSequence:(UInt64)sequence; - -/** - Return a copy of the receiver with the span of the current range configured to - end at the start of the time series. - - There is a difference between `toStart` and `toSequence:0` if the range also - starts before the first event of the time series. For example, - `[[query fromStart] toStart]` is always empty, but - `[[query fromStart] toSequence:0]` includes the event with sequence number `0`. - - Operator type: span. - - @return a copy of the receiver with a new span. - - @since 6.0 - */ --(instancetype)toStart; - -/** - Return a copy of the receiver with the span of the current range configured to - end at an absolute time. - - Operator type: span. - - @param date absolute time specifying the end of the range. - - @return a copy of the receiver with a new span. - - @since 6.0 - */ --(instancetype)toDate:(NSDate *)date; - -/** - Return a copy of the receiver with the span of the current range configured to - select a range of events following the anchor. - - Operator type: span. - - @param count specifies the end of the range of events to select following the - anchor. For value range queries, count is the number of original events. For - edit range queries, count is the number of events of any type. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)nextWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the span of the current range configured to - select a temporal range of events following the anchor. - - Operator type: span. - - @param timeInterval the time span of events following the anchor to select. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)nextWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver with the span of the current range configured to - select a range of events preceding the anchor. - - Operator type: span. - - @param count specifies the end of the range of events to select preceding the - anchor. For value range queries, count is the number of original events. For - edit range queries, count is the number of events of any type. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)previousWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the span of the current range configured to - select a temporal range of events preceding the anchor. - - Operator type: span. - - @param timeInterval the time span of events preceding the anchor to select. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)previousWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver with the span of the current range configured to - end a number of events before the end of the time series. - - Operator type: span. - - @param count specifies the end of the range of events to select as a number of - events before the end of the time series. For value range queries, count is the - number of original events. For edit range queries, count is the number of - events of any type. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)untilLastWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the span of the current range configured to - end at a relative time from the timestamp of the last event in the time series. - - - Operator type: span. - - @param timeInterval specifies the end of the range of events to select relative - to the timestamp of the latest event in the time series. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)untilLastWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver that returns at most count events. - - If the query would otherwise select more than count events, only the latest - count values (those with the highest sequence numbers) are returned. - - This is most useful when a temporal span has been configured with - @ref nextWithTimeInterval: or @ref previousWithTimeInterval: where the potential - number of returned events is unknown. - - PTDiffusionTimeSeriesQueryResult::complete can be used to determine whether - a query has returned an incomplete result. - - Operator type: limit. - - @param count the maximum number of events to return. - - @return a copy of the receiver with a new limit. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)limitWithCount:(UInt64)count; - -/** - Compares the receiver to the given time series range query. - - @param timeSeriesRangeQuery The time series range query object with which - to compare the receiver. - - @return `YES` if it is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesRangeQuery:(nullable PTDiffusionTimeSeriesRangeQuery *)timeSeriesRangeQuery; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h deleted file mode 100644 index 64be027..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h +++ /dev/null @@ -1,322 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionAddTopicResult; -@class PTDiffusionBytes; -@class PTDiffusionMissingTopicNotification; -@class PTDiffusionTopicSpecification; -@class PTDiffusionTopicTreeRegistration; -@class PTDiffusionTopicRemovalResult; - -@protocol PTDiffusionMissingTopicHandler; - -typedef NS_ENUM(NSInteger, PTDiffusionTopicControlFeatureErrorCode) { - /** - @deprecated since 6.7 Enumeration is unused. - */ - PTDiffusionTopicControlFeatureErrorCode_ServerFailedToAddTopic __deprecated_enum_msg("Enumeration is unused.") = 1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - @since 5.7 - */ -extern NSString *const PTDiffusionTopicControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); - -/** - @brief The Topic Control feature provides a client session with the ability to - manage topics. - - This feature allows a session to manage topics. It provides the following - capabilities: - - 1. Adding and removing topics. - 2. Missing topic notifications — listening for requests to subscribe to - topics that do not exist thus allowing dynamic topic creation on demand. - - ### Topics - - The Diffusion server stores data in topics. Each topic is bound to a topic - path in the topic tree, and may have a current value. Sessions can subscribe - to topics. Updates to topic values are broadcast to subscribing sessions. - There are several types of topic. The {@link PTDiffusionTopicType topic type} determines - the type of the data values a topic publishes to subscribers. - - ### Adding topics - - #### Creating topics - - The simplest way to create a topic is to call - `#addTopicWithPath:type:completionHandler:`, supplying a topic type. For example, to - create a {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo`: - -
-
-    [topicControl addTopicWithPath:\@"foo"
-                            type:PTDiffusionTopicType_JSON
-                completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
-    {
-        ...
-    }];
-
- 
- - Success or failure is reported asynchronously through the `completionHandler` - arguments. - - The nature of a topic depends primarily on its topic type, but can be - customized using topic properties. Some types of topic cannot be created - without supplying mandatory topic properties. Topic properties can be - supplied in a {@link PTDiffusionTopicSpecification topic specification} using - {@link #addTopicWithPath:specification:completionHandler:}. Topic - specifications can be created using `PTDiffusionTopicSpecification#initWithType:} and - further customized with builder methods. For example, to create a - {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo` with - the {@link PTDiffusionTopicSpecification#validateValuesPropertyKey validate values} property set - to `true`: - -
- 
-    PTDiffusionTopicSpecification *topicSpecification =
-        [PTDiffusionTopicSpecification alloc] initWithType:PTDiffusionTopicType_JSON
-                                                properties:\@{PTDiffusionTopicSpecification.validateValuesPropertyKey : PTDiffusionTopicSpecification.truePropertyValue}];
-    [topicControl addTopicWithPath:\@"foo"
-                     specification:topicSpecification
-                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
-    {
-        ...
-    }];
- 
- 
- - See {@link PTDiffusionTopicSpecification} for details of the available topic properties - and their effects on the different types of topic. - - Topic creation is idempotent. If {@link #addTopicWithPath:specification:completionHandler:} - is called and there is already a topic bound - to `path` with a topic specification equal to `specification`, - the call will complete normally with an `PTDiffusionAddTopicResult#exists` result. - However, if there is a topic bound to `path` with a different topic - specification, the completionHandler will return an error. - - ### Removing topics - - Topics can be removed using {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: - removeTopicsWithTopicSelectorExpression}. - Only those selected topics that the caller has `PTDiffusionPathPermission#modifyTopic` - permission to will be removed, any others will remain. - - Topics can also be automatically removed according to a removal criteria - specified using the `PTDiffusionTopicSpecification#removalPropertyKey` topic - property. - - ### Managing topic tree hierarchies - - A topic can be bound to any path in the topic tree namespace. The only - restriction is that two topics can not have the same path. - - In the following example a topic can be created with the path `A/B/foo` - even though there are no topics with path `A` or `A/B`: - -
- 
-    [topicControl addTopicWithPath:\@"A/B/foo"
-                              type:PTDiffusionTopicType_JSON
-                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
-    {
-        ...
-    }];
- 
- 
- - Topics bound to the paths `A` or `A/B` can be created later. - - Topics can be removed without affecting the topics subordinate to them in the - topic tree using {@link #removeDiscreteWithTopicSelectorExpression:completionHandler:} - providing a path topic selector. By using the `//` topic selector qualifier it - is possible to remove a topic and all of its descendant topics, that is to - remove whole topic tree branches. - - ### Access control - - To add or remove a topic, a session needs `PTDiffusionPathPermission#modifyTopic` - permission for the topic path. When removing topics with a topic selector that - matches more than one topic, only topics with paths for which the session has - `PTDiffusionPathPermission#modifyTopic` permission will be removed. - - To successfully register a missing topic handler using - `#addMissingTopicHandler:forTopicPath:completionHandler:`, the session needs - `PTDiffusionGlobalPermission#registerHandler` permission. - - ### Accessing the feature - - The Topic Control feature for a session can be obtained from the session's - `PTDiffusionSession#topicControl` property. - - @see PTDiffusionSession - - @since 5.7 - */ -@interface PTDiffusionTopicControlFeature : PTDiffusionFeature - -/** - Register a handler of requests for a branch of the topic tree. - - The provided handler is called when a client subscribes using a - topic selector that matches no existing topics. This allows a control client - session to be notified when another session requests a topic that does - not exist. - - A session can register multiple handlers, but may only register a single - handler for a given topic path. - A handler will only be called for topic selectors with a path prefix that starts - with or is equal to topicPath. If the path prefix matches multiple handlers, - the one registered for the most specific (longest) topic path will be called. - - @param handler The handler to use for notifying topics at or below the `topicPath` - (unless there is a handler registered for a more specific branch). - - @param topicPath Identifies a branch of the topic tree. - - @param 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 the `registration` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - - @note If the session is closing or closed when this method is called, the - completion handler block will be called with an error, while the missing topic - handler will receive no messages. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 5.7 - */ --(void)addMissingTopicHandler:(id)handler - forTopicPath:(NSString *)topicPath - completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -/** - Send a request to the server to add a topic. - - This is a convenience method which creates the topic with default details for - the given type. - - @param path The full path of the topic to be created. - - @param type The type of topic to be created. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or value has been - supplied for a topic type that is not stateful. - - @since 6.1 - */ --(void)addTopicWithPath:(NSString *)path - type:(PTDiffusionTopicType)type - completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Send a request to the server to add a topic. - - The topic will be initialized with the given value, if specified non-`nil`, - during creation and therefore the value must be compatible with the topic type. - - @param path The full path of the topic to be created. - - @param specification Defines the topic to be created. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or value has been - supplied for a topic type that is not stateful. - - @since 6.1 - */ --(void)addTopicWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Send a request to remove one or more topics. - - All topics that match the provided topic selector that the caller has - permission to remove will be removed. - - The selector's descendant pattern qualifier (a trailing `/` or `//`), can be - used to remove descendant topics. If a single `/` qualifier is specified, all - descendants of the matched topic paths will be removed. If `//` is specified, - the matched paths and all descendants of the matched paths (complete branches) - will be removed. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 5.9 - - @deprecated since 6.6. Use {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: - removeTopicsWithTopicSelectorExpression} instead. - */ --(void)removeDiscreteWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler -__deprecated_msg("Will be removed in a future release"); - - -/** - Send a request to remove one or more topics. - - All topics that match the provided topic selector that the caller has - permission to remove will be removed. - - The selector's descendant pattern qualifier (a trailing `/` or `//`), can be - used to remove descendant topics. If a single `/` qualifier is specified, all - descendants of the matched topic paths will be removed. If `//` is specified, - the matched paths and all descendants of the matched paths (complete branches) - will be removed. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. `result` provides the number of topics - removed via {@link PTDiffusionTopicRemovalResult#removedCount removedCount}. - - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.6 - */ --(void)removeTopicsWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionTopicRemovalResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h deleted file mode 100644 index 4a92cda..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h +++ /dev/null @@ -1,49 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Indicates whether the operation caused a topic to be created or if it - already existed. - - @see PTDiffusionTopicUpdateFeature - @see PTDiffusionUpdateStream - - @since 6.3 - */ -@interface PTDiffusionTopicCreationResult : PTDiffusionEnumeration - -/** - A new topic was created. - - @return Instance indicating a new topic was created. - - @since 6.3 - */ -+(instancetype)created; - -/** - A topic with the same specification already exists. - - @return Instance indicating a topic with the same specification already exists. - - @since 6.3 - */ -+(instancetype)exists; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h deleted file mode 100644 index dfcf998..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h +++ /dev/null @@ -1,62 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The definition of a topic metric collector. - - These can be configured to record metric data for a subset of all - topics, specified with a topic selector. - - @since 6.7 - */ -@interface PTDiffusionTopicMetricCollector : PTDiffusionMetricCollector - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - The topic selector. - - @since 6.7 - */ -@property(nonatomic, readonly) NSString *topicSelector; - - -/** - Indicates whether the collector groups by topic type. - - @since 6.7 - */ -@property(nonatomic, readonly) BOOL groupsByTopicType; - - -/** - @brief The number of leading parts of the topic path to group by. - - The number of leading parts of the topic pathh to group by, - or 0 if the collector does not group by path prefix. - - @since 6.8 - */ -@property(nonatomic, readonly) NSInteger groupByPathPrefixParts; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h deleted file mode 100644 index 1bda0f7..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h +++ /dev/null @@ -1,81 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicMetricCollector; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A topic metric collector builder. - - @since 6.7 - */ -@interface PTDiffusionTopicMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder - - -/** - Specifies whether the metric collector should group by topic - type. - - By default, a topic metric collector does not group by topic type. - - @param groupByTopicType true to indicate that the collector - should group by topic type - - @return the builder - - @since 6.7 - */ --(instancetype)groupByTopicType:(BOOL)groupByTopicType; - - -/** - Specified the number of leading parts of the topic path the - metric collector should use to group results. - - By default a topic metric collector does not group by the topic - path prefix. If a positive number of parts is specified, it - will enable grouping. - - @param parts the number of leading parts of the topic path to - group by; set to 0 to disable grouping by path - - @return the builder - - @since 6.8 - */ --(instancetype)groupByPathPrefixParts:(NSInteger)parts; - - -/** - @brief Create a new {@link PTDiffusionTopicMetricCollector} using the values - currently known to this builder. - - @param name the name of the {@link PTDiffusionTopicMetricCollector} - - @param topicSelector the selector pattern that specifies the topics for which - metrics are to be collected. - - @return a new {@link PTDiffusionTopicMetricCollector} with all of the - current settings of this builder. - - @since 6.7 - */ --(PTDiffusionTopicMetricCollector *) createCollectorWithName:(NSString *const)name - andTopicSelector:(NSString *const)topicSelector; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h deleted file mode 100644 index 8968a6f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h +++ /dev/null @@ -1,71 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicNotificationType; -@class PTDiffusionTopicSpecification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed topic notifications. - - This protocol defines methods to be implemented by classes wishing to receive - streamed topic notifications. - - @see PTDiffusionTopicNotificationsFeature - - @since 6.1 - */ -@protocol PTDiffusionTopicNotificationListener - -/** - Notification for an immediate descendant of a selected topic path. - This notifies the presence or absence of a descendant topic that may - subsequently be explicitly selected. - - @param stream The stream that received the update. - - @param type The type of notification. - - @param topicPath The path of the immediate descendant that is not selected. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveDescendantNotificationWithType:(PTDiffusionTopicNotificationType *)type - topicPath:(NSString *)topicPath; - -/** - Notification for a selected topic. - - @param stream The stream that received the update. - - @param type The type of notification. - - @param topicPath The path of the topic that this notification is for. - - @param specification The specification of the topic that this notification is - for. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveNotificationWithType:(PTDiffusionTopicNotificationType *)type - topicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h deleted file mode 100644 index e3b3341..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h +++ /dev/null @@ -1,69 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The registration state of the associated topic notification listener - on the server. - - Provides operations to control which topic paths the listener will receive - notifications for. - - @since 6.1 - */ -@interface PTDiffusionTopicNotificationRegistration : PTDiffusionRegistration - -/** - Request to receive notifications for all topics matched by the provided topic - selector. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - */ --(void)selectWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Request to stop receiving notifications for all topics matched by the provided - topic selector. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - */ --(void)deselectWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h deleted file mode 100644 index c2a0ced..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h +++ /dev/null @@ -1,67 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The type of topic notification received. - - @see PTDiffusionTopicNotificationListener - - @since 6.1 - */ -@interface PTDiffusionTopicNotificationType : PTDiffusionEnumeration - -/** - The topic has been added. - - @return Instance indicating a topic has been added. - - @since 6.1 - */ -+(instancetype)added; - -/** - The topic has been removed. - - @return Instance indicating a topic has been removed. - - @since 6.1 - */ -+(instancetype)removed; - -/** - The topic existed at the time of the selector registration. - - @return Instance indicating a topic existed at the time of - the selector registration. - - @since 6.1 - */ -+(instancetype)selected; - -/** - The topic is no longer selected due to the removal of a selector. - - @return Instance indicating a topic is no longer selected due to - the removal of a selector. - - @since 6.1 - */ -+(instancetype)deselected; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h deleted file mode 100644 index 91ce757..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h +++ /dev/null @@ -1,130 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStream; -@class PTDiffusionTopicNotificationRegistration; - -@protocol PTDiffusionTopicNotificationListener; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Topic Notifications feature allows a client session to receive - notifications about changes to selected topics. - - The Topic Notifications feature for a session can be obtained from the - session's `PTDiffusionSession#topicNotifications` property. - - ### Notifications - - Sessions receive notifications by implementing a - PTDiffusionTopicNotificationListener. The listener will be provided with a - PTDiffusionTopicSpecification for all topics bound to paths that match - registered selectors, and any subsequent notifications for the selected - topics on those paths. Notifications will only be emitted for paths where a - topic is bound. - - For example, with a registered selector `"?a//"`, if a topic is added at path - `a/b/c/d` with no topics bound to paths higher in the hierarchy - `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveNotificationWithType:topicPath:specification:` - will be called once with a topic path of `"a/b/c/d"`, a notification type of - PTDiffusionTopicNotificationType::added, and the topic's associated - PTDiffusionTopicSpecification. - - The nature of the notification is provided by the - PTDiffusionTopicNotificationType enum. PTDiffusionTopicNotificationType::added - and PTDiffusionTopicNotificationType::removed represent structural changes to - the topic tree; PTDiffusionTopicNotificationType::selected indicates that a - pre-existing topic has been selected by a new registered selector, and - similarly PTDiffusionTopicNotificationType::deselected indicates that a topic - is no longer selected because of changes to the set of registered selectors for - the listener. - - ### Selection and deselection - - Registered PTDiffusionTopicNotificationListener implementations will receive - notifications for all topics matching registered selections. Selection of - topics using @ref md_topic_selectors "topic selector" expressions is provided - via the PTDiffusionTopicNotificationRegistration associated for a specific - listener. - - A session can request selections at any time, even if the topics do not exist - at the server. Selections are stored on the server and any subsequently added - topics that match registered selectors will generate notifications. - - ### Immediate descendant notifications - - Listeners will be informed about the presence or absence of unselected - immediate descendants via - `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveDescendantNotificationWithType:topicPath:`. - This allows listeners to determine whether to select deeper topic paths in - order towalk the topic tree. An immediate descendant is defined as the - first bound topic on any branch below a given topic path. - - For example, for topics at `"a/b", "a/c", "a/c/d", "a/e/f/g"`, the immediate - descendants of `"a"` would be `"a/b", "a/c", "a/e/f/g"`. - - Immediate descendant notifications provide a PTDiffusionTopicNotificationType - to indicate the reason for the notification in the same manner as for - topic notifications. - - For example, with a registered selector `">a"`, if a topic is added at path - `"a/b"` then a descendant notification will be received with a topic path of - `"a/b"` and a notification type of PTDiffusionTopicNotificationType::added - If a topic was subsequently added at path `"a/b/c"`, no further notifications - will be received until - PTDiffusionTopicNotificationRegistration::selectWithTopicSelectorExpression:completionHandler: - was used to select the deeper topic path `">a/b"`. - - ### Access control - - A listener will only be notified about topics for which the session has - `PTDiffusionPathPermission#selectTopic` and `PTDiffusionPathPermission#readTopic` - permissions. - `PTDiffusionPathPermission#selectTopic` determines which selectors a listener may register; - `PTDiffusionPathPermission#readTopic` determines which selected topics the client may receive - notifications for. - - @see PTDiffusionSession - - @since 6.1 - */ -@interface PTDiffusionTopicNotificationsFeature : PTDiffusionFeature - -/** - Register a listener to receive topic notifications. - - @param listener The object which will handle the incoming notifications. It - will be sent messages asynchronously on the main dispatch queue. A weak - reference is maintained to this object. - - @param 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 the `registration` argument will point to a - registration object which can be used to manage the registration. The - completion handler will be called asynchronously on the main dispatch queue. - - @return The stream resulting from the listener registration. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - */ --(PTDiffusionStream *)addListener:(id)listener - completionHandler:(void (^)(PTDiffusionTopicNotificationRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicPermission.h deleted file mode 100644 index 336f2c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicPermission.h +++ /dev/null @@ -1,192 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Permissions protecting access-controlled operations that are evaluated - for a specific topic path. - - @see PTDiffusionGlobalPermission - - @since 6.3 - - @deprecated since 6.5. Replaced by the equivalent {@link PTDiffusionPathPermission}. - In previous releases, the path-scoped permissions were called "topic permissions". - This was a source of confusion since some of the permissions apply to message paths or - to session lock names, both of which are hierarchical but have nothing to do with topics in - the topic tree. - The term "topic permission" has been renamed "path permission" throughout the API. - Additional methods have been added to reflect this renaming. - The old methods are deprecated and will be removed in a future release. - */ - -__deprecated_msg("Will be removed in a future release.") -@interface PTDiffusionTopicPermission : PTDiffusionEnumeration - -/** - Required to receive information from a topic. - - If a session does not have read_topic permission for a topic, the topic will be - excluded from the results of subscription or fetch operations for the session, - and the topic's details cannot be retrieved by the session. - - @return Instance representing the permission to receive information - from a topic. - - @see #selectTopic - - @since 6.3 - */ -+(instancetype)readTopic; - -/** - Permission to update a topic. - - @return Instance representing the permission to update a topic. - - @since 6.3 - */ -+(instancetype)updateTopic; - -/** - Permission to add a topic or remove a topic. - - @return Instance representing the permission to add or remove - a topic. - - @since 6.3 - */ -+(instancetype)modifyTopic; - -/** - Permission to send a message to a handler registered with the server. - - @return Instance representing the permission to send a message to - a handler registered with the server. - - @since 6.3 - */ -+(instancetype)sendToMessageHandler; - -/** - Permission to send a message to a client session. - - @return Instance representing the permission to send a message to - a client session. - - @since 6.3 - */ -+(instancetype)sendToSession; - -/** - Permission to use a topic selector that selects the topic path. - - A session must have this permission for the path prefix of any topic selector - used to subscribe or fetch. - - When the subscription or fetch request completes, the resulting topics are - further filtered based on the #readTopic permission. - - A session that has #readTopic but not #selectTopic for a particular topic path - cannot subscribe directly to topics belonging to the path. However, the session - can be independently subscribed by a control session that has PTDiffusionGlobalPermission#modifySession - permission in addition to the appropriate #selectTopic permission. - - @return Instance representing the permission to use a topic selector that selects - a topic path - - @since 6.3 - */ -+(instancetype)selectTopic; - -/** - Permission to evaluate queries that return a non-current view of a time series topic. - - The #readTopic permission is required to evaluate any type of query for a time - series topic. This permission is additionally required for queries that - potentially return a non-current view of all or part of a time series. Such - queries include value range queries that specify an edit range, and all types - of edit range query. - - @return Instance representing the permission to evaluate queries that return a non-current - view of a time series topic. - - @see PTDiffusionTimeSeriesFeature - - @since 6.3 - */ -+(instancetype)queryObsoleteTimeSeriesEvents; - -/** - Permission to submit edits to time series topic events. - - The #updateTopic permission is required to update a time series topic. This - permission is additionally required to submit edits to a time series topic. - - @return Instance representing the permission to submit edits to time series - topic events. - - @see PTDiffusionTimeSeriesFeature - @see #editOwnTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editTimeSeriesEvents; - -/** - Permission to submit edits to time series topic events which have an author - which is the same as the principal of the calling session. - - This permission is a more restrictive alternative to #editTimeSeriesEvents. - - The #updateTopic permission is required to update a time series topic. This - permission is additionally required to submit edits to a time series topic - where the event author is the same as the principal of the calling session. - - @return The instance representing the permission to submit edits to time series - topic events which have an author identical to the principal of the - calling session. - - @see PTDiffusionTimeSeriesFeature - @see #editTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editOwnTimeSeriesEvents; - -/** - Permission to acquire a session lock. - - @return The instance representing the permission to acquire a session lock. - - @see PTDiffusionSessionLock - - @since 6.3 - */ -+(instancetype)acquireLock; - -/** - Permission that is unsupported by the session. - - @return The instance representing an unsupported permission by the session. - - @since 6.3 - */ -+(instancetype)unknownTopicPermission; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h deleted file mode 100644 index 90779f5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Reports the number of topics removed by a call to - {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: - removeTopicsWithTopicSelectorExpression} - - @since 6.6 - */ -@interface PTDiffusionTopicRemovalResult : NSObject - - -+(instancetype)new NS_UNAVAILABLE; - - --(instancetype)init NS_UNAVAILABLE; - -/** - The integer returned represents the number of topics removed by the - operation. This does not include any derived topics created by a - topic view which were removed as a side effect of this action. - */ -@property (nonatomic, readonly) NSUInteger removedCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicSelector.h deleted file mode 100644 index 5e1c546..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicSelector.h +++ /dev/null @@ -1,118 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A topic selector identifies one or more topics. - - Topic selector objects are only used by the local client library and are immutable. - - For more information on topic selector evaluation see the - @ref md_topic_selectors "Topic Selectors" guide. - - @see PTDiffusionMessagingFeature - @see PTDiffusionTopicsFeature - - @since 5.6 - */ -@interface PTDiffusionTopicSelector : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Return a topic selector object initialized with the given expression. - - @param expression The expression to be used for evalutating topic paths. - - @return Topic selector instance initialised with the given expression. - - @since 5.6 - */ -+(instancetype)topicSelectorWithExpression:(NSString *)expression; - -/** - The expression association with the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly) NSString* expression; - -/** - The topic path prefix from this selector pattern. - - Returns the largest fixed topic path that begins the selector expression. - For path selectors, this is the entire path. For split pattern or full pattern - selectors, this is a topic path up to, but not including, the first part of the - path that contains a regular expression. - - For selector sets, this method will return the largest prefix that is common to - all included selectors. - - If there is no common prefix, an empty string will be returned. - - @since 6.1 - */ -@property(nonatomic, readonly) NSString* pathPrefix; - -/** - Evaluate this receiver against a topic path. - - @param topicPath The topic path to evaluate against. - May be `nil` or an empty string, in which case this method returns `NO`. - - @return `YES` if the receiver selects the topicPath. - - @since 5.6 - */ --(BOOL)selectsTopicPath:(nullable NSString *)topicPath; - -/** - Compares the receiver to the given topic selector. - - @param topicSelector The topic selector object with which to compare the receiver. - - @return `YES` if the topic selector is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToTopicSelector:(nullable PTDiffusionTopicSelector *)topicSelector; - -/** - Create a selector that matches if any of the provided selectors match. - - @param selectors The selectors - - @return A selector which matches if any of selectors do. - - @since 5.9 - */ -+(instancetype)topicSelectorWithAnyOf:(NSArray*)selectors; - -/** - A convenience wrapper around `topicSelectorWithAnyOf:`. - - @param expressions The selector expressions. - - @return A selector which matches if any of `expressions` do - - @since 5.9 - */ -+(instancetype)topicSelectorWithAnyExpression:(NSArray*)expressions; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h deleted file mode 100644 index a2ee381..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h +++ /dev/null @@ -1,984 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Topic specifications provide the information required to create a topic. - - Topics can be created from a topic specification using - `[PTDiffusionTopicControlFeature addTopicWithPath:specification:completionHandler:]`. - - Topic specifications allow an application to introspect the type and - capabilities of a topic. Topic specifications are provided to - value streams and topic notification listeners. - - A topic specification has a topic type and a map of - property settings which define the behavior of the topic. A default topic - specification for a topic type can be created using - `[PTDiffusionTopicSpecification initWithType:]`. Topic specifications with - different properties can be derived from a default instance using the - `[PTdiffusionTopicSpecification initWithType:properties:]` builder method. - - ###Topic Properties - - Depending on the topic type, some properties must be included in the - specification when creating a topic and some properties have no effect. The - required and optional properties for each the topic type are set out in the - following table. Properties unsupported by the topic type are ignored. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Default when optionalString
- JSON
- Binary
-
Double
- Int64
RecordV2TimeSeriesRouting
COMPRESSIONlowOptional—OptionalOptionalOptional
CONFLATION`conflate`OptionalOptionalOptionalOptional †Optional
DONT_RETAIN_VALUE`false`OptionalOptionalOptional—— ‡
OWNEROptionalOptionalOptionalOptionalOptional
PERSISTENT`true`OptionalOptionalOptionalOptionalOptional
PRIORITY`default`OptionalOptionalOptionalOptionalOptional
PUBLISH_VALUES_ONLY`false`Optional—OptionalOptional— ‡
REMOVALOptionalOptionalOptionalOptionalOptional
SCHEMA——Optional——
TIDY_ON_UNSUBSCRIBE`false`OptionalOptionalOptionalOptionalOptional
TIME_SERIES_EVENT_VALUE_TYPE———Required—
TIME_SERIES_RETAINED_RANGE`limit 10`———Optional—
TIME_SERIES_SUBSCRIPTION_RANGEas documented———Optional—
VALIDATE_VALUES`false`OptionalOptionalOptionalOptional— ‡ -
- -
-
† -
`TIME_SERIES` topics have restricted values for the - `CONFLATION` property. They are only allowed to have the values - `off` or `unsubscribe`. -
‡ -
`ROUTING` topics (deprecated) are references to other topics, and have no value - of their own. Instead, they reflect the value of the appropriate source - topic. Observed behavior depends on the values of the - `DONT_RETAIN_VALUE`, `PUBLISH_VALUES_ONLY`, and - `VALIDATE_VALUES` properties that are set on the source topic. -
- - @since 5.9 - */ -@interface PTDiffusionTopicSpecification : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Initializer for the topic specification object with a given topic type and - an empty properties dictionary. - - @param type the topic type - - @return a topic specification object initialized with the given topic type and - an empty properties dictionary. - - @since 6.0 - */ --(instancetype)initWithType:(PTDiffusionTopicType)type; - -/** - Initializer for the topic specification object with a give topic type and - properties dictionary. - - @param type the topic type - - @param properties the topic properties dictionary - - @return topic specification object initialized with the given topic type and - properties dictionary. - - @exception NSInvalidArgumentException If properties is `nil`. - - @since 6.0 - */ --(instancetype)initWithType:(PTDiffusionTopicType)type - properties:(NSDictionary *)properties NS_DESIGNATED_INITIALIZER; - -/** - The type of topic. - - @since 5.9 - */ -@property(nonatomic, readonly) PTDiffusionTopicType type; - -/** - The topic properties. May be empty. - - @since 5.9 - */ -@property(nonatomic, readonly) NSDictionary* properties; - -/** - Compares the receiver to the given topic specification. - - @param topicSpecification The topic specification object with which to compare the receiver. - - @return `YES` if the topic specification is equal to the receiver, otherwise `NO`. - - @since 5.9 - */ --(BOOL)isEqualToTopicSpecification:(nullable PTDiffusionTopicSpecification *)topicSpecification; - -/** - Key of boolean topic property indicating whether a topic should publish only - values. - - By default, a topic that supports delta streams will publish the - difference between two values (a delta) when doing so is more efficient - than publishing the complete new value. Subscribing sessions can use a - value stream to automatically apply the delta to a - local copy of the topic value to calculate the new value. - - Setting this property to `true` disables this behavior so that deltas are never - published. Doing so is usually not recommended because it will result in more - data being transmitted, less efficient use of network resources, and increased - transmission latency. On the other hand, calculating deltas can require - significant CPU from the server or, if update streams are used, from the - updating client. The CPU cost will be higher if there are many differences - between successive values, in which case delta streams confer fewer benefits. - If successive values are unrelated to each other, consider setting this - property to `true`. Also consider setting this property to `true` if the - network capacity is high and the bandwidth savings of deltas are not required. - - @return string representing the key of boolean topic property indicating whether - a topic should publish only values. - - @since 5.9 - @see #dontRetainValuePropertyKey - */ -+(NSString *)publishValuesOnlyPropertyKey; - -/** - Key of boolean topic property indicating whether a topic should validate - inbound values. - - By default, the server does not validate received values before sending them on - to clients. Invalid or corrupt values will be stored in the topic and passed on - to clients. If this property is set to `true`, the server will perform - additional validation on values to check that it is a valid instance of the - data type, and if it is not then it will return an error to the updater and not - update the topic. - - If this value is not set (or set to something other than `true`), no server - validation of inbound values is performed. This is the recommended setting as - there is a performance overhead to validation and a client using a value - updater could not send invalid values anyway. - - @return string representing the key of boolean topic property indicating whether - a topic should validate inbound values. - - @since 5.9 - */ -+(NSString *)validateValuesPropertyKey; - -/** - Key of boolean topic property that sets the 'tidy on unsubscribe' option for a - topic. - - By default, if a session unsubscribes from a topic, it will receive any updates - for that topic that were previously queued but not sent. - - If this property is set to `true`, when a client session unsubscribes from the - topic, any updates for the topic that are still queued for the session are - removed. There is a performance overhead to using this option as the client - queue must be scanned to find topic updates to remove, however it may prove - useful for preventing unwanted data being sent to client sessions. - - @return string representing the key of boolean topic property that sets the - 'tidy on unsubscribe' option for a topic. - - @since 6.0 - */ -+(NSString *)tidyOnSubscribePropertyKey; - -/** - Key of the string topic property that specifies the event data type for a time - series topic. - - The value is the type name of a data type. - - @return string representing the key of the string topic property that specifies - the event data type for a time series topic. - - @see PTDiffusionDataType - - @since 6.0 - */ -+(NSString *)timeSeriesEventValueTypePropertyKey; - -/** - Key of the string topic property that specifies the range of events retained by - a time series topic, as a time series range expression. - - When a new event is added to the time series, older events that fall outside of - the range are discarded. - - If this property is not specified, a time series topic will retain the ten most - recent events. - - The value of this property is a time series range expression string composed of - one or more constraint clauses. Constraints are combined to provide a range of - events from the end of the time series. - -
-
limit constraint
-
A limit constraint specifies the maximum number of events from the - end of the time series.
-
last clause
-
A last constraint specifies the maximum duration of events from the - end of the time series. The duration is expressed as an integer followed - by one of the following time units: -
    -
  • `MS` – milliseconds
  • -
  • `S` – seconds;
  • -
  • `H` – hours.
  • -
-
-
- - If a range expression contains multiple constraints, the constraint that - selects the smallest range is used. - - - - - - - - - - - - - - - - - - -
Property valueMeaning
`limit 5`The five most recent events
`last 10s`All events that are no more than ten seconds older than the latest - event
`last 10s limit 5`The five most recent events that are no more than ten seconds older - than the latest event
- - Range expressions are not case sensitive: `limit 5 last 10s` is equivalent to - `LIMIT 5 LAST 10S`. - - @return string representing the key of the string topic property that specifies - the range of events retained by a time series topic, as a time series - range expression. - - @since 6.0 - */ -+(NSString *)timeSeriesRetainedRangePropertyKey; - -/** - Key of the string topic property that specifies the range of time series topic - events to send to new subscribers, as a time series range expression. - - This property value is a time series range expression, following the format - used for #timeSeriesEventValueTypePropertyKey. - - If this property is not specified, new subscribers will be sent the latest - event if delta streams are enabled and no events if delta streams are disabled. - - @return string representing the key of the string topic property that specifies - the range of time series topic events to send to new subscribers, as a - time series range expression. - - @since 6.0 - */ -+(NSString *)timeSeriesSubscriptionRangePropertyKey; - -/** - Key of the string topic property that specifies a schema which constrains topic - values. - - This property is only used by Diffusion recordV2 topics. - The property value can be generated using the - PTDiffusionRecordV2Schema#JSONData property of a schema created using a - PTDiffusionRecordV2SchemaBuilder. - - @return string representing the key of the string topic property that specifies - a schema which constrains topic values. - - @since 6.0 - */ -+(NSString *)schemaPropertyKey; - -/** - Key of boolean topic property that specifies a topic should not retain - its last value. - - By default, a topic (other than a `ROUTING`) will retain its - latest value. The latest value will be sent to new subscribers. Setting - this property to `true` disables this behavior. New subscribers - will not be sent an initial value. No value will be returned for fetch - operations that select the topic. This is useful for data streams where - the values are only transiently valid. - - Setting this property to `true` also disables delta streams, regardless of the - #publishValuesOnlyPropertyKey value. If subsequent values are likely to be - related, delta streams usually provide performance benefits (see - #publishValuesOnlyPropertyKey). Consider leaving this property set to `false` - to benefit from delta streams, even if there is no other requirement to retain - the last value. - - Bearing in mind the performance trade-offs of disabling delta streams, there - are two reasons to consider setting this property to `true`. First, it stops - the server and each subscribed client from keeping a copy of the value, - reducing their memory requirements. Second, when a topic has a high update rate - and is replicated across a cluster, it can significantly improve throughput - because the values need not be persisted to the cluster. - - Time series topics ignore this property and always retain the latest value. - - @return string representing the key of boolean topic property that specifies - a topic should not retain its last value. - - @since 6.0 - */ -+(NSString *)dontRetainValuePropertyKey; - -/** - Key of the topic property that can be used to prevent a topic from being - persisted when the server is configured to enable persistence. - - By default, a topic will be persisted if persistence is enabled at the server - and the topic type supports persistence. - - Setting to `false` will prevent the topic from being persisted. - - @return string representing the key of the topic property that can be used to - prevent a topic from being persisted when the server is configured to - enable persistence. - - @since 6.1 - */ -+(NSString *)persistentPropertyKey; - -/** - Key of the topic property that specifies a removal policy for automatic - removal of the topic (and/or other topics). - - This property is specified as an expression which defines one or more - conditions that are to be satisfied before automatic removal occurs. - - The expression takes the form: - - when [remove ""] - - At least one *condition* must be supplied. If more than one is supplied, they - must be separated by logical operators (`and` or `or`). The natural evaluation - order of the operators may be changed by surrounding with parentheses (e.g. - (*condition* `and` *condition*)). - - The `remove` clause is optional. It provides a - @ref md_topic_selectors "topic selector" expression to be evaluated by the - server, representing the topics to be removed. If a `remove` clause is - specified, the topic with the removal policy will only be removed if its path - matches the selector expression. The selector must be surrounded by either - double or single quotes. - - When many topics have the same removal policy, it is better to - set the `REMOVAL` property for one of them, using a `remove` - clause that selects all of the topics. This is more efficient because it - allows the server to avoid evaluating the same condition many times. - - The permissions that are applied at the time of removal are those defined by - the roles of the principal that created the topic at the time of creation. The - roles of that principal may therefore change before the removal with no effect, - but if the permissions given to the roles change it may have an effect upon the - final removal. - - Only one occurrence of each of the following condition types may be included - within the expression: - - - - - - - - - - - - - - - - - - - - - - -
Condition TypeFormatUsage
time aftertime after absoluteTimeRemoval should occur after a specified absolute time. Absolute time may be - specified as a number of milliseconds since the epoch (00:00:00 on 1 January - 1970) **or** as a quoted date and time formatted in - RFC_1123 - date time format. Either single or double quotes may be used.
subscriptions less than[local] subscriptions < n for forPeriod [after afterPeriod]Removal should occur when the topic has had less than the specified number - (*n*) of subscriptions for a given period (*forPeriod*) of time. Optionally, an - initial period (*afterPeriod*) may be specified by which to delay the initial - checking of this condition. See below for period formats. -

The optional local keyword restricts evaluation to only count - subscriptions from sessions belonging to the local server or cluster, - ignoring subscriptions from sessions belonging to downstream remote servers that - host fanout replicas of the topic.

no updates forno updates for forPeriod [after afterPeriod]Removal should occur when the topic has had no updates for a given period - (*forPeriod*) of time. Optionally, an initial period (*afterPeriod*) may be - specified by which to delay the initial checking of this condition. See below - for period formats.
- - Multiple occurrences of the following condition types may be included - within the expression: - - - - - - - - - - - - - - - - - -
Condition TypeFormatUsage
no session hasno [local] session has "criteria" [for forPeriod] [after afterPeriod]Removal should occur when no sessions satisfy certain *criteria*. - Optionally, the criteria can be required to be satisfied for a period of time - (*forPeriod*). Optionally, an initial period (*afterPeriod*) can be specified - to delay the initial check of the criteria. Session selection criteria are - specified as defined in @ref md_session_filters "session filters" and must be - surrounded by single or double quotes. See below for period formats. -

The optional local keyword restricts evaluation to sessions - belonging to the local server or cluster, ignoring sessions belonging to - downstream remote servers that host fanout replicas of the topic.

this session closesThis is a shorthand form of `no local session has` that may be used to - indicate that the topic is to be removed when the session that created it - closes.
- - Time periods are specified as a number followed (with no intermediate space) by - a single letter representing the time unit. The time unit may be `s` (seconds), - `m` (minutes), `h` (hours) or `d` (days). For example, 10 minutes would be - specified as `10m`. - - If quotes or backslashes (`\`) are required within quoted values such as - selectors or session criteria then they may be escaped by preceding with `\`. - The convenience method `PTDiffusionEscape` is provided to escape such - characters in a value. - - The expression is validated only by the server and therefore if an invalid - expression is specified it will be reported asynchronously as an error. - - ### Examples - - when time after 1518780068112 - - The topic will be removed when the date and time indicated by the specified - number of milliseconds since the epoch has passed. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" - - The topic will be removed when the specified date and time has passed. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" remove "*alpha/beta//" - - The topic alpha/beta and all topics subordinate to it will be removed when the - specified date and time has passed. - - when subscriptions < 1 for 20m - - The topic will be removed when it has had no subscriptions for a continuous - period of 20 minutes. - - when subscriptions < 2 for 20m after 1h - - The topic will be removed when it has had less than 2 subscriptions for a - continuous period of 20 minutes after one hour has passed since its creation. - - when no updates for 3h - - The topic will be removed when it has had no updates for a continuous period of - 3 hours. - - when no updates for 15m after 1d - - The topic will be removed when it has had no updates for a continuous period of - 15 minutes after one day has passed since its creation. - - when this session closes - - The topic will be removed when the session that created it is closed. - - when no session has '$Principal is "Alice"' - - The topic will be removed when there is no session with the principal 'Alice'. - - when no session has '$Principal is "Alice"' for 10m - - The topic will be removed when there have been no sessions with the principal - 'Alice' for a continuous period of 10 minutes. - - when no session has 'Department is "Accounts"' for 30m after 2h - - The topic will be removed when there have been no sessions from the Accounts - department for a continuous period of 30 minutes after 2 hours have passed - since its creation. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 1 for 30m - - The topic will be removed when the specified date and time has passed and the - topic has had no subscriptions for a continuous period of 30 minutes after that - time. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 2 for 10m after 1h - - The topic will be removed when the specified date and time has passed and the - topic has had less than 2 subscriptions for a continuous period of 10 minutes - after that time plus one hour. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" or subscriptions < 2 for 10m after 1h - - The topic will be removed when the specified date and time has passed or the - topic has had less than 2 subscriptions for a continuous period of 10 minutes - after one hour from its creation. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" and (subscriptions < 2 for 10m after 1h or no updates for 20m) - - The topic will be removed when the specified date and time has passed and - either the topic has had less than 2 subscriptions for a continuous period of - 10 minutes after that time plus one hour or it has had no updates for a - continuous period of 20 minutes. Note that the parentheses are significant here - as without them the topic would be removed if it had had no updates for 20 - minutes regardless of the time and subscriptions clause. - - ### Notes and restrictions on use - - The `after` time periods refer to the period since the topic was created or - restored from persistence store after a server is restarted. They are designed - as a 'grace' period after the topic comes into existence before the related - condition starts to be evaluated. When not specified the conditions start to be - evaluated as soon as the topic is created or restored. - - The server will evaluate conditions on a periodic basis (every few seconds) so - the exact removal time will not be precise for low periodic granularity. - - The meaning of the `for` period in a `no session has` condition is subtly - different from its use in other conditions. It does not guarantee that there - has been no session satisfying the condition at some point between evaluations, - only that when evaluated the given period of time has passed since it was last - evaluated and found to have no matching sessions. - - Subscriptions is the number of subscriptions to a topic, including those that - occur through routing topics. When monitoring across a cluster the - `subscriptions less than` condition is first checked on the server that owns - the topic and if satisfied there then each cluster member is queried to check - if the condition has also been satisfied there. The topic will only be removed - if the total number of subscriptions across the cluster is less than that - specified in the condition. - - Automatic topic removal is supported for a topic that is replicated - across the local cluster, and for a topic with with fanout replicas on - downstream remote servers. A `subscriptions less than` condition will be evaluated - against the total number of subscriptions across the cluster and on all - fanout replicas on downstream remote servers. A `no session has` - condition will consider all sessions hosted across the cluster and all - sessions hosted by downstream remote servers that have a fanout replica - of the topic. The `local` keyword can be used to restrict evaluation to - the local cluster, ignoring fanout replicas. - - @return string representing the key of the topic property that specifies a removal policy for automatic - removal of the topic (and/or other topics). - - @since 6.1 - */ -+(NSString *)removalPropertyKey; - -/** - Key of the topic property that specifies the conflation policy of the - topic. The policy specifies how the server manages queued topic updates. - Conflation is applied individually to each session queue. - - Conflation is the process of merging or discarding topic updates queued - for a session to reduce the server memory footprint and network data. The - server will conflate sessions that have a large number of queued messages - to meet configured queue size targets. The sessions with the largest - queues are typically slow consumers or have been disconnected – both will - benefit from conflation. This property allows conflation behavior to be - tuned on a topic-by-topic basis. - - The supported policies are: -
    -
  • `off` -
  • `conflate` -
  • `unsubscribe` -
  • `always` -
- - The default policy used when the property is not specified and the - topic type is not time series is `conflate`. The default policy - used when the property is not specified and the topic type is time - series is `off`. - - The policy `off` disables conflation for the topic. This policy - disables all conflation for the topic, so topic updates will never be - merged or discarded. - - The policy `conflate` automatically conflates topic updates when - back pressure is detected by the server. - - The policy `unsubscribe` automatically unsubscribes the topic when - back pressure is detected by the server. The unsubscription is not - persisted to the cluster. If a session fails over to a different server - it will be resubscribed to the topic. - - The policy `always` automatically conflates topic updates as they - are queued for the session. This is an eager policy that ensures only the - latest update is queued for the topic, minimising the server memory and - network bandwidth used by the session. - - The `conflate` and `unsubscribe` policies are applied when - the server detects back pressure for a session. The server configuration - places limits on the data queued for each session. If these limits are - breached, the server will conflate the session queue to attempt to reduce - its size. If the session queue still exceeds the limits after conflation, - the session will be terminated. - - Conflation can be disabled on a session-by-session basis. If conflation is disabled for a - session the policy will not be applied to topic updates queued for the - session but will be for other sessions that have conflation enabled. - - The policies `conflate` and `always` are not supported for - time series topics as they would cause missing events. Attempts to enable - these policies with time series topics will cause the creation of the - topic to fail, reporting that the specification is invalid. - - @return string representing the key of the topic property that describes - the conflation policy of the topic. - - @since 6.1 - */ -+(NSString *)conflationPropertyKey; - -/** - Key of the topic property that allows the creator of a topic to extend - `PTDiffusionPathPermission#readTopic`, `PTDiffusionPathPermission#modifyTopic` - and `PTDiffusionPathPermission#updateTopic` permissions to a specific - principal, in addition to the permissions granted by the authorisation rules in - the security store. - - A session that has authenticated using the principal can update and remove the - topic, so the principal can be considered the topic owner. To fetch or - subscribe to the topic, the principal must also be granted the `SELECT_TOPIC` - permission by the security store rules. - - This may be used in the following cases: - - 1. A session creates a topic and makes its own principal the owner. - 2. A session creates a topic and makes another principal the owner. - - The format of the property value is: - - $Principal is "" - - where *name* is the name of the principal. Single quotes may be used instead of - double quotes and special characters must be escaped. The convenience method - `PTDiffusionEscape` is provided to escape such characters in a value. - - The purpose of this property is to allow a client to create topics on behalf of - other users. This can be used in conjunction with #removalPropertyKey so that - such topics are removed when there are no longer any sessions for the named - principal. - - For example: - - PTDiffusionTopicSpecification *const specification = - [[PTDiffusionTopicSpecification alloc] initWithType:topicType - properties:@ { - [PTDiffusionTopicSpecification ownerPropertyKey] : - @"$Principal is 'myPrincipal'", - [PTDiffusionTopicSpecification removalPropertyKey] : - @"when no session has '$Principal is \"myPrincipal\"' for 5s" - }]; - - @return string representing the key of the topic property that allows to - extend permissions to a specific principal - - @since 6.1 - */ -+(NSString *)ownerPropertyKey; - -/** - Key of the topic property that allows the compression policy to be set - on a per-topic basis. - - Compression reduces the bandwidth required to broadcast topic updates to - subscribed sessions, at the cost of increased server CPU. - - Changes to a topic's value are published to each subscribed session as a - sequence of topic messages. A topic message can carry the latest value or - the difference between the latest value and the previous value (a delta). - The compression policy determines if and how published topic messages - are compressed. Topic messages are not exposed through the client API; - the client library handles decompression and decodes deltas - automatically, passing reconstructed values to the application. - - The compression policy for a topic is specified by setting this property - to one of several values: - - - `off` - - `low` - - `medium` - - `high` - - The policies are listed in the order of increasing compression and - increasing CPU cost. `off` disables compression completely for the - topic and requires no additional CPU; `high` compresses the topic - messages to the smallest number of bytes, but has the highest CPU cost. - Generally some compression is beneficial, so the default value for this - property is `low`. - - Prior to version 6.4, only two values were allowed: `true` - (equivalent to `medium`, and the previous default policy) and - `false` (equivalent to `off`). These values are still - supported. - - This property is only one factor that determines whether a topic message - will be compressed. Other factors include: - - - Compression must be enabled in the server configuration. - - - The client library must support the server's compression - scheme. In this release, the server supports zlib - compression, and also allows compression to be disabled on a - per-connector basis. From 6.4, all client libraries are - capable of zlib compression. A JavaScript client may or may - not support zlib compression, depending on whether the zlib - library can be loaded. The zlib library is packaged - separately to reduce the download size of the core library. - - @return string representing the key of of the topic property that allows - the compression policy to be set on a per-topic basis. - - @since 6.2 - */ -+(NSString *)compressionPropertyKey; - -/** - Key of the topic property that specifies the topic delivery priority. - - The supported delivery priorities are: - - **low** - - **default** - - **high** - - The delivery priority affects the order of topic updates sent to a - subscribed client session. When there are multiple topic updates for - topics with different priorities in a session's outbound queue, updates - for "high" priority topics will be delivered first, followed by - updates for "default" priority topics, followed by updates for - "low" priority topics. Topic subscription and unsubscription - notifications are also delivered according to the topic delivery - priority. - - Using different delivery priorities is most beneficial when there is a - large backlog of queued updates to deliver to a client session. On - lightly loaded systems, updates typically remain in the outbound queue - for a few milliseconds and so there is a lower chance of topic updates - being reordered based on their priority. The backlog will be larger if - the topic update rate is higher; the server or the client are more - heavily loaded; the client session becomes temporarily disconnected; or - if there is poor network connectivity between the server and the client. - - Messages from the server to the client that are not topic updates, for - example ping requests and responses, are queued with the - "default" delivery priority. - - @return string representing the key of the topic property that specifies - the topic delivery priority. - - @since 6.4 - */ -+(NSString *)priorityPropertyKey; - -/** - Constant string representing the value to be used for boolean properties to - specify `true`. - - @return string representing the boolean value of `true`. - - @since 5.9 - */ -+(NSString *)truePropertyValue; - -/** - Constant string representing the value to be used for boolean properties to - specify `false`. - - @return string representing the boolean value of `false`. - - @since 6.1 - */ -+(NSString *)falsePropertyValue; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h deleted file mode 100644 index ade6b7f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h +++ /dev/null @@ -1,37 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A reference to a handler registered for a particular topic path. - - A topic tree registration is provided once a handler with a server-side - presence has been registered. - - @since 5.7 - */ -@interface PTDiffusionTopicTreeRegistration : PTDiffusionRegistration - -/** - The path registered. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* path; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h deleted file mode 100644 index a7a2d47..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTopicTreeRegistration; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Common protocol for delegates that establish a server side control presence for the - client session at a particular branch of the topic tree. - - @since 5.7 - */ -@protocol PTDiffusionTopicTreeRegistrationDelegate - -/** - Called if the handler is closed. - - No further calls will be made to this handler. - - @param registration The topic tree registration for which this delegate applies. - - @since 5.7 - */ --(void)diffusionTopicTreeRegistrationDidClose:(PTDiffusionTopicTreeRegistration *)registration; - -/** - Called in the event of a contextual error relating to this handler. - - No further calls will be made to this handler. - - @param registration The topic tree registration for which this delegate applies. - - @param error The failure reason. - - @since 5.7 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didFailWithError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicType.h deleted file mode 100644 index 3573b01..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicType.h +++ /dev/null @@ -1,234 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -/** - @file PTDiffusionTopicType.h - - The topic type determines the type of the data values a topic publishes to - subscribers. - - ### Source Topics - - Most topics are source topics. The characteristics of each type of source - topic are summarized in the following table. - - | Topic type | State | Data type | - | -------------------------------- | ----------------------------- | ------------------------------------------------- | - | #PTDiffusionTopicType_String | Single scalar value. | String. | - | #PTDiffusionTopicType_Int64 | Single scalar value. | 64-bit integer. | - | #PTDiffusionTopicType_Double | Single scalar value. | Double precision floating point number. | - | #PTDiffusionTopicType_Binary | Single scalar value. | Arbitrary binary data. | - | #PTDiffusionTopicType_RecordV2 | Single composite value. | #PTDiffusionRecordV2 – Diffusion-specific data type. A list of records, each composed of field values, with an optional schema. | - | #PTDiffusionTopicType_JSON | Single composite value. | #PTDiffusionJSON, backed by CBOR-format binary. | - | #PTDiffusionTopicType_TimeSeries | Append-only log of events. | #PTDiffusionTimeSeriesEvent containing a value of a \link #PTDiffusionDataTypes well-known data type\endlink. | - - - ###Routing Topics (deprecated) - - A PTDiffusionTopicType_Routing topic can have a different source topic for each - subscription. - - Routing topics republish values from source topics. The data type is - inherited from the source topic. - - Routing topics are deprecated in favor of {@link PTDiffusionSessionTreesFeature Session Trees}. - - @see PTDiffusionTopicSpecification - - @since 5.6 - */ -typedef NS_ENUM(NSUInteger, PTDiffusionTopicType) { - /** - Routing Topic. - - A topic that can reference different source topics for different sessions. - - Each subscription to a routing topic is routed to a source topic. Updates - to the source topic are routed back to the subscriber and appear to come - from the routing topic. - - The result is that a session may subscribe to a topic which is in reality - supported by another topic and the mapping of the routing topic to the - actual topic can be different for each session. - - As an example, you may wish for all sessions to simply subscribe to a - topic called "Prices" but depending upon the client type the actual topic - could differ (Prices/Discount, Prices/Standard etc). - - An instance of this topic may map any number of sessions to any number of - different source topics. - - From the point of view of a session subscribing to such a topic, a - routing topic appears to be a normal topic but it has no state of its own - and cannot be updated. - - The mapping of sessions to source topics is performed by a control client - session using the Subscription Control feature. When a session subscribes - to the routing topic the control client is requested to provide the topic - that the client is to be subscribed to. If there is no control client - available to handle subscriptions at the time a session subscribed, the - session will not be subscribed to the topic. - - Alternatively, the routing can be determined by a user-written Java class - (deployed on the server) which will be invoked to define the mapping of - the topic to another data topic when a session subscribes. - - When a source topic is removed that is mapped to from a routing topic then - any session that were mapped to that source topic will be unsubscribed from - the routing topic. - - @since 5.7 - - @deprecated since 6.7 Routing Topics are deprecated. The more powerful - {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. - */ - PTDiffusionTopicType_Routing __deprecated_enum_msg("Use PTDiffusionSessionTreesFeature instead") = 12, - - /** - Topic that stores and publishes binary values. Based on the - PTDiffusionBinary data type. - - Supports delta-streams. - - @since 5.7 - */ - PTDiffusionTopicType_Binary = 13, - - /** - Topic that stores and publishes JSON (JavaScript Object Notation) values. - Based on the PTDiffusionJSON data type. - - Supports delta-streams. - - @since 5.7 - */ - PTDiffusionTopicType_JSON = 14, - - /** - Topic that stores and publishes IEEE 754 double-precision floating point - numbers. Based on the double data type. - - Supports `nil` values. - - The topic does not support delta-streams — only complete values are - transmitted. - - @since 6.0 - */ - PTDiffusionTopicType_Double = 15, - - /** - Topic that stores and publishes 64-bit integer values. Based on the int64 - data type. - - Supports `nil` values. - - The topic does not support delta-streams — only complete values are - transmitted. - - @since 6.0 - */ - PTDiffusionTopicType_Int64 = 16, - - /** - Topic that stores and publishes string values. Based on the string data - type. - - Supports `nil` values. - - Supports delta-streams. - - @since 6.0 - */ - PTDiffusionTopicType_String = 17, - - /** - A time series is a sequence of events. Each event contains a value and has - server-assigned metadata comprised of a sequence number, timestamp, and - author. - - A time series topic allows sessions to access a time series that is - maintained by the server. A time series topic has an associated event data - type that determines the type of value associated with each event. - - ### Retained range - - The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property - configures the range of historic events retained by a time series topic. - If the property is not specified, a time series topic will retain the ten - most recent events. - - ### Subscription range - - The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property - configures a time series topic to send a range of historic events from the - end of the time series to new subscribers. This is a convenient way to - synchronize new subscribers without requiring the use of a range query. - - By default, new subscribers will be sent the latest event if delta streams - are enabled and no events if delta streams are disabled. - - ### Mandatory properties - - The [PTDiffusionTopicSpecification timeSeriesEventValueType] property must - be provided when creating a time series topic. - - @since 6.0 - */ - PTDiffusionTopicType_TimeSeries = 18, - - /** - Topic that stores and publishes data in the form of records and fields. - - Supports delta-streams. - - @since 6.0 - */ - PTDiffusionTopicType_RecordV2 = 19, - - /** - A topic type that is unsupported by the session. - - @since 6.1 - */ - PTDiffusionTopicType_Unknown = 20, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - Returns a localized string representation of the given topic type. - - @param topicType The topic type for which a description is to be returned. - - @return localized string representation of the given topic type. - - @since 5.7 - */ -NSString* PTDiffusionTopicTypeToString(PTDiffusionTopicType topicType); - -/** - Returns the name of this topic type constant, exactly as declared in its - enum declaration in the Diffusion API for Java. - - @param topicType The topic type for which the name is to be returned. - - @return name of given topic type constant, exactly as declared in its - enum declaration. - - @since 5.9 - */ -NSString* PTDiffusionTopicTypeToName(PTDiffusionTopicType topicType); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h deleted file mode 100644 index 0ed9a4c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h +++ /dev/null @@ -1,108 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -/** - @file PTDiffusionTopicUnsubscriptionReason.h - - The reason that an unsubscription occurred. - - @since 5.6 - */ -typedef NS_ENUM(NSUInteger, PTDiffusionTopicUnsubscriptionReason) { - /** - Unsubscribed by the subscribing client. - - @since 5.6 - */ - PTDiffusionTopicUnsubscriptionReason_Requested = 0, - - /** - The unsubscription was requested either by another client or by the server. - - @since 5.6 - */ - PTDiffusionTopicUnsubscriptionReason_Control = 1, - - /** - The unsubscription occurred because the topic was removed. - - @since 5.6 - */ - PTDiffusionTopicUnsubscriptionReason_Removal = 2, - - /** - The unsubscription occurred because the session is no longer authorized - to access the topic. - - @since 5.9 - */ - PTDiffusionTopicUnsubscriptionReason_Authorization = 3, - - /** - A reason that is unsupported by the session. - - @since 6.1 - */ - PTDiffusionTopicUnsubscriptionReason_Unknown = 4, - - /** - The server has a significant backlog of messages f`or the session, and - the topic specification has the - {@link PTDiffusionTopicSpecification#conflationPropertyKey - conflation topic property} set to "unsubscribe". The session can - resubscribe to the topic. The unsubscription is not persisted to the - cluster. If the session fails over to a different server it will be - resubscribed to the topic. - */ - PTDiffusionTopicUnsubscriptionReason_BackPressure = 5, - - /** - The unsubscription occurred because branch mapping rules changed. - - @since 6.7 - @see PTDiffusionSessionTrees - */ - PTDiffusionTopicUnsubscriptionReason_BranchMappings = 6, - - /** - The server has re-subscribed this session to the topic. Existing streams - are unsubscribed because the topic type and other attributes may have changed. - - This can happen if a set of servers is configured to use session replication, - and a session connected to one server reconnects ("fails over") to a - different server. - - @since 5.9 - */ - PTDiffusionTopicUnsubscriptionReason_SubscriptionRefresh = 0xfffffff0, - - /** - A fallback stream has been unsubscribed due to the addition of a stream - that selects the topic. - - @since 5.9 - */ - PTDiffusionTopicUnsubscriptionReason_StreamChange = 0xfffffff1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - Returns a string representation of a topic unsubscription reason. - - @since 5.6 - */ -NSString *PTDiffusionTopicUnsubscriptionReasonToString(PTDiffusionTopicUnsubscriptionReason reason); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h deleted file mode 100644 index 2d6a694..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h +++ /dev/null @@ -1,214 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Topic Update feature provides a client session with the ability to - update topics. - - Topics can be set to new values using stateless set operations or by using an - update stream. Both mechanisms ensure that new values are applied safely to - appropriate topics. - - ### Update streams - - An update stream is created for a specific topic. The type of the topic must - match the type of values passed to the update stream. An update stream can be - used to send any number of updates. It sends a sequence of updates for a - specific topic to the server. If supported by the data type, updates will be - sent to the server as a stream of binary deltas. - - Update streams have additional ways of failing compared to stateless set - operations but when used repeatedly have lower overheads. This is because - update streams maintain a small amount of state that reduces the overhead of - operations but can become invalid for example, if the topic is deleted, or - some other session updates the topic value. - - By default, update streams use a form of optimistic locking. An update stream - can update its topic incrementally as long as nothing else updates the topic. - If the topic is updated independently (for example, by another session, or by - the current session via set or a different update stream), then the next update - performed by the update stream will complete with an 'invalid update stream' - error. - - Applications can chose to use collaborative locking to coordinate exclusive - access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and - use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. - The application is responsible for designing a locking scheme which determines - which lock is required to access a particular topic, and for ensuring that all - parts of the application that update the topic follow this scheme. Lock - constraints and an application locking scheme can also ensure a sequence of set - operations has exclusive access to the topic. - - ### Constraints - - Constraints can be applied to the setting of a value and creation of an update - stream. Constraints describe a condition that must be satisfied for the - operation to succeed. The constraints are evaluated on the server. The - available constraints are: - - - an active session lock - - the absence of a topic - - the current value of the topic being updated - - a part of the current value of the topic being updated - - ### Removing values - - When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or - PTDiffusionTopicType_Double topic is set to `nil`, the topic will be updated to - have no value. If a previous value was present subscribers will receive a - notification that the new value is `nil`. New subscribers will not receive a - value notification. - - ### Adding topics - - When setting a value using either stateless operations or update streams it is - possible to add a topic if one is not present. This is done using the 'and and - set' methods or providing a topic specification when creating the update - stream. If a topic exists these methods will update the existing topic. - - ### Time series topics - - Time series topics have a specific update protocol and are not supported by - this feature. Use PTDiffusionTimeSeriesFeature to update time series topics. - - ### Access control - - To update a topic a session needs `UPDATE_TOPIC` permission for the topic path. - To create a topic a session needs `MODIFY_TOPIC` permission for the topic path. - Requests that combine adding a topic and setting the value, such as those sent - by the 'add and set' methods, require both permissions. - - ### Accessing the feature - - The Topic Update feature for a session can be obtained from the session's - `topicUpdate` property. - - This feature is also extended by PTDiffusionTopicsFeature. This means it is - possible to use the methods described here through that feature. - - @see PTDiffusionSession - - @since 6.3 - */ - -@interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature - -/** - Applies a JSON Patch to a JSON topic. - -

- The `patch` argument should be formatted according to the JSON - Patch standard (RFC 6902). - -

- Patches are a sequence of JSON Patch operations contained in an array. - They are applied as an atomic update to the previous value if the - resulting update is successfully calculated. The following patch will - check the value at a specific key and update if the expected value is - correct: -

- - `[{"op":"test", "path":"/price", "value" : 22}, - {"op":"add", "path":"/price", "value": 23}]` - -

- The available operations are: - -

    -
  • - Add: `{"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ]}` -
  • - Remove: `{"op": "remove", "path": "/a/b/c"}` -
  • - Replace: `{"op": "replace", "path": "/a/b/c", "value": 43}` -
  • - Move: `{"op": "move", "from": "/a/b/c", "path": "/a/b/d"}` -
  • - Copy: `{"op": "copy", "from": "/a/b/c", "path": "/a/b/e"}` -
  • - Test: `{"op": "test", "path": "/a/b/c", "value": "foo"}` -
- -

- The test operation checks that the CBOR representation of the value of a - topic is identical to the value provided in the patch after converting it - to CBOR. If the value is represented differently as CBOR, commonly due to - different key ordering, then the patch will return the index of the - failed operation . e.g the values - `{"foo": "bar", "count": 43}` and - `{"count": 43, "foo": "bar"}` are unequal despite semantic equality - due to the differences in a byte for byte comparison. - - @param jsonPatch the JSON Patch - - @param path the path of the topic to patch - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @see - RFC 6902: JavaScript Object Notation (JSON) Patch - - @since 6.4 - - */ --(void)applyJsonPatch:(NSString *)jsonPatch - toPath:(NSString *)path - completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; - - -/** - - Applies a JSON Patch to a JSON topic. - -

- Takes a constraint that must be satisfied for the update to be - applied. -

- In other respects this method works in the same way as - applyJsonPatch:toPath:completionHandler: - - - @param jsonPatch the JSON Patch - - @param path the path of the topic to patch - - @param constraint the constraint that must be satisfied for the patch to - be applied - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @see - RFC 6902: JavaScript Object Notation (JSON) Patch - - @since 6.4 -*/ --(void)applyJsonPatch:(NSString *)jsonPatch - toPath:(NSString *)path - withConstraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicView.h deleted file mode 100644 index 3f35cf8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicView.h +++ /dev/null @@ -1,64 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Description of a topic view that has been created. - - @see PTDiffusionTopicViewsFeature - - @since 6.3 - */ -@interface PTDiffusionTopicView : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The name of the topic view. If the name is empty, the operation will fail. - - @since 6.3 - */ -@property(nonatomic, readonly) NSString * name; - -/** - The specification of the topic view. - - @since 6.3 - */ -@property(nonatomic, readonly) NSString * specification; - -/** - The roles used by the topic view when evaluating permissions. - - @since 6.3 - */ -@property(nonatomic, readonly) NSArray * roles; - -/** - Compares the receiver to the given topic view. - - @param topicView The topic view object with which to compare the receiver. - - @return `YES` if it matches the receiver, otherwise `NO`. - - @since 6.3 - */ --(BOOL)isEqualToTopicView:(nullable PTDiffusionTopicView *)topicView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h deleted file mode 100644 index d07441a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h +++ /dev/null @@ -1,1469 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2022 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicView; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client session to manage topic views. - - A topic view maps one part of a server's topic tree to another. It - dynamically creates a set of reference topics from a set of - source topics, based on a declarative topic view - specification. The capabilities of topic views range from simple - mirroring of topics within the topic tree to advanced capabilities including - publication of partial values, expanding a single topic value into many - topics, changing topic values, inserting values from other topics, throttling - the rate of publication, and applying a fixed delay to the publication. - - A topic view can also map topics from another server (in a different - cluster). This capability is referred to as 'remote topic views'. The view - can specify the server that the source topics are hosted on in terms - of a remote server (see {@link PTDiffusionRemoteServersFeature} for details of how to - create and maintain remote servers). - - Each reference topic has a single source topic and has the same topic type as - its source topic. Reference topics are read-only (they cannot be updated), - nor can they be created or removed directly. Otherwise, they behave just like - standard topics. A client session can subscribe to a reference topic, and can - fetch the reference topic's current value if it has one. - - The source topics of a topic view are defined by a topic selector. One or - more reference topics are created for each source topic, according to the - topic view. If a source topic is removed, reference topics that are derived - from it will automatically be removed. If a topic is added that matches the - source topic selector of a topic view, corresponding reference topics will be - created. Removing a topic view will remove all of its reference topics. - - - ## Topic view specifications - - The following is a simple topic view specification that mirrors all topics - below the path `a` to reference topics below the path `b`. - -

- map ?a// to b/
- 
- - A topic view with this specification will map a source topic at the path - `a/x/y/z` to a reference topic at the path `b/x/y/z`. - The specification is simple, so the reference topic will exactly mirror the - source topic. - - A topic view specification comprises three main parts: - -
    -
  • The mapping part which specifies the source topics to map from - and the mappings to target reference topics. -
  • Optional transformations which transform the topic value in some - way. -
  • Optional options which specify other changes that the view may - apply. -
- - Mapping comprises: -
    -
  • The source topic clause identifying the source topics that the - view can apply to. -
  • The optional from clause which may identify a remote server that - hosts the source topics. -
  • The path mapping clause which determines how reference topic - paths are derived from the source topic paths, and when expanding to more - than one reference topic, from where the values are obtained. -
- - Transformations can be: -
    -
  • patch transformation(s) specifying that a JSON patch is applied - to the reference topic value. -
  • process transformations that allow conditional processing and/or - calculations to be applied to the reference topic value. -
  • insert transformation(s) specifying that values from other - topics are inserted into the reference topic value. -
- - Options can be: -
    -
  • The topic property mapping clause determines how reference topic - properties are derived from source topic properties. -
  • The value mapping clause determines how reference topic values - are derived from source topic or expanded values. -
  • The throttle clause constrains the rate at which each reference - topic is updated when its source topic is updated. -
  • The delay by clause causes a change to a view's source topic to - be delayed by a fixed time before it is reflected in reference topics. -
  • The separator clause can define a replacement path separator for - values extracted using the scalar or expand directives. -
  • The type clause can specify that the reference topic that is - created is of a different {@link PTDiffusionTopicType} from the selected source topic. -
- - ### Mapping - #### Source topic clause - - The source topic clause begins with the `map` keyword and is followed - by a topic selector. These topic selectors follow the same parsing rules as - other topic selectors. - - When evaluating a topic view, all topics in the topic tree that match the - source topic selector are considered (excluding - {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing Routing} topics). - However, if a view specification uses some feature that can - only be applied to JSON topics then only JSON topics will be selected. - - Reference topics are valid source topics. In particular, chaining of topic - views is supported; that is, a reference topic created by one topic view can - be the source topic of another topic view. Additionally, a reference topic - can be the source topic of a routing topic subscription. - - - #### From clause - - The `from` clause optionally follows the source topic clause. It begins with - the `from` keyword and is followed by a remote server name. The name - refers to a remote server created using the {@link PTDiffusionRemoteServersFeature} - feature. - - The presence of the clause indicates that the source topics will be selected - from the specified server and not from the local server. - - Further details regarding the processing of remote topic views are given - below. - - - #### Path mapping clause - - The paths of reference topics are derived from the source topic according to - the path mapping clause. The path mapping allows the source topic path and - the value of the source topic to determine the path of the reference topic. - In addition the path mapping can include expand directives which - allow objects and arrays in JSON source topic values to be expanded to - produce many reference topics. - - A path mapping clause begins with the `to` keyword and is followed by a - path mapping template. A path mapping template is a topic path with embedded - directives. Directives are evaluated when creating the topic - reference and substituted into the topic path. Directives are delimited by - angle brackets (`<`, `>`) and consist of the name of the - directive and a list of parameters. The parameter list is comma-separated and - surrounded by parentheses (`(`, `)`). - - The following path mapping directives are supported: - - #### Source path directives - - Source path directives extract a portion of the source path and are - parameterized by the index of the start part of the source path and the - number of parts to include. The number of parts parameter is optional – if it - is missing, the selection extends to the end of the source path. The syntax - is start, number)>, or - start)> when the number of parts parameter - is omitted. - - For example, given the source path `a/b/c/d`, the source path directive - `` is mapped to the reference topic path `b/c`, and - the source path directive `` is mapped to the reference topic - path `c/d`. - - #### Source value ("scalar") directives - - Source value directives are only applied to - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} - source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} - source topics with a JSON event type; if the path - mapping contains a source value directive, topics with other topic types matching - the source topic selector are ignored. Source value directives use the keyword - `scalar` and are parameterized by a single - JSON pointer that extracts - a scalar value from the source (or current) value. A scalar value is a - string, a number, `true`, `false`, or `null`, that is, - anything other than an array or an object. If the JSON pointer does not refer - to a scalar value in the source (or current) value, no reference topic will - be created. This includes cases where the JSON pointer refers to an array or - an object), or when no part of the source value is selected. - - Deriving the reference topic paths from part of the source topic value - effectively creates a secondary index on the value. For source value - directives to work efficiently, the selected scalar values should be - relatively stable. If an update to the source topic changes the selected - scalar value, the corresponding reference topic will be removed and a new - reference topic will be created. - - For example, given a source value of - -
- {
-     "account" : "1234",
-     "balance" : { "amount" : 12.57, "currency" : "USD" }
- }
- 
- - and the source value directive - `currency/`, the - reference topic path will be `currency/USD/account/1234`. - - If the extracted value is a string, it is copied literally to the reference - topic path. A value that contains path separators (`/`) will create a - reference topic path with more levels than the path mapping template. Use the - separator directive to replace path separator with an alternative string. - - An extracted value of `null` will be copied to the reference topic path - as the string `"null"`. - - #### Expand value directives - - Expand value directives are only applied to - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} - source topics; if the path mapping contains an expand value directive, - non-JSON topics matching the source topic selector are ignored. - - Expand value directives use the keyword `expand` and are parameterized - by one or two JSON - pointers. - - The first pointer indicates the element within the value to be expanded, and - if omitted, the value is expanded from the root. Expansion of a source topic - indicates that every direct child of the element pointed to by the expand - pointer will be used to create a new reference topic (or provide input to - later expand or scalar directives). For example `` would - expand every child item in the source value and `` - would expand every child of the `account` value in the source value. - The specified value could be an object, an array or even a scalar value, but - a scalar value would expand to only a single new value. - - The optional second parameter of the expand directive specifies a pointer to - a scalar value within the expanded value which will be used to derive the - path fragment of the reference topic path. If the second pointer is not - specified or no scalar value is found for the pointer, the path fragment is - taken from the key (if the child value is an object) or the index (if the - child value is an array). Scalar child values will expand to a reference - topic but will not add anything to the generated path. For example - `expand(,/name)>` would expand from the root of the source value and - each child value path fragment would be obtained from the scalar value with - the key `name`. - - So if a source topic had a value of - -
- {
- "values": [1, 5, 7]
- }
- 
- - a path mapping of `value` would expand the value to - the following reference topics:- -

- path `value0` with a value of `1`
- path `value1` with a value of `5`
- path `value2` with a value of `7`
-

- Expand directives can be nested (i.e. there can be more than one expand - directive in a path mapping). In this case a second expand directive will use - the value from the previous expand as its source (root) value and not the - value of the source topic. This also applies to scalar directives that follow - an expand directive. -

- If expansion causes more than one mapping to the same topic path, only the - first encountered will be created and updated. -

- Expanding source topic values effectively creates secondary indices on the - value. For expanded value directives to work efficiently, the value selected - for expansion should be relatively stable in terms of the children it - contains. If an update to the source topic changes the children of the - expanded value, then corresponding reference topics will be removed and - created. Updates should generally be limited to changing values within the - expanded values. - - ### Transformations - - Transformations are specified after the mapping and before any options. - Transformations can only be applied to - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} topics. - - Transformations are applied to the value extracted from the source topic in - the order specified. There can be any number of transformations interspersed - with one another and the value from one will be that which is input to the - next. The only restrictions is that all insert transformations must - occur at the end, after any others. - - A transformation is applied to the current value within a view processing - chain, so if a transformation occurs after an expand then it will be applied - to each expanded value. - - #### Process transformations - - Process transformations may be used to apply conditional processing to a - value (optionally determining whether a reference topic is created) and/or - change the value in some way (for example, by applying some calculation to a - field within the value). - - The format of a process transformation is: -

- process {statement}
- 
- - Where the statement can be: -
    -
  • Operations(s).
    - One or more operations separated by ';'. -
  • A conditional statement.
    - Comprising one or more conditions with operations to perform if they are - satisfied. -
- - For example, the following topic view specification could be used to write a - field into the value of the reference topic: - -
- map ?a// to b/ process {set(/Name, 'John')};
- 
- - The following example shows a simple conditional statement which would only - generate reference topics if the value of field /Price was - greater than 50: - -
- map ?a// to b/ process {if '/Price gt 50' continue};
- 
- - And the following shows a more complex statement which would set a field - according to the value of the input field /Price: - -
- map ?a// to b/ process {if '/Price lt 50' set(/Tier, 1) elseif '/Price gt 50' set(/Tier, 2)};
- 
- -
-
- Process operations -
- -
- The following operations are supported: - - - - - - - - - - - - - - - - - - - - - - -
- Operation - - Description -
- set(pointer, value) - - Sets the field indicated by the JSON pointer to an absolute value. - If the field does not exist it will be created. - The value can be an integer (e.g. 123), a String (e.g. 'XYZ'), - or a boolean (e.g. true or false). - - For example: - -
set(/Name, 'John')
- - If a hierarchic pointer is specified, the parent object or array must exist. -
- set(pointer, calc calculation) - - Sets the field indicated by the JSON pointer to a value which is the - result of the specified calculation. If the field does not exist it - will be created. The calculation can include fields within the input value. - The calculation is specified as a quoted string. See below for a detailed - description of calculations. - - For example: - -
set(/DoubleValue, calc '/Value * 2')
- - If a hierarchic pointer is specified, the parent object or array must exist. -
- remove(pointer) - - Removes the JSON item at the specified pointer. - Unlike JSON patch, if the item does not exist the operation does not fail. -
- continue - - This is a special operation that indicates that the topic view evaluation - should continue with the value as it is. This is only for use with conditional - statements as the default behaviour of a conditional statement is not to - proceed if no condition is satisfied. -
- - Operations can be chained by separating them with a ';' as shown in the example below: - -
-         set(/Amount, calc '/Value * /Number'); remove(/Value); remove(/Number)
-         
- - In this case the operations are all performed on the original value, creating - a chain of deltas which are only applied to the original value at the end. If - the 'set' operation fails no reference topic would be generated, however, - processing will continue if the fields specified in the 'remove's are not - present. -
- -
- Process calculations -
- -
- A calculation may be specified as the value of a set operation. A - calculation is a simple arithmetic calculation upon integer fields. If - applied to a non integer field the evaluation will not proceed. Floating - point calculations are not supported. - - Arithmetic operators supported are `+`, `-`, `*` and `/`. - - Examples of calculations are: - -
-         set(/Value, calc '/Value * 2')
-         set(/Result, calc '/Value / 2')
-         set(/Bonus, calc '/Salary + 1000')
-         set(/Bonus, calc '/Salary + 1000 + /Age * 10')
-         
- - Standard operator precedence is applied, so in the last example above we have - `(/Salary + 1000 + (/Age * 10))` not `((/Salary + 1000 + /Age) * 10)`. - Brackets may be used to override this. -
- -
- Process conditional statements -
- -
- A conditional statement is made up of an if clause, optionally - followed by one or more elseif clauses and an optional final else - clause. - - The if clause takes the form: - -
-         if 
-         
- - Where the condition is a quoted string as described in detail below - and the operation(s) is as described previously. If the condition is - satisfied, the operations are applied to the value and the process is complete. - If the condition is not satisfied, processing moves on to any - elseif or else clauses that follow, but if there are none, the - topic view evaluation does not proceed and no reference topic is created. - - An elseif (else if) clause takes the form: - -
-            elseif condition operation(s)
-         
- - If the condition is satisfied, the operations are applied to the value and - the process is complete. If the condition is not satisfied, processing moves - on to any elseif or else clauses that follow, but if there are - none, the topic view evaluation does not proceed and no reference topic is - created. Note that elseif cab be abbreviated to elsf. - - An else clause takes the form: - -
-            else operation(s)
-         
- - And will only be reached if no previous if or elseif conditions - were satisfied. If reached then the operations are applied to the value and - the topic view evaluation proceeds. The continue operation may be used - to proceed with an unchanged value. -
- -
- Process conditions -
- -
- A condition is of the form: - -
-         pointer operator [constant/pointer]
-         
- - Where pointer is a JSON pointer, operator is a relational - operator and constant is a string, integer, or a boolean value. - - For example: - -
-         /Age > 40
-         /Name = 'Bill'
-         /Age > /RetirementAge
-         /Manager eq true
-         
- - Operators allowed are: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorVariantDescriptionSupported JSON types
=eqEqualsAll
>gtGreater thanInteger only
<ltLess thanInteger only
!=neNot equalsAll
>=geGreater than or equalInteger only
<=leLess than or equalInteger only
- - Compound conditions are supported by means of boolean operators: - `|` or `or` - `&` or `and` - - For example: - -
-         /Age = 50 ot /Age > 80
-         /Age gt 50 & /Department eq 'Accounts'
-         
- - Normal boolean precedence applies but brackets can be used to control - precedence. For example: - -
-         (/Age > 50 or /Department eq 'Accounts`) and /Band > 3
-         
- - Boolean 'not' is also allowed: - -
-         not (/Age < 65 or Retired eq false)
-         
-
-
- - #### Patch Transformations - - Patch transformations indicate that a JSON patch is to applied to the - value. - - The format of a patch clause is: - -
- patch 'patch string'
- 
- - The patch string should be formatted according to the JSON Patch standard - (see RFC 6902: JavaScript - Object Notation (JSON) Patch). - - Patches are a sequence of JSON Patch operations contained in an array. They - are applied as an atomic update to the previous value if the resulting update - is successfully calculated. The following patch will check the value at a - specific key and update if the expected value is correct: - -
- [{"op": "test", "path": "/price", "value": 22},
-  {"op": "add", "path": "/price", "value": 23}]
- 
- - The available operations are: -
    -
  • Add: {"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } -
  • Remove: {"op": "remove", "path": "/a/b/c" } -
  • Replace: {"op": "replace", "path": "/a/b/c", "value": 43 } -
  • Move: {"op": "move", "from": "/a/b/c", "path": "/a/b/d" } -
  • Copy: {"op": "copy", "from": "/a/b/c", "path": "/a/b/e" } -
  • Test: {"op": "test", "path": "/a/b/c", "value": "foo" } -
- - The test operation checks that the CBOR representation of the value of a - topic is identical to the value provided in the patch after converting it to - CBOR. If the value is represented differently as CBOR, commonly due to - different key ordering, then the patch will return the index of the failed - operation. e.g the values {"foo": "bar", "count": 43} and - {"count": 43, "foo": "bar"} are unequal despite semantic equality - due to the differences in a byte for byte comparison. - - The following patch clause would add the 'price' field and remove the 'name' - field from an input JSON object. - -
- patch '[{"op": "add", "path": "/price", "value": 22},
-         {"op": "remove", "path": "/name"}]'
- 
- - Patches can only be applied to JSON arrays or objects and if they fail to - apply, no resulting reference topic will be created by the view. If an update - patch fails, any previously created reference topic would be removed. - - - #### Insert transformations - - Insert transformations are used to insert a value from another topic into the - current value. - - The name of the topic to insert from can be specified in a similar way to the - path mapping in that constants, path directives, and scalar directives (but - not expand directives) may be used. - - The value from the insertion topic (if found) is inserted into the 'current' - value at a specified key position. The current value may be the source topic - value, the value output from expand directives (in which case the insertion - applies to each value), or the value from a previous transformation. - Insertion topics may be type {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_String String}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 Int64}, - or {@link PTDiffusionTopicType#PTDiffusionTopicType_Double Double}. - - If, when evaluating a topic view, the insertion topic is not found (or the - specified key within it is not found), or it is of an unsupported topic type, - an optional default value may be inserted, but if no default is specified - then no insertion takes place and the value is passed to the derived - reference topic unchanged. - - The values of the insertion topics are only taken at the point when the - source topic is evaluated against the topic view (i.e. when the source topic - is updated). Changes to the value of the insertion topic that occur in the - interim are not applied to the derived reference topics. - - The format of an insert transformation is - -
- insert path [key fromKey] at insertionKey
- [default defaultValue]
- 
- - The path is specified in exactly the same way as for the path mapping - clause, except it may not contain expand directives. path directives - operate on the path of the source topic, whereas scalar directives - operate on the 'current' value as defined previously. - - key is optional and can specify a fromKey which is a JSON - pointer indicating the data within the insertion topic that is to be - inserted. If no key is specified then the whole of the insertion topic value - is inserted. - - at specifies the insertionKey which is a JSON pointer - indicating where to insert the insertion topic value. If a value already - exists at the specified key then it is replaced otherwise it is inserted. - Insertion can only occur if the parent of the key exists in the value and is - of a compatible type. Array pointers may only be used to replace existing - entries or append one greater than the last entry. The special pointer value - /- may be used to append to the end of an existing array. - - default is optional and may be used to specify a string - defaultValue to be inserted if the insertion topic does not exist, it - is of an unsupported topic type, or the specified key within it could not be - found. - - The following insert transformation would cause the whole value of the topic - named AnyTopic to be inserted into the current value at key /T, assuming that - the current value is an object. - -
- insert AnyTopic at /T
- 
- - The following insert transformation would cause the whole value of the topic - named AnyTopic to be inserted into the current value at key /T/MyKey, - assuming that an object with the key T exists in the current value. - -
- insert AnyTopic at /T/MyKey
- 
- - The following insert transformation would cause the whole value of the topic - named AnyTopic to be appended to the array at the key T in the current value. - -
- insert AnyTopic at /T/-
- 
- - The following insert transformation would cause the value at the key name - within the topic named AnyTopic to be appended to the array at the key T in - the current value. - -
- insert AnyTopic key /name at /T/-
- 
- - In the above examples no insertion would take place if the insertion value - was not found, but a default value can be specified to insert into the - current value in this case. - -
- insert AnyTopic at /T/- default "unknown"
- 
- - The path of the topic to insert from can be built from parts of the source - topic path and/or scalar values within the current value. For example: - -
- insert AC// at /T
- 
- - ### Options - - Options are specified after the mapping and any transformations. Any number - of options may be specified but any particular option may only be specified - once. - - #### Topic property mapping - - The {@link PTDiffusionTopicSpecification topic specification} of a reference topic is - derived from the topic specification of the source topics. A reference topic - has the same topic type as its source topic. - - The topic properties of a reference topic are derived from the source topic. - Some topic properties can be tuned using the topic property mapping option. - The following table describes the behavior for each topic property. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Source topic propertyReference topic specification defaultCan be set by topic property mapping?Notes
`compressionPropertyKey`Copied from source topic specificationYes
`conflationPropertyKey`Copied from source topic specificationYes
`dontRetainValuePropertyKey`Copied from source topic specificationYes
`ownerPropertyKey`Not setNo
`persistentPropertyKey`Not setNoReference topics are not persisted. Topic views are persisted, so a - reference topic will be recreated on server restart if its source is - persistent.
`priorityPropertyKey`Copied from source topic specificationYes
`publishValuesOnlyPropertyKey`Copied from source topic specificationYes
`removalPropertyKey`Not setNoReference topics cannot be removed directly.
`schemaPropertyKey`Copied from source topic specificationNoA recordV2 reference topic has the same - schema as its source topic.
`tidyOnSubscribePropertyKey`Copied from source topic specificationYes
`timeSeriesEventValueTypePropertyKey`Copied from source topic specificationNoA time series reference topic has the same - value type as its source topic.
`timeSeriesRetainedRangePropertyKey`Copied from source topic specificationYes, with restrictionsA topic property mapping cannot increase the time series retained range - by overriding the `TIME_SERIES_RETAINED_RANGE` property. The retained - range of a reference time series topic will be constrained to be no greater - than that of its source topic.
`timeSeriesSubscriptionRangePropertyKey`Copied from source topic specificationYes
`validateValuesPropertyKey`Not setNoA reference topic reflects updates to its source topic. It cannot reject - updates.
- - A topic property option begins with the keywords `with properties` and - consists of a comma-separated list of topic property keys and values, each - separated by a colon. For example, the following topic view specification - maps all topics below the path `a` to reference topics below the - path `b`, and disables both conflation and compression for the - reference topics. - -
- map ?a// to b/ with properties CONFLATION:off, COMPRESSION:false
- 
- - #### Topic value option - - By default, a reference topic's value is a copy of the source topic value, or - part of the source value produced by an expand path mapping directive and/or - modified by transformations. For {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} source topics with a JSON event - type, the value option can be applied to extract part of the resulting value - (the latest value in the case of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries time series} topics). - - A topic value option begins with the keyword `as` and is followed by a - value directive. A value directive is delimited by angle brackets (`<`, - `>`), and consists of the `value` keywords and a single JSON - pointer parameter. The JSON pointer selects the part of the current value to - copy. - - For example, given a current value of: - -
- {
-     "account" : "1234",
-     "balance" : { "amount" : 12.57, "currency" : "USD" }
- }
- 
- - and the value option `as `, the reference topic value - will be: - -
- {
-     "amount" : 12.57,
-     "currency" : "USD"
- }
- 
- - Value mappings that follow expand directives and/or transformations apply to - the current derived value and not the source topic value. - - Topic value mappings only alter the reference topic value; only the path - mapping determines whether a reference topic should exist. If the topic value - mapping's JSON pointer fails to select anything from the source topic value, - the reference topic will have the JSON value `null`. - - Topic value mappings are often used with path value mappings to avoid repeating - information in the path and the value. For example: - -
- map ?accounts// to balances/ as 
- 
- - #### Throttle options - - The throttle option can be used to constrain the rate at which a reference - topic is updated when its source topic is updated. The primary application of - a throttle option is to restrict the number of updates sent to reference - topic subscribers, reducing network utilization or the processing each - subscriber must do. Throttling also restricts the rate at which client - sessions can observe changes to reference topic values using the fetch API. - - The throttle option has the form - throttle to X updates every period, where - X is a positive integer, and period is a positive integer - followed by a time unit which is one of `seconds`, - `minutes`, or `hours`. - - For example, the following topic view specification maps all topics below the - path `a` to reference topics below the path `b`, but - updates the value of each reference topic at most twice every five seconds: - -
- map ?a// to b/ throttle to 2 updates every 5 seconds
- 
- - To improve readability, the throttle option allows `1 update` as - an alternative to `1 updates`, and `every second` as an - alternative to `every 1 seconds` (and so on, for other time - units). For example, the following topic view specification maps all topics - below the path `a` to reference topics below the path - `b`, but updates the value of each reference topic at most once - every hour: - -
- map ?a// to b/ throttle to 1 update every minute
- 
- - The throttle option is only applied when a source topic is updated more - frequently than the configured rate. If a source topic is updated less - frequently, updates are passed on unconstrained. If the rate is exceeded, a - reference topic will not be updated again until the configured period has - expired. At this time, the reference topic will be updated based on the - source topic updates that happened in the interim, and a single value will be - published. Thus, the throttle option provides topic-scoped - conflation. - - The throttle option is ignored for time series topics because time series - updates do not support efficient conflation. Updates to source time series - topics are passed on immediately to the corresponding reference topics, - regardless of any throttle clause. - - #### Delay option - - The delay option causes a change to a view's source topic to be delayed by a - fixed time before it is reflected in reference topics. Topic additions, - updates, and removals are all delayed. Delays can range from one second to - many days​. - - Such a publication delay is a useful way to devalue topic data so it can be - given away to non-paying users​. - - The delay option has the form delay by duration, where - duration is a positive integer followed by a time unit which is one - of seconds, minutes, or hours. - - For example, the following topic view specification maps all topics below the - path a to reference topics below the path b, but - changes to a source topic are delayed by five minutes before they are - reflected in the corresponding reference topic. - -
- map ?a// to b/ delay by 5 minutes
- 
- - Views with the delay option specified initially create reference topics in an - unpublished state. The topics are published once the delay time has expired. - A topic in the unpublished state prevents a lower priority topic view from - creating a reference topic with the same path. Sessions with the rights to - read the source topic can browse unpublished topics using the - {@link PTDiffusionFetchRequest#withUnpublishedDelayedTopics withUnpublishedDelayedTopics} fetch request option. - - #### Separator option - - Views can use the scalar and expand directives in path mappings to extract - text from the source value. By default, any `/` characters in the text - are interpreted as path separators and will introduce extra levels in - reference topic paths. If this is undesirable, the separator option can be - used to replace any `/` characters produced by the scalar and expand - directives with a constant string. The replacement can contain path - separators but must have no empty path segments (`//`). - - Here is an example replacing all path separators with an alternate character: - -
- map ?a/path/ to b/ separator '\%'
- 
- - If the value at `/x/y` in the source topic was `foo/bar`, this would cause the - reference topic to be created at /b/foo\%bar instead of - /b/foo/bar - - #### Preserve topics option - - The default behavior for a topic view is that only the reference topics that - can be derived from the current value of the source topic are maintained. - This applies to views using directives that derive the path of the reference - topic(s) from a value within the source topic (e.g. scalar or expand). For - example if a view uses a scalar directive to determine the path of the - reference topic and the source topic is updated such that the selected scalar - value changes then the previously created reference topic will be removed and - a new one created. Similarly an expand directive may create many reference - topics from the source value but if the source is updated then only those - reference topics that still have a corresponding value within the source - value will be updated (or new ones added if not in the previous value), - whilst others will be removed. - - There are situations where an application may not want reference topics to be - removed because of source value changes. In such cases the 'preserve topics' - option may be used to indicate that all reference topics created by a view - should be retained (and updated by later updates that apply to it) until - either the source topic or the creating view are removed. - - For example: -
- map ?a/path/ to b/ preserve topics
- 
- - #### Topic type option - - The 'type' option can be used to specify the {@link PTDiffusionTopicType} of the target - reference topic. If the current source value of type indicated by the source - topic's type can be converted to the target type, a reference topic of the - specified type will be created. - - For example: -
- map ?a/ to b/ type STRING
- 
- - The specified type must be one of the supported target types - {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} or - {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}, - case insensitive. - - The following table describes the supported conversions from the source topic - type (the left column) to the supported target types. The number in brackets - indicates a note at the foot of the table describing exactly how the - conversion is processed. Where there is no number, no conversion is necessary - and the derived source value is simply mapped to the target reference topic - as if the type options was not specified. Where there is no entry for the - source topic type in the left column, no conversion is supported and topics - of unsupported types will not be processed by the topic view. An x - indicates that the conversion is not supported. - - In all cases the value being processed will be the current value as derived - from other mappings with the topic view (e.g. `expand`) which is not - necessarily the value of the source topic. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Source topic{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}
{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}(1)(1)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}(4)(5)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}(4)(6)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}(7)(7)(7)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}(8)(8)(8)(8)(9)
{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}xxxx(9)
- - Conversion notes: -
    -
  1. {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} - to number conversions will only occur if - the value of the string can be converted to the target number type. If the - string cannot be converted then no reference topic will be created. -
  2. Primitive types to {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} - will result in a JSON topic containing just the scalar value. -
  3. Conversions to {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} - will result in a time series topic with an event type matching the source topic. - Every update to the source topic will result in a new value being appended to the - reference time series topic. It is not possible to convert to a time series - topic with a different event type from the source topic. -
  4. Conversions from number types to - {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} will result in a - simple string representation of the number in the reference topic value. -
  5. {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} to - {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} - conversions perform a simple conversion. For example, `123` becomes `123.0`. -
  6. {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} to - {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} - conversions perform rounding to the nearest integer value. For example, `12.51` - becomes `13`. -
  7. {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} to primitive - type conversions only occur if the JSON value is a scalar which can be read - as a string and converted to the target type. Currently, only string and - integer scalar values can be read as - a string (i.e. not doubles). The string representation of the value will be - converted in the same way as specified for - {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} to other - primitive types. If the JSON value is a structure or cannot be converted - then no conversion takes place and no reference topic will be created. -
  8. The conversion of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} - to other types follows the same rules as for conversion from the source - topic type that matches the source time series topic's event value type. - So if the time series event type is `double` then the conversion rules from - source topic type {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} - to the target type will apply. Each value appended to the source time series - topic will result in an update to the reference topic. If a failure to convert - occurs at any point then the reference topic would be removed and only recreated - if a value is appended that can be converted. -
  9. {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY} to - {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}, - and vice-versa is supported in the same way as for other time series conversions. -
- - ### Escaping and quoting special characters - - Each part of a topic view expression has characters with special - significance. Source topic clauses and path mapping clauses are delimited by - white space. Directives in path and topic property mapping clauses are - delimited by the `<` and `>` characters, and each directive - parameter is terminated by `,` or `)`. Topic property mapping - clauses are delimited by white space, and the `:` and `,` - characters. - - Sometimes a topic view must refer to or generate topics with paths that - containing special characters, or use a JSON pointer containing special - characters. The escape sequence `\x` can be used to literally insert - any character `x`, with a one exception: `\/` cannot be used in - path fragments since the path delimiter `/` is always significant. - - Here is an example topic view expression containing escape sequences. It maps - the topic path `a topic` a reference topic with the path - `another topic`. - -
- map a\ topic to another\ topic
- 
- - Here is an example with a source value directive that uses the JSON pointer - `/x()/y` to extract the target path from the source value. The - `)` character in the JSON pointer must be escaped so it is not treated - as the end of the parameter list. - -
- map ?a// to 
- 
- - To insert `\`, the escape sequence `\\` must be used. - - There is no need to escape white space in JSON pointers directive parameters. - However, white space is significant. For example, the following expressions - have different topic value mapping clauses since the JSON pointer in the - second expression is `"/x "`; that is, it has a trailing space: - -
- map a to b as 
- map a to b as 
- 
- - Instead of using escape sequences, white space characters can be included in - source topic clauses and path mapping clauses using quotes. A clause is - quoted by wrapping it in single quote (`'`) or double quote (`"`) - characters. For example: - -
- map "a topic" to "another topic"
- 
- - Within a quoted clause, quotes of the same type must be escaped: - -
- map 'alice\'s topic' to 'bob\'s topic'
- 
- - For consistency, the values in topic property mapping clauses can be escaped - or quoted. However, there is no need to do so because none of the valid - values for the mappable properties contain special characters. - - ## Dealing with topic path conflicts - - Reference topics have a lower priority than normal topics created through the - API, including replicas of normal topics created by topic replication or - fan-out. A reference topic will only be created if no topic or reference topic - is already bound to its derived topic path. - - Topic views have a precedence based on order of creation. If two topic views - define mappings the same topic path, the earliest-created topic view will - create a reference topic. If a topic view is updated, it retains its original - precedence. - - ## Remote topic views - - A remote topic view is one that specifies another server as the location of - the source topics using the from clause as shown in the example - below: - -
- map ?a// from server1 to b/
- 
- - The server name `server1` in this example refers to the name of a - remote server created. - - In this case, upon establishing a successful connection with the remote - server indicated the topic view will create reference topics locally based - upon the topics selected by the topic view's selector at the remote server. - It is important to note that the selector only refers to topics that - match it at the remote server and not on the local server and there is no - reason why there could not be a source topic at the remote server that has - the same path as an entirely different topic on the local server. - - More than one topic view can specify the same remote server. - - A remote server only makes a physical connection when it is in use, therefore - the first topic view that specifies a remote server will cause it to - establish a connection. Similarly, if the last topic view that uses a remote - server is removed then the connection will be closed. - - It is not necessary for the named remote server definition to exist before - creating the topic view, as if it does not then the topic view will simply - remain dormant until the remote server is created and a successful connection - to the server specified in its URL is established. Similarly, if a remote - server that is in use by remote topic views is removed then all of the - reference topics created by the topic views will be removed and the topic - views will become dormant until the named remote server is created again or - the views are changed to name a different remote server. - - If a remote topic view selects a - {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing routing} topic at - the remote server then local mappings will only be performed if the routing - topic mapping at the remote server is able to establish a mapping for the - remote server connection. The mapping will be done as if from the resolved - routing topic. - - The rules of precedence for remote topic views are the same as for other topic - views. If the remote server for a remote topic view does not exist or does - not have an established connection then the remote topic view is not evaluated - (i.e. it is as if the source topics for the view did not exist), but if the - remote server later connects then the view will be evaluated and rules of - precedence will determine whether reference topic will replace those created - by earlier views. - - ## Topic view persistence and replication - - Reference topics are neither replicated nor persisted. They are created and - removed based on their source topics. However, topic views are replicated and - persisted. A server that restarts will restore topic views during recovery. - Each topic view will then create reference topics based on the source topics - that have been recovered. - - The server records all changes to topic views in a persistent store. Topic - views are restored if the server is started. - - If a server belongs to a cluster, topic views (and remote servers) will be - replicated to each server in the cluster. Topic views are evaluated locally - within a server. Replicated topic views that select non-replicated source - topics can create different reference topics on each server in the cluster. - When remote topic views are in use, each server in the cluster will make a - connection to the specified remote server and will separately manage their - remote topic views. - - A view with a delay clause uses temporary storage to record delayed events. - If there is a high volume of updates, temporary per-server disk files will be - used to save server memory​. The storage is per-server, and does not survive - server restart. When a server is started, no data will be published by a view - with a delay clause until the delay time has expired. - - ## Access control - - To list the topic views a session needs {@link PTDiffusionGlobalPermission#readTopicViews readTopicViews} - permission. - To create or remove a topic view a session needs - {@link PTDiffusionGlobalPermission#modifyTopicViews modifyTopicViews} - permission, {@link PTDiffusionPathPermission#selectTopic selectTopic} permission for the prefix of - the source topic selector and {@link PTDiffusionPathPermission#modifyTopic modifyTopic} permission - for the prefix of the path mapping. - - ## Accessing the feature - - The Topic Views feature for a session can be obtained from the session's - {@link PTDiffusionSession#topicViews topicViews} property. - - @see PTDiffusionSession - - @since 6.3 - */ -@interface PTDiffusionTopicViewsFeature : PTDiffusionFeature - -/** - Create a new named topic view. - - If a view with the same name already exists the new view will update the - existing view. - - @param name The name of the view. - - @param specification The specification of the view using the DSL. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param view the created topic view if the operation was successful. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void)createTopicViewWithName:(NSString *)name - specification:(NSString *)specification - completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; - -/** - List all the topic views that have been created. - - @param 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 `views` will contain a list of views sorted by their - creation order. The completion handler will be called asynchronously on the - main dispatch queue. - - @param views the topic views that have been created if the operation was successful. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(void)listTopicViewsWithCompletionHandler:(void (^)(NSArray * _Nullable views, NSError * _Nullable error))completionHandler; - -/** - Remove a named topic view if it exists. - - If the named view does not exist then the operation is considered successful - and the completion handler is called accordingly. - - @param name The name of the view. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void)removeTopicViewWithName:(NSString *)name - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - - -/** - Get a named Topic View. - - @param name the name of the view. - - @param 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 `view` will contain the named view if it exists. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.8 - */ --(void)getTopicViewWithName:(NSString *)name - completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h deleted file mode 100644 index a4d769f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h +++ /dev/null @@ -1,490 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionFetchRequest; -@class PTDiffusionStream; -@class PTDiffusionTopicSelector; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Topics feature provides a client session with the capability to receive streamed - topic updates and/or fetch the state of topics. - - This feature allows a client session to subscribe to topics to receive - streamed topic updates, fetch the state of topics and/or update topics with - new values. - - Specifically, the feature provides the ability to: -
    -
  • Subscribe to topics and specify streams to receive updates; -
  • Fetch the current state of topics (even if not subscribed); -
  • By extending the topic update feature, update topics with new values; -
  • By extending the topic views feature, manage topic views. -
- - ###Subscription and unsubscription - - A session can issue requests to subscribe to topics at any time, even if the - topics do not exist at the server. Each subscription request provides a - topic selector that is evaluated by the server to - select matching topics. The session will be subscribed to any topics that - match the selector unless they are already subscribed, or the session has - insufficient permission. The subscription request is also retained at the - server and the session will be automatically subscribed to newly created - topics that match the selector (unless a subsequent unsubscription cancels - the request). - - Sessions receive notifications from topics that they are subscribed to via - subscription streams (see below). When a session is subscribed to a - topic, all matching streams will first receive a subscription notification - that provides details about the topic. If the server has a value for the - topic, the value will be delivered to the streams before any other - notifications. - - A session can unsubscribe from topics at any time. This is also specified - using a topic selector. On unsubscription, matching streams are notified via - the `#PTDiffusionTopicUnsubscriptionReason` notification. This notification will give the - reason for unsubscription (for example, by request of the session, request of - the server, or topic removal). - - Subscriptions and unsubscriptions can occur for reasons other than requests - from the session. A session can be subscribed to or unsubscribed from a topic - by another session using the `PTDiffusionSubscriptionControlFeature`. The removal - of a topic also automatically causes unsubscription for subscribed sessions. - - Subscription requests are subject to authorization checks. The session must - have `PTDiffusionPathPermission#selectTopic` permission for the - topic selector used to subscribe. Matching topics will be further filtered to - those for which the session has `PTDiffusionPathPermission#readTopic` - permission. - - ###Subscription streams - - A session can listen to subscription events and updates for a selection of - topics by adding one or more streams. A stream is registered using a topic - selector which specifies the topics that the stream applies to. When an - update is received for a topic then it will be routed to every stream that - matches both the topic selector and the stream's value type. If more than one - stream matches, all will receive the update; the order in which they are - notified is not defined. - - A stream can be added several times for different selectors. If the same - stream is registered for - several selectors that match an event, the stream will only be notified of - the event once. The mapping of topic selectors to streams is maintained - locally in the client process. - - It is also possible to add one or more fallback streams which will - receive updates that do not match any stream registered with a selector. This - is useful for default processing or simply to catch unprocessed updates. A - fallback stream can be added using `PTDiffusionTopicsFeature#addFallbackStream:error:`. - Zero, one, or more fallback streams may be assigned. If - no fallback stream is specified, any updates that are not routed to any other - stream will simply be discarded. - - If the session is already subscribed to a topic when a matching stream is - added, the stream will immediately receive a subscription notification. For - most topic types, the latest value is locally cached and will be provided to - the stream following the subscription notification. - - A stream will receive a `PTDiffusionStreamDelegate#diffusionDidCloseStream:` - callback when unregistered and a `PTDiffusionStreamDelegate#diffusionStream:didFailWithError:` - callback if the session is closed. - - ###Value streams - - A `PTDiffusionValueStream` receives values for matching topics as and - when updates are received from the server. Delta updates received from the - server are automatically applied to locally cached values so that the stream - always receives full values for each update. - - Value streams are typed to a specified value class and only updates for - compatible topics will be routed to the stream. The following table shows how - the value class maps to compatible topic types that will be routed to the - stream: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value ClassCompatible Topic Types
JSONJSON STRING - INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING - INT64 DOUBLE - BINARY RECORD_V2
RecordV2RECORD_V2
- - Value stream implementations can be added using - `PTDiffusionTopicsFeature#addStream:withSelector:error`. - - A value stream can be added to received updates from time - series topics. The following table shows how the value class specified - when adding the stream maps to the event value class of time series topics - that will be routed to the stream: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Event Value ClassTime Series Event Value Class
JSONJSON STRING - INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING - INT64 DOUBLE - BINARY RECORD_V2
RecordV2RECORD_V2
- - ###Fetch - - A session can issue a request to fetch details of a topic or topics (subject - to authorization) at any time. The topics required are specified using a - topic selector. - - The results of a fetch will return the topic path and type of each selected - topic. The results may also optionally return the topic values and/or - properties. - - A new request can be created using `PTDiffusionTopicsFeature.fetchRequest` and modified to - specify additional requirements of the fetch operation. The request is issued - to the server using the `PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler:]` - method on the request. This will return the results via a `completionHandler`. - - ###Access control - - A session must have `PTDiffusionPathPermission.selectTopic` - permission for the path prefix of the topic selector used to - subscribe or fetch. - The topics that result from a subscription or fetch request are further - filtered using the `PTDiffusionPathPermission.readTopic` permission. - - No access control restrictions are applied to unsubscription. - - ###Accessing the feature - - This feature can be obtained from a `PTDiffusionSession` as follows: - -
-    PTDiffusionTopicsFeature *topics = session.topics;
- 
- - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionTopicsFeature : PTDiffusionTopicUpdateFeature - -/** - Request subscription to topics. - - The session will become subscribed to each existing topic matching - the selector unless the session is already subscribed to the topic, - or the session does not have `READ_TOPIC` permission for the topic - path. For each topic to which the session becomes subscribed, a - subscription notification and initial value (if any) will be - delivered to registered value streams before the completion handler - is called. - - The subscription request is also retained at the server and the session - will be automatically subscribed to newly created topics that match the - selector (unless a subsequent unsubscription cancels the request). - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 5.6 - */ --(void)subscribeWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Request unsubscription from topics. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 5.6 - */ --(void)unsubscribeFromTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - When a matching update is received from the server for a topic, it will be - passed on to all value streams that have been added with matching selectors. - If no value stream is registered with a matching selector, the fallback value - streams that have been registered using this method will be called instead. - - Zero, one, or many fallback value streams can be set. - If there is no fallback value stream, updates that match no other will be - discarded. - - @param stream Handler of value stream events not handled by an explicitly - registered topic selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if the supplied `stream` argument - is `nil`. - - @since 5.9 - - @deprecated since 6.5 Use `addFallBackStream:error:` - */ --(void)addFallbackStream:(PTDiffusionValueStream *)stream -__deprecated_msg("Will be removed in a future release."); - -/** - When a matching update is received from the server for a topic, it will be - passed on to all value streams that have been added with matching selectors. - If no value stream is registered with a matching selector, the fallback value - streams that have been registered using this method will be called instead. - - Zero, one, or many fallback value streams can be set. - If there is no fallback value stream, updates that match no other will be - discarded. - - @param stream Handler of value stream events not handled by an explicitly - registered topic selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param error May be 'nil'. Is supplied then will contain reason on failure. - - @return YES if stream was successfully added - - @exception NSInvalidArgumentException Raised if the supplied `stream` argument - is `nil`. - - @since 6.5 - */ --(BOOL)addFallbackStream:(PTDiffusionValueStream *)stream - error:(NSError **)error; - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector. - - When a value update is received from the server, it will be passed to all - streams that have been added with matching selectors. - If there is more than one match, the order in which the streams are called is - not defined. - If there is no matching stream, the fallback stream(s) will be called instead. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 5.9 - - @deprecated since 6.5 Use `addStream:withSelector:error:` - */ --(void)addStream:(PTDiffusionValueStream *)stream - withSelector:(PTDiffusionTopicSelector *)selector -__deprecated_msg("Will be removed in a future release."); - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector. - - When a value update is received from the server, it will be passed to all - streams that have been added with matching selectors. - If there is more than one match, the order in which the streams are called is - not defined. - If there is no matching stream, the fallback stream(s) will be called instead. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. - - @param error May be 'nil'. Is supplied then will contain reason on failure. - - @return YES if stream was successfully added - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(BOOL)addStream:(PTDiffusionValueStream *)stream - withSelector:(PTDiffusionTopicSelector *)selector - error:(NSError **)error; - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector expression. - - This convenience method calls addStream:withSelector: having constructed a - PTDiffusionTopicSelector instance using the given expression. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated locally. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - - @deprecated since 6.5 Use `addStream:withSelectorExpression:error:` - */ --(void) addStream:(PTDiffusionValueStream *)stream - withSelectorExpression:(NSString *)expression -__deprecated_msg("Will be removed in a future release."); - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector expression. - - This convenience method calls addStream:withSelector: having constructed a - PTDiffusionTopicSelector instance using the given expression. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated locally. - - @param error May be 'nil'. Is supplied then will contain reason on failure. - - @return YES if stream was successfully added - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(BOOL) addStream:(PTDiffusionValueStream *)stream - withSelectorExpression:(NSString *)expression - error:(NSError **)error; - -/** - Remove a topic or value stream that was previously added using a topic selector - or as a fallback. - - @param stream The stream to remove. - - @return `YES` if the stream was removed. - - @note If the supplied `stream` argument is `nil` or the stream has already been - removed from the feature then calls to this method do nothing and return `NO`. - - @since 5.9 - */ --(BOOL)removeStream:(nullable PTDiffusionStream *)stream; - -/** - Creates an unconfigured fetch request. - - If the request is invoked by calling - PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler: - the fetch result will provide the paths and types of all of the topics which - the session has permission to read. - - You will usually want to restrict the query to a subset of the topic tree, and - to retrieve the topic values and/or properties. This is achieved by applying - one or more of the builder methods to produce more refined requests. - - For example (Swift): - - topics.fetchRequest() - .fetchStringValues(withTopicSelectorExpression: "*A/B//") - { - (result: PTDiffusionStringFetchResult?, error: Error?) in - / / TODO Handle result, if not `nil`, otherwise handle error. - } - - @return a new unconfigured fetch request - - @since 6.2 - */ --(PTDiffusionFetchRequest *)fetchRequest; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h deleted file mode 100644 index 5284f21..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h +++ /dev/null @@ -1,126 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionPartialJSONUpdateConstraint; -@class PTDiffusionSessionLock; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A constraint to be applied to an update operation or the creation of an - update stream. - - Constraints describe a condition that must be satisfied for an operation to - succeed. Constraints can be applied to the setting of a value or creation of an - update stream. Constraints are only evaluated on the server. - - Constraints are evaluated using the: - - active session locks - - existence of the topic - - current value of the topic - - The value of a topic can be described in several ways. The value can be - described as an exact value, a partial value or an unset value. - - Constraints can be composed with one another. It is only possible to construct - logical ANDs of constraints. Constraints can only be composed if the resulting - constraint is satisfiable. Multiple session locks can be held but a topic can - only have a single value. Constraints specifying multiple topic values cannot - be constructed. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionUpdateConstraint : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a constraint requiring a lock to be held by the session. - - This can be used to coordinate operations between multiple sessions. - - @param lock the lock held by the session. - - @return Constraint requiring a lock to be held by the session. - - @exception NSInvalidArgumentException If the lock argument is `nil`. - - @since 6.3 - */ -+(instancetype)lockedWithLock:(PTDiffusionSessionLock *)lock; - -/** - Create a constraint requiring the topic to have no value. - - This is useful when setting the first value of a topic. This constraint is - unsatisfied if no topic is present at the path, making it unsuitable for - operations that try to add topics. - - @return Constraint requiring the topic to have no value. - - @since 6.3 - */ -+(instancetype)noValue; - -/** - Returns a constraint requiring the path to have no topic. - - This is useful when setting the first value of a topic being added using one of - the 'add and set' methods without changing the value if the topic already - exists. This constraint is unsatisfied if a topic is present at the path, - making it unsuitable for operations that try to set topics without adding them. - - @return Constraint requiring the path to have no topic. - - @since 6.3 - */ -+(instancetype)noTopic; - -/** - Returns a constraint that partially matches the current topic value. - - The topic must be PTDiffusionTopicType_JSON. The returned constraint partially - describes the structure of a PTDiffusionJSON value. - - @return Constraint that partially matches the current topic value. - - @since 6.3 - */ -+(PTDiffusionPartialJSONUpdateConstraint *)jsonValue; - -/** - Returns a composed constraint that represents a logical AND of this constraint - and another. - - @param constraint The other constraint that will be logically-ANDed with this - constraint - - @param error Location to store a reason in case of failure. May be `nil`. - - @return A new constraint or `nil` if there was an error. - - @exception NSInvalidArgumentException If the constraint argument is `nil`. - - @since 6.3 - */ --(nullable instancetype)andConstraint:(PTDiffusionUpdateConstraint *)constraint - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionUpdateStream.h deleted file mode 100644 index 4407569..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionUpdateStream.h +++ /dev/null @@ -1,156 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTopicCreationResult; - -/** - The value assigned to the `code` property of NSError objects generated by some - callbacks generated by PTDiffusionUpdateStream instances. - - @since 6.3 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionUpdateStreamErrorCode) { - /** - An operation was performed with an invalid update stream. - - @since 6.3 - - @deprecated since 6.7 Use PTDiffusionError_InvalidUpdateStream instead. - */ - PTDiffusionUpdateStreamErrorCode_InvalidStream __deprecated_enum_msg("Use PTDiffusionError_InvalidUpdateStream instead.") = 1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - The value assigned to the `domain` property of NSError objects generated by - some callbacks generated by PTDiffusionUpdateStream instances. - - @since 6.3 - */ -extern NSString *const PTDiffusionUpdateStreamErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - @brief An update stream that provides a base functionality for updating a - specific topic. - - An update stream is associated with a specific topic. The type of the topic - must match the type of values passed to the update stream. It can be created - with an optional PTDiffusionUpdateConstraint. The existence of the topic, its - type and the constraint are validated lazily by the first 'set' or 'validate' - operation. Subsequent operations issued before the first operation completes - will be deferred until the completion of the first operation. - - An update stream can be used to send any number of updates. It sends a sequence - of updates for a specific topic to the server. If supported by the data type, - updates will be sent to the server as a stream of binary deltas. An update - stream does not prevent other sessions from updating the topic. If exclusive - access is required update streams should be used with a PTDiffusionSessionLock - as a constraint. - - Once validated an update stream can be invalidated. An invalidated update - stream rejects the operations applied to it. The update stream will be - invalidated if: - - - the topic is removed - - another update stream is created for the same topic - - the topic is updated to a new value by anything other than the stream - - the session does not have the `UPDATE_TOPIC` update permission - - an operation fails because of cluster repartitioning - - Update streams are thread-safe. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionUpdateStream : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(BOOL)validateWithCompletionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionValueStream.h deleted file mode 100644 index 04ce4d5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionValueStream.h +++ /dev/null @@ -1,30 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A value stream represents an asynchronous, variable length feed of - subscription and value updates from the Diffusion server. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -@interface PTDiffusionValueStream : PTDiffusionStream - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionVersion.h deleted file mode 100644 index 61e9cdf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Headers/PTDiffusionVersion.h +++ /dev/null @@ -1,100 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A version represents a released build of the client library. - - Version numbers are described with dotted notation in the form - `..`. - - @since 5.6 - */ -@interface PTDiffusionVersion : NSObject - -/** - Instance of the product version of this client library. - - @return the product version of this client library. - - @since 5.6 - */ -+(instancetype)versionOfClientLibrary; - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - The major (left, most significant) component of the version number. - - @deprecated since 6.5. This will be removed in a future release. - - @since 5.6 - */ -@property(nonatomic, readonly) NSUInteger major __deprecated_msg("Will be removed in a future release."); - - -/** - The minor (middle) component of the version number. - - @deprecated since 6.5. This will be removed in a future release. - - @since 5.6 - */ -@property(nonatomic, readonly) NSUInteger minor __deprecated_msg("Will be removed in a future release."); - - -/** - The patch (right, least significant) component of the version number. - - @deprecated since 6.5. This will be removed in a future release. - - @since 5.6 - */ -@property(nonatomic, readonly) NSUInteger patch __deprecated_msg("Will be removed in a future release."); - - -/** - The complete product version number. - - @since 6.5 - */ -@property(nonatomic, readonly) NSString * version; - - -/** - Additional information about this build of the client library. - - @since 5.6.6 - */ -@property(nonatomic, readonly) NSDictionary* manifest; - - -/** - Compares the receiver to the given version. - - @param version The version object with which to compare the receiver. - - @return `YES` if the receiver and the given version are the same. - - @since 5.6 - */ --(BOOL)isEqualToVersion:(nullable PTDiffusionVersion *)version; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Info.plist b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Info.plist deleted file mode 100644 index 368bc21..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/Info.plist and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/error_descriptions.plist b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/error_descriptions.plist deleted file mode 100644 index 0855770..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/Diffusion.framework/error_descriptions.plist and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist deleted file mode 100644 index 83c8924..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.apple.xcode.dsym.com.pushtechnology.Diffusion - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - dSYM - CFBundleSignature - ???? - CFBundleShortVersionString - 6.8.0 - CFBundleVersion - 6.8.0 - - diff --git a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion b/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion deleted file mode 100644 index aa9ba0d..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_armv7_armv7s/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Diffusion b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Diffusion deleted file mode 100755 index f73d781..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Diffusion and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h deleted file mode 100644 index 675946c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h +++ /dev/null @@ -1,210 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -/** - @file Diffusion.h - - Framework umbrella header file. - */ - -@import Foundation; - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h deleted file mode 100644 index 27dfff5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h +++ /dev/null @@ -1,99 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @file PTDiffusion.h - - Collection of utility functions - */ - -/** - Escapes special characters in a string that is to be used within a topic - property or a @ref md_session_filters "session filter". - - This is a convenience method which inserts an escape character `\` before any - of the special characters `'`, `"` or `\`. - - @param string The string to be escaped. - - @return The string value with escape characters inserted as appropriate. - - @exception NSInvalidArgumentException If the given string is `nil`. - - @since 6.1 - */ -NSString* PTDiffusionEscape(NSString * string); - -/** - Converts a string of the format required by the - PTDiffusionSession#rolesPropertyKey into a set of strings. - - @param string Quoted roles, separated by whitespace or commas. - - @param roles If successful, upon return contains the set of roles. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return An immutable set of roles. - - @since 6.2 - */ -BOOL PTDiffusionRolesFromString(NSString * string, NSSet *_Nullable *_Nonnull roles, NSError ** error); - -/** - Converts a set of authorisation roles to the string format required by the - PTDiffusionSession#rolesPropertyKey. - - @param roles The roles to format. - - @return A string representation of the supplied roles. - - @since 6.2 - */ -NSString* PTDiffusionStringFromRoles(NSSet * roles); - -/** - The value assigned to the `domain` property of NSError objects generated from - some methods in the Diffusion API. - - @since 6.2 - - @deprecated since 6.7 Error domains have been converged into PTDiffusion. - */ -extern NSString *const PTDiffusionErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - Values assigned to the `code` property of NSError objects generated from some - methods in the Diffusion API. - - @since 6.2 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionErrorCode) { - /** - The string supplied has been encoded incorrectly. - - @deprecated since 6.7 Use PTDiffusionError_MisquotedInput instead. - - @since 6.2 - */ - PTDiffusionErrorCode_MisquotedInput __deprecated_enum_msg("Use PTDiffusionError_MisquotedInput instead.") = 1, -}; - - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h deleted file mode 100644 index 738baf5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The result of adding a topic. - - @see PTDiffusionTopicControlFeature - - @since 6.1 - */ -@interface PTDiffusionAddTopicResult : PTDiffusionEnumeration - -/** - A new topic was created. - - @return Instance indicating a new topic was created. - - @since 6.1 - */ -+(instancetype)created; - -/** - A topic with the same specification already exists. - - @return Instance indicating a topic with the same specification - already exists. - - @since 6.1 - */ -+(instancetype)exists; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h deleted file mode 100644 index 6fbf6e3..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h +++ /dev/null @@ -1,49 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Provider of responses to basic authentication challenges from HTTP proxies. - - @see PTDiffusionHTTPProxyConfiguration - - @since 6.0 - */ -@interface PTDiffusionBasicHTTPProxyAuthentication : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Creates a basic HTTP Proxy authentication with the given username and password. - - @param username The username to respond with. - - @param password The password to respond with. - - @exception NSInvalidArgumentException If either username or password is `nil`. - - @return HTTP Proxy Authentication instance with the given username and password. - - @since 6.0 - */ --(instancetype)initWithUsername:(NSString *)username - password:(NSString *)password NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h deleted file mode 100644 index 9e16384..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h +++ /dev/null @@ -1,693 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionBinaryDelta; -@class PTDiffusionBinaryFetchResult; -@class PTDiffusionBinaryTimeSeriesQueryResult; -@class PTDiffusionBinaryUpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionResponse; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionBinaryRequestDelegate; -@protocol PTDiffusionBinaryRequestStreamDelegate; -@protocol PTDiffusionBinarySessionResponseStreamDelegate; -@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionBinaryValueStreamDelegate; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" - - -NS_ASSUME_NONNULL_BEGIN - - -/** - @brief An immutable binary value with support for binary deltas. - - @since 5.9 - */ -@interface PTDiffusionBinary : PTDiffusionBytes - -/** - Apply a binary delta to the receiver's binary value to create a new value. - - @param delta The delta describing the changes to be applied to the receiver's - value in order to create the value to be returned. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new binary value or `nil` if there was a failure when applying the - delta (e.g. either the delta is invalid). - - @exception NSInvalidArgumentException Raised if the delta argument is `nil`. - - @since 5.9 - */ --(nullable PTDiffusionBinary *)applyDelta:(PTDiffusionBinaryDelta *)delta - error:(NSError **)error; - -/** - Compare the receiver's binary value with another (e.g. an earlier version) to - create a binary delta. - - @param binary The original to which the delta should be able to be applied in - order to generate the value represented by the receiver. - - @return A binary delta representing the difference between binary and the - receiver. - - @exception NSInvalidArgumentException Raised if the binary argument is `nil`. - - @since 5.9 - */ --(PTDiffusionBinaryDelta *)diffFromBinary:(PTDiffusionBinary *)binary; - -/** - A request that can be used to send this value using messaging. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRequest* request; - -/** - A response that can be used to send this value using messaging. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionResponse* response; - -/** - An update constraint requiring the current value of a topic to match this - value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; - -/** - Creates a value stream capable of receiving binary values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -+(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving binary time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving Binary requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving Binary requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving Binary responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; - -/** - Compares the receiver to the given binary. - - @param binary The binary object with which to compare the receiver. - - @return `YES` if the data in binary is equal to the contents of the receiver, otherwise `NO`. - - @note Two binary objects are equal if they hold the same number of data bytes, and if the - bytes at the same position in the objects are the same. - - @since 5.9 - */ --(BOOL)isEqualToBinary:(nullable PTDiffusionBinary *)binary; - -@end - -/** - @brief Extension adding support for responding to requests using Binary values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionBinary) - -/** - Dispatch a response to a request. - - @param binary The value to send in response. - - @exception NSInvalidArgumentException Raised if the binary argument is `nil`. - - @since 6.0 - */ --(void)respondWithBinary:(PTDiffusionBinary *)binary; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a binary response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionBinary) - -/** - Send a request for which a binary response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a binary response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using binary values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionBinary) - -/** - Update a time series topic by appending a new binary value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - binaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - - -/** - Update a time series topic by appending a new binary value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - binaryValue:(PTDiffusionBinary *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new binary value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - binaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have binary values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - binaryCompletionHandler:(void (^)(PTDiffusionBinaryTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with Binary. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionBinary) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with Binary. - - The Binary data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as Binary will be - removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchBinaryValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionBinaryFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with binary values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionBinary) - -/** - Sets a topic to a specified binary value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toBinaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified binary value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toBinaryValue:(PTDiffusionBinary *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a binary value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toBinaryValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToBinaryValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a binary value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setTopicWithPath:toBinaryValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToBinaryValue:(PTDiffusionBinary *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Creates an update stream to use for updating a specific topic with binary - values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with binary - values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - binary values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - binary values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#binary. - - @since 6.3 - */ --(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -NS_ASSUME_NONNULL_END - -#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h deleted file mode 100644 index 567dd0b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An immutable delta describing the differences between two binary values. - - A `diff` of two binary values creates a binary delta. The binary delta can - later `apply` to the first value to calculate the second value. - - @since 5.9 - */ -@interface PTDiffusionBinaryDelta : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Whether the two values used to create this instance are different. - - @since 5.9 - */ -@property(nonatomic, readonly, getter=hasChanges) BOOL changes; - -/** - Compares the receiver to the given binary delta. - - @param binaryDelta The binary delta object with which to compare the receiver. - - @return `YES` if the data in binary delta is equal to the contents of the receiver, otherwise `NO`. - - @note Two binary delta objects are equal if they carry the same information. - - @since 5.9 - */ --(BOOL)isEqualToBinaryDelta:(nullable PTDiffusionBinaryDelta *)binaryDelta; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h deleted file mode 100644 index 190d691..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinaryFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a binary fetch operation issued to the - server. - - A binary fetch operation is issued using the - PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionBinaryFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * binaryResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h deleted file mode 100644 index 1a8d760..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a binary fetch operation for a single - selected topic. - - A binary fetch operation is issued using the - PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionBinaryFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) PTDiffusionBinary* binary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h deleted file mode 100644 index 02b00df..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Binary messaging requests with a - handler registered at the server. - - @see PTDiffusionBinary - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionBinaryRequestDelegate - -/** - Called when a Binary request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param binary The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithBinary:(PTDiffusionBinary *)binary - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h deleted file mode 100644 index 8ec00d2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Binary messaging requests. - - @see PTDiffusionBinary - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionBinaryRequestStreamDelegate - -/** - Called when a Binary request has been received. - - @param stream The stream that received the request. - - @param binary The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithBinary:(PTDiffusionBinary *)binary - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h deleted file mode 100644 index 67c6393..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Binary messaging responses from - individual sessions. - - @see PTDiffusionBinary - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionBinarySessionResponseStreamDelegate - -/** - Called when a session responds to a request with a Binary. - - @param stream The stream that received the response. - - @param binary The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithBinary:(PTDiffusionBinary *)binary - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h deleted file mode 100644 index e32a8ce..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as Binary. - - @since 6.0 - */ -@interface PTDiffusionBinaryTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The binary value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionBinary* binary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index bd71fad..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinaryTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - binary values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with binary values. - - @since 6.0 - */ -@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldBinaryEvent The previous event. If `nil` then this is the first event. - - @param newBinaryEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldBinaryEvent:(nullable PTDiffusionBinaryTimeSeriesEvent *)oldBinaryEvent - newBinaryEvent:(PTDiffusionBinaryTimeSeriesEvent *)newBinaryEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h deleted file mode 100644 index 1394647..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinaryTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of binary time series events. - - @since 6.0 - */ -@interface PTDiffusionBinaryTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The binary time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* binaryEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h deleted file mode 100644 index 3d207c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - binary values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionBinaryUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionBinary* value; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either value or completionHandler is - `nil`. - - @since 6.3 - */ --(BOOL) setValue:(PTDiffusionBinary *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h deleted file mode 100644 index 7ff6e28..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBinary; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for binary - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for binary - topics. - - @see PTDiffusionBinary - - @since 5.9 - */ -@protocol PTDiffusionBinaryValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldBinary The previous value. If `nil` then this is the first value. - - @param newBinary The new value derived from the last update received from the - server. - - @since 5.9 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldBinary:(nullable PTDiffusionBinary *)oldBinary - newBinary:(PTDiffusionBinary *)newBinary; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h deleted file mode 100644 index 406a862..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session tree branch mapping. - - Branch mappings belong to {@link PTDiffusionBranchMappingTable branch mapping tables}. - Each branch mapping is a pair of a {@link PTDiffusionSession session filter} and the - target topic tree branch that applies to sessions matching the filter. - - @see PTDiffusionSessionTreesFeature - - @since 6.7 - */ -@interface PTDiffusionBranchMapping : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The session filter. - */ -@property (nonatomic, readonly) NSString *sessionFilter; - -/** - The target branch in the topic tree for sessions matching the session filter - */ -@property (nonatomic, readonly) NSString *topicTreeBranch; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h deleted file mode 100644 index 3f3135e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionBranchMapping; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session tree branch mapping table. - - A branch mapping table is a list of {@link PTDiffusionBranchMapping branch mappings} - assigned to a session tree branch - - To create a branch mapping table, obtain a new a builder instance using - {@link PTDiffusionBranchMappingTableBuilder}, call - {@link PTDiffusionBranchMappingTableBuilder#addBranchMappingWithSessionFilter:targetPath: - addBranchMapping} for each branch mapping, then - {@link PTDiffusionBranchMappingTableBuilder#createTableForSessionTreeBranch: createTable}. - The result can then be sent to the server using - {@link PTDiffusionSessionTreesFeature#putBranchMappingTable: putBranchMappingTable} - - @see PTDiffusionSessionTreesFeature - - @since 6.7 - */ -@interface PTDiffusionBranchMappingTable : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The branch of the session tree to which this table is bound - */ -@property (nonatomic, readonly) NSString *sessionTreeBranch; - -/** - The branch mappings - */ -@property (nonatomic, readonly) NSArray *branchMappings; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h deleted file mode 100644 index ac7d9e9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h +++ /dev/null @@ -1,68 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionBranchMappingTable; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Builder for {@link PTDiffusionBranchMappingTable} instances. - - @see PTDiffusionSessionTrees - - @since 6.7 - */ -@interface PTDiffusionBranchMappingTableBuilder : NSObject - - -+(instancetype)new; - --(instancetype)init; - - -/** - @brief Resets the builder. - - @return the builder - */ --(instancetype)reset; - - -/** - @brief Add a new branch mapping. - - @param sessionFilter the session filter - - @param topicTreeBranch the target branch in the topic tree for sessions - matching the session filter - - @return the builder - */ --(instancetype)addBranchMappingWithSessionFilter:(NSString *const)sessionFilter - topicTreeBranch:(NSString *const)topicTreeBranch; - - -/** - @brief Create a new {@link PTDiffusionBranchMappingTable}. - - @param sessionTreeBranch the session tree branch - - @return a branch mapping table - */ --(PTDiffusionBranchMappingTable *) createTableForSessionTreeBranch:(NSString *const)sessionTreeBranch; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h deleted file mode 100644 index feafd5b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h +++ /dev/null @@ -1,66 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A value that is internally represented as binary data. - - A bytes object is immutable. - - @since 5.9 - */ -@interface PTDiffusionBytes : NSObject - -/** - Returns a bytes object initialized with the given data. - - @param data A data object encapsulating the bytes. - - @return Bytes object initialized with the given data. - - @note Since Diffusion 5.9 this method has been moved from PTDiffusionContent - to this new super interface. - - @since 5.9 - */ --(instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER; - -/** - The data encapsulated by the receiver. - - @note Since Diffusion 5.9 this property has been moved from PTDiffusionContent - to this new super interface. - - @since 5.9 - */ -@property(nonatomic, readonly, copy) NSData* data; - -/** - Compares the receiver to the given bytes. - - @param bytes The bytes object with which to compare the receiver. - - @return `YES` if the bytes are equal to the contents of the receiver, otherwise `NO`. - - @note Two bytes objects are equal if they hold the same number of bytes, and if the - bytes at the same position in the objects are the same. - - @since 5.9 - */ --(BOOL)isEqualToBytes:(nullable PTDiffusionBytes *)bytes; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h deleted file mode 100644 index 527527e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A cancellable handle to an asynchronous operation. - - @since 6.3 - */ -@protocol PTDiffusionCancellable - -/** - Attempts to cancel execution of the operation. Does nothing if the operation - has already completed, has already been cancelled, or could not be cancelled - for some other reason. - - @return If this attempt to cancel the operation was viable then `YES`, or if it - did nothing then `NO`. - - @since 6.3 - */ --(BOOL)cancel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h deleted file mode 100644 index e948368..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRemoteServer; -@class PTDiffusionRemoteServerConnectionState; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Interface for the result of checking the state - of a remote server - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionCheckRemoteServerResult : NSObject - - -/** - The remote server's connection state - - @since 6.5 - */ -@property (nonatomic, readonly) PTDiffusionRemoteServerConnectionState *state; - - -/** - Message from the server if the connection state for - the specified remote server is `failed` or `retrying`. - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *failureMessage; - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h deleted file mode 100644 index 3b85b3d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h +++ /dev/null @@ -1,388 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@protocol PTDiffusionSessionPropertiesDelegate; -@protocol PTDiffusionClientQueueEventListener; - -@class PTDiffusionSessionPropertiesListenerRegistration; -@class PTDiffusionRegistration; -@class PTDiffusionGetSessionPropertiesResult; -@class PTDiffusionSetSessionPropertiesResult; -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Client Control feature provides the ability for a client session - to control other client sessions. - - It allows for notifications of client sessions starting and closing as well - as the ability to manage client sessions (forcibly closing them etc). - - - ### Access control - - A session must have `PTDiffusionGlobalPermission#viewSession` permission to be able - to listen for notifications using `#addSessionPropertiesListener:forProperties:completionHandler:` - or `#getSessionProperties:forSession:completionHandler:` of other sessions - or listen for queue events. In addition, `PTDiffusionGlobalPermission#registerHandler` - permission is required to set a session properties listener or queue event handler. - - In order to perform operations that change a session's state (such as throttling, - conflating, or closing the session, or changing roles), both - `PTDiffusionGlobalPermission#viewSession` and PTDiffusionGlobalPermission#modifySession` - permission is required. - - - ### Accessing the feature - - This feature may be obtained from a `PTDiffusionSession` session as follows: -
-    
-        PTDiffusionClientControlFeature *clientControl = session.clientControl;
-    
- 
- - @since 6.5 - */ -@interface PTDiffusionClientControlFeature : PTDiffusionFeature - - -/** - @brief Register a listener that will be notified when client sessions are - opened, disconnected, reconnected, closed or when selected session - property values are updated. - - When a listener is first set, it will be called with the required - properties of all currently open client sessions. - The amount of data transferred from the server is proportional to - the number of connected clients and is potentially large. - The amount of data can be reduced using `requiredProperties` parameter. - - Each control session can register a single listener. When the listener is - no longer required, it may be closed using the - PTDiffusionSessionPropertiesListenerRegistration provided by the `completionHandler`. - To change the listener, the previous listener must first be closed. - - The `requiredProperties` parameter is used to select the property - values required. - - The requested property set controls the level of detail provided and - whether the listener is called for updates to sessions. - If no properties are requested, the listener is not called when - session properties are updated. - - @param listener the listener to be called with session notifications - - @param requiredProperties a list of required property keys. - See `PTDiffusionSession` for a full list of available fixed property keys. - To request no properties, supply an empty list. - To request all fixed properties, include - `PTDiffusionSession.allFixedProperties` as an entry. - In this case any other fixed property keys would be ignored. - To request all user properties, include - `PTDiffusionSession.allUserProperties` as an entry. - In this case any other user properties are ignored. - - @param completionHandler a completion handler than returns when the listener - has been registered, returning a `PTDiffusionSessionPropertiesListenerRegistration` - which can be used to unregister the listener. - - If the `registration` is nil. This could mean an error has occurred during the - registration process. These may include: - - SessionClosed, if the session is closed - - HandlerConflict, if the session has already registered a queue event handler - - Security, if the session does not have - `PTDiffusionGlobalPermission.registerHandler` permission and/or - `PTDiffusionGlobalPermission.viewSession` permission. - - @since 6.5 - */ --(void)addSessionPropertiesListener:(id) listener - forProperties:(NSArray *) requiredProperties - completionHandler:(void (^)(PTDiffusionSessionPropertiesListenerRegistration * _Nullable registration, - NSError * _Nullable error)) completionHandler; - - -/** - @brief Query the server for property values of a specified client session. - - @param requiredProperties a list of required property keys. - See `PTDiffusionSession` for a full list of available fixed property keys. - To request no properties, supply an empty list. - To request all fixed properties, include `PTDiffusionSession.allFixedProperties` - as a key. - In this case any other fixed property keys would be ignored. - To request all user properties, include `PTDiffusionSession.allUserProperties` - as a key. - In this case any other user properties are ignored. - - @param sessionId identifies the client session - - @param completionHandler called with the response - - @since 6.5 - */ --(void) getSessionProperties:(NSArray *) requiredProperties - forSession:(PTDiffusionSessionId *) sessionId - completionHandler:(void (^)(PTDiffusionGetSessionPropertiesResult * _Nullable result, - NSError * _Nullable error)) completionHandler; - - - -/** - @brief Send a request to the server to change the user-defined session - properties for a session. - - It is also permissible to change the values of the following fixed session - properties : - - - `$Country` - will be normalised to upper case - - `$Language` - will be normalised to lower case - - `$Latitude` - Invalid value will be set to "NaN" - - `$Longitude` - Invalid value will be set to "NaN" - - If values are provided for any other fixed session properties they will be ignored. - - @param properties the properties to change. Each entry in the map is a - property name and the new value. - If the value is `[NSNull null]`, any existing property with - that name will be removed (unless it is a fixed property). - Otherwise if the property name does not match any existing property, - that entry will be added as a new property (although properties starting - with `$` will be ignored). - - @param sessionId identifies the client session - - @param completionHandler a completion handler that is called when a response is received - from the server, returning the maps of session properties that were added - or updated. - - If the session properties were updated, the `result` will contain a map of - properties that changed with their previous values. - If no properties were changed, the map will be empty. - If any new properties were added, the values in the map will be `[NSNull null]` - to indicate that they do not have an old value. - - Otherwise, the `error` will contain an error. - Common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.5 - */ --(void) setSessionProperties:(NSDictionary*) properties - forSession:(PTDiffusionSessionId *) sessionId - completionHandler:(void (^)(PTDiffusionSetSessionPropertiesResult * _Nullable result, - NSError * _Nullable error)) completionHandler; - - - -/** - @brief Send a request to the server to set all sessions that satisfy a session - filter with the new user-defined session properties. - - It is also permissible to change the values of the following fixed session - properties : - - - `$Country` - will be normalised to upper case - - `$Language` - will be normalised to lower case - - `$Latitude` - Invalid value will be set to "NaN" - - `$Longitude` - Invalid value will be set to "NaN" - - If values are provided for any other fixed session properties they will be ignored. - - @param properties the properties to change. - Each entry in the map is a property name and the new value. - If the value is `[NSNull null]`, any existing property with - that name will be removed (unless it is a fixed property). - Otherwise if the property name does not match any existing property, - that entry will be added as a new property (although properties starting - with `$` will be ignored). - - @param filter the session filter - - @param completionHandler a completion handler that is called when a response is received - from the server, returning the total number of sessions that were updated with - the filter. - - If `matches` is 0, the filter has not selected any session - If `matches` is -1, an `error` has occurred. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.5 - */ --(void) setSessionProperties:(NSDictionary *) properties - usingFilter:(NSString *) filter - completionHandler:(void (^)(NSInteger matches, - NSError * _Nullable error)) completionHandler; - - -/** - @brief Close a client session. - - @param sessionId identifies the client session to close - - @param completionHandler a completion handler that is called then a response is received - from the server. - If the client session was closed successfully, the `error` will be nil - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)closeClientWithSessionId:(PTDiffusionSessionId *) sessionId - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - @brief Close all client sessions matching a given session filter. - - @param filter matches the set of client sessions to close. For details on - specifying session filters see `PTDiffusionSession`. - - @param completionHandler a completion handler that is called then a response is received - from the server. - If the operation is successful, `closedSessions` will contain the number of client - sessions that were closed and `error` will be nil. - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)closeClientWithFilter:(NSString *)filter - completionHandler:(void (^)(NSInteger closedSessions, NSError * _Nullable error)) completionHandler; - - -/** - @brief Sets the client session queue conflation policy. - - Each session begins with conflation enabled or disabled based on the - queue configuration of the connector it is using. This method allows - conflation to be enabled or disabled for specific sessions at runtime. - - Conflation is the process of merging or discarding topic updates queued - for a session to reduce the server memory footprint and network data. - Conflation needs to be enabled for a session and a policy configured for - the topic to have an effect. Policies are configured on a per-topic - basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. - - @param conflate `true` to enable conflation, `false` to disable conflation - - @param sessionId identifies the client session - - @param completionHandler a completion handler that is called when a response is received - from the server. If the conflation policy was updated for the identified session, - the error will be `nil`. - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)setQueueConflation:(BOOL)conflate forSession:(PTDiffusionSessionId *)sessionId - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - @brief Sets the queue conflation policy for all client sessions - matching a given session filter. - - Each session begins with conflation enabled or disabled based on the - queue configuration of the connector it is using. This method allows - conflation to be enabled or disabled for specific sessions at runtime. - - Conflation is the process of merging or discarding topic updates queued - for a session to reduce the server memory footprint and network data. - Conflation needs to be enabled for a session and a policy configured for - the topic to have an effect. Policies are configured on a per-topic - basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. - - @param conflate `true` to enable conflation, `false` to disable conflation - - @param filter matches the set of client sessions to close. For details on - specifying session filters see `PTDiffusionSession`. - - @param completionHandler a completion handler that is called when a response is received - from the server. If the conflation policy was updated for the identified session, - the error will be `nil`. - - Otherwise, the `error` will contain an error. - These are the common reasons for failure: - - NoSuchSession, if the identified session was closed before the response was delivered - - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` - and `PTDiffusionGlobalPermission.viewSession` permission - - SessionClosed, if the calling session is closed. - - @since 6.6 - */ --(void)setQueueConflation:(BOOL)conflate withFilter:(NSString *)filter - completionHandler:(void (^)(NSInteger matchedSessions, NSError * _Nullable error)) completionHandler; - - -/** - @brief Register a delegate for client queue threshold events - - Each control session can register a single handler. When the handler is - no longer required, it may be closed using the `PTDiffusionRegistration` - provided by the completion handler. To set a different handler the - current handler must first be closed. For each event, the server will - select a single handler. - - The control session may choose to act upon queue events for a session by - activating conflation for the session. - - @param listener the queue handler listener to set - - @param completionHandler a completion handler than returns when the listener - has been registered, returning a `PTDiffusionRegistration` - which can be used to unregister the listener. - - If the `registration` is nil. This could mean an error has occurred during the - registration process. These may include: - - SessionClosed, if the session is closed - - HandlerConflict, if the session has already registered a queue event handler - - Security, if the session does not have - `PTDiffusionGlobalPermission.registerHandler` permission and/or - `PTDiffusionGlobalPermission.viewSession` permission. - - @since 6.6 - */ --(void)setQueueEventHandler:(id)listener - completionHandler:(void (^)(PTDiffusionRegistration *registration, NSError * _Nullable error)) completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h deleted file mode 100644 index 241997f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h +++ /dev/null @@ -1,77 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRegistration; -@class PTDiffusionClientQueuePolicy; -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Listener for client message queue events from the server. - - @see PTDiffusionClientControlFeature - - @since 6.6 - */ -@protocol PTDiffusionClientQueueEventListener - - -/** - Called when the message queue policy changes - - @param registration The message queue event listener registration for which this listener applies - - @param policy The new message queue policy for the session - - @param sessionId The session ID of the affected session - - @since 6.6 - */ --(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration - didReportPolicyChange:(PTDiffusionClientQueuePolicy *)policy - forSession:(PTDiffusionSessionId *)sessionId; - - -/** - Called if the handler is closed. - - No further calls will be made to this handler. - - @param registration The message queue event listener registration for which this listener applies - - @since 6.6 - */ --(void)diffusionQueueEventListenerRegistrationDidClose:(PTDiffusionRegistration *)registration; - - - -/** - Called in the event of a contextual error relating to this handler. - - No further calls will be made to this handler. - - @param registration The message queue event listener registration for which this listener applies. - - @param error The failure reason. - - @since 6.6 - */ --(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration - didFailWithError:(NSError *)error; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h deleted file mode 100644 index 176762c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h +++ /dev/null @@ -1,40 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Policy for managing a client message queue. - - Conflation can be enabled or disabled. - - @since 6.6 - */ -@interface PTDiffusionClientQueuePolicy: NSObject - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @return `YES` is conflation is enabled. - - @since 6.6 - */ --(BOOL) isConflated; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h deleted file mode 100644 index 0b40936..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h +++ /dev/null @@ -1,252 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Specifies the reason why a session has been closed - - This is used by the Client Control feature - - @since 6.5 - */ -@interface PTDiffusionCloseReason : PTDiffusionEnumeration - - -/** - The connection to the client was lost - possibly dropped by the - client. Recoverable. - - A client may be closed for many reasons that are presented as - CONNECTION_LOST. - - During a connection attempt, the connection can be lost. - The server might have received a connection or reconnection request - from a client already connected. - The server might have received a reconnection request without - a session Id. - The connection may not have been authorised because the credentials - are wrong. - The maximum number of clients might already be connected. - - Once connected, the connection can be lost for different reasons. - If the client closes its connection while the server is writing a - message to the client. With the chunked encoding based connection the - HTTP response is completed by the server. - If the client does not open a new request within a timeout, - the client will be closed. - If a poll request times out and the server finds that the connection - has already been closed by the client. - - @return Instance indicating the connection to the client was lost. - - @since 6.5 - */ -+(instancetype)connectionLost; - - -/** - An unexpected IO Exception occurred. Recoverable. - - While trying to perform an I/O operation an exception was generated. - This often means that a read was attempted from a closed TCP - connection. - - When handling SSL connections if there is a problem encrypting or - decrypting a message the client will be closed for this reason. - - @return Instance indicating an unexpected IO Exception occurred. - - @since 6.5 - */ -+(instancetype)ioException; - - -/** - The client had become unresponsive. - - The client has either failed to respond to a ping message in a timely - manner or the client has failed to open an HTTP poll for messages. - The client does not appear to be receiving messages. - - @return Instance indicating the client has become unresponsive. - - @since 6.5 - */ -+(instancetype)clientUnresponsive; - - -/** - The maximum outbound queue size was reached for the client. Not - recoverable. - - Messages sent to the client are placed in a queue. This queue has a - maximum allowed size. If the queue limit is reached the client is - closed and the queue discarded. The queue is intended to protect - against slow consumers, reaching the queue limit is taken to mean - that the client cannot keep up with the number of messages sent to - it. - - @return Instance indicating the maximum outbound queue size was reached - for the client. - - @since 6.5 - */ -+(instancetype)messageQueueLimitReached; - - -/** - The client requested close. Not recoverable. - - @return Instance indicating the client requested close. - - @since 6.5 - */ -+(instancetype)closedByClient; - -/** - The client sent a message that exceeded the maximum message size that - can be processed by the server. - - The server has a maximum message size that it can process on any - single connector. If a client sends a message larger than this the - server is unable to process it. When this happens the message is - discarded and the client is closed. - - @return Instance indicating the client send a message that exceeded the - server maximum message size. - - @since 6.5 - */ -+(instancetype)messageTooLarge; - - -/** - An internal error occurred. - - @return Instance indicating an internal error has occurred. - - @since 6.5 - */ -+(instancetype)internalError; - - -/** - An inbound message with an invalid format was received. - - A message received by the server is not a valid Diffusion message. - The server is unable to process this and closes the client that sent - it. - - @return Instance indicating an inbound message with an invalid format - was received. - - @since 6.5 - */ -+(instancetype)invalidInboundMessage; - - -/** - The client connection was aborted by the server, possibly because the - connection was disallowed. - - This is may be because the connection was disallowed. - Abort messages are also sent to clients that have unrecognised - client IDs. This may be because the server closed the client previously - but the client is unaware of this and tried to continue interacting - with the server. - - @return Instance indicating the client connection was aborted by - the server. - - @since 6.5 - */ -+(instancetype)aborted; - - -/** - Loss of messages from the client has been detected. - - For example, whilst waiting for the arrival of missing messages in - a sequence of messages a timeout has occurred. - - HTTP based transports use multiple TCP connections. This can cause - the messages to be received out of order. To reorder the messages - those sent to the server may contain a sequence number indicating the - correct order. - - If a message is received out of order there is a short time for the - earlier messages to be received. If the messages are not received in - this time the client is closed. - - Missing, invalid or duplicate sequence numbers will also close the - client for this reason. - - This cannot be recovered from as the client and the server are in - inconsistent states. - - @return Instance indicating loss of messages from the client - has been detected. - - @since 6.5 - */ -+(instancetype)lostMessages; - - -/** - The server is closing down. - - The client was closed as part of the server shutdown process. - - @return Instance indicating the server is closing down. - - @deprecated since 6.6 and will be removed in a future release. - - @since 6.5 - */ -+(instancetype)serverClosing __deprecated_msg("Will be removed in a future release"); - - -/** - Closed by a client session. - - A control session initiated the client close. - - @return Instance indicating the sessiion was closed by another - client session. - - @since 6.5 - */ -+(instancetype)closedByController; - - -/** - The session has failed over to a different Diffusion server. - - The session is still open but is now connected to a different - Diffusion server. This server has evicted its view of the session - from its set of local sessions. - - @return Instance indicating the session has failed over to a - different Diffusion server. - - @since 6.5 - */ -+(instancetype)failedOver; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h deleted file mode 100644 index 70a70ad..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRemoteServer; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Interface for the result from the creation of a remote server. - - This is used by the Remote Servers feature. - - @since 6.5 - */ -@interface PTDiffusionCreateRemoteServerResult : NSObject - - -/** - The remote server. - - @since 6.5 - */ -@property (nonatomic, readonly) PTDiffusionRemoteServer *remoteServer; - - -/** - Whether the response successfully creates a remote server or not. - - @since 6.5 - */ -@property (nonatomic, readonly, getter=isSuccess) BOOL success; - - -/** - The list of errors resulting from attempting to create a remote server. - - @since 6.5 - */ -@property (nonatomic, readonly) NSArray *errors; - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h deleted file mode 100644 index c8448d9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h +++ /dev/null @@ -1,82 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Credentials contain the proof material to support an authentication request. - - The server passes the credentials through to the configured authentication - handlers for interpretation. - - A credentials object is immutable. - - @see PTDiffusionSessionConfiguration - - @since 5.6 - */ -@interface PTDiffusionCredentials : NSObject - -/** - Returns a credentials object initialized with the given plain-text password to use as proof material. - - @param password The plain-text password to authenticate with. - - @return Credentials instance initialized with the given plain-text password. - - @since 5.6 - */ --(instancetype)initWithPassword:(NSString *)password; - -/** - Returns a credentials object initialized with the given custom data to use as proof material. - - @param data The application-specific, custom credentials to authenticate with. - - @return Credentials instance initialized with the given custom data. - - @since 5.6 - */ --(instancetype)initWithData:(NSData *)data; - -/** - Returns a credentials object initialized with an empty type and password. - - @return Credentials objects initialized with an empty type and password. - - @since 6.5 - */ -+(instancetype)noCredentials; - -/** - The data defining the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly) NSData *data; - -/** - Compares the receiver to the given credentials. - - @param credentials The credentials object with which to compare the receiver. - - @return `YES` if the receiver and the given credentials have the same type and data. - - @since 5.6 - */ --(BOOL)isEqualToCredentials:(nullable PTDiffusionCredentials *)credentials; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h deleted file mode 100644 index a82451c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes providing data type implementations. - - A data type is specified for a particular class (its value class). It provides - methods to convert values of the value class to and from binary. Diffusion - provides several data type implementations. - - A data type can optionally support incremental changes to values, represented - by one or more types of delta. - - @see PTDiffusionDataTypes - - @since 6.0 - */ -@protocol PTDiffusionDataType - -/** - The unique external identifier for this data type. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* typeName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h deleted file mode 100644 index c3709e0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h +++ /dev/null @@ -1,118 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionDataType; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Diffusion data type implementations. - - @since 6.0 - */ -@interface PTDiffusionDataTypes : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Data type that supports arbitrary binary data. - - @see PTDiffusionBinary - - @return Data type that supports arbitrary binary data. - - @since 6.0 - */ -+(id)binary; - -/** - Data type that supports double-precision floating point numbers (Eight-byte - IEEE 754) presented as `NSNumber` instances. - - The integer value is serialized as CBOR-format binary. A serialized value can - be read using the #json datatype. - - This data type does not support binary deltas but does support `nil` values. - - @return Data type that supports double-precision floating point numbers. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -+(id)doubleFloat; - -/** - Data type that supports 64-bit, signed integer values presented as `NSNumber` - instances. - - The integer value is serialized as CBOR-format binary. A serialized value can - be read using the #json datatype. - - This data type does not support binary deltas but does support `nil` values. - - @return Data type that supports 64-bit, signed integer values. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -+(id)int64; - -/** - Data type that supports JSON "JavaScript Object Notation", a lightweight - data-interchange format, serialized as CBOR-format binary. - - @return Data type that supports JSON values. - - @see PTDiffusionJSON - - @since 6.0 - */ -+(id)json; - -/** - Data type that supports string values presented as `NSString` instances. - - The string value is serialized as CBOR-format binary. A serialized value can be - read using the #json datatype. - - This data type supports binary deltas and `nil` values. - - @return Data type that supports string values. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -+(id)string; - -/** - Data type that supports data in the form of records and fields. - - This data type supports binary deltas but does not support `nil` values. - - @return Data type that supports data in the form of records and fields. - - @see PTDiffusionRecordV2 - - @since 6.0 - */ -+(id)recordV2; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h deleted file mode 100644 index 888f576..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received error messages at PTDiffusionLoggingLevel::warn level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultSessionResponseStreamDelegate : PTDiffusionDefaultStreamDelegate - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h deleted file mode 100644 index 5c0b787..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received closure messages at PTDiffusionLoggingLevel::debug level and - error messages at PTDiffusionLoggingLevel::warn level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultStreamDelegate : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h deleted file mode 100644 index ac5f160..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received messages at PTDiffusionLoggingLevel::debug level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultSubscriberStreamDelegate : PTDiffusionDefaultStreamDelegate - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h deleted file mode 100644 index 4705af9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received messages at PTDiffusionLoggingLevel::debug level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultTopicNotificationListener : PTDiffusionDefaultStreamDelegate - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h deleted file mode 100644 index 07b78b1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h +++ /dev/null @@ -1,33 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Default delegate implementation which may be used as an abstract base - for sub-protocol implementations. - - It logs received closure messages at PTDiffusionLoggingLevel::debug level and - error messages at PTDiffusionLoggingLevel::warn level. - - @see PTDiffusionLogging - - @since 6.1 - */ -@interface PTDiffusionDefaultTopicTreeRegistrationDelegate : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h deleted file mode 100644 index b9c0b4a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Base class for objects offering a selection of predefined constant values. - - Classes inheriting from this class share more in common with Java's `enum` type than - they do with C's `enum` (even using Core Foundation's `NS_ENUM` macro) in that they - are object-based. Benefits of this include: - - - Ability to use `nil` in a meaningful way - e.g. to indicate 'not set'. - - Standard `description` method to aid logging clarity during debug sessions. - - Extensible to include additional properties. - - @since 5.7 - */ -@interface PTDiffusionEnumeration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns the constant values offered by this enumeration. - - @return the constant values offered by this enumeration. - - @since 5.7 - */ -+(NSSet *)elements; - -/** - Compares the receiver to the given enumeration. - - @param enumeration The enumeration object with which to compare the receiver. - - @return `YES` if the enumeration is equal to the receiver, otherwise `NO`. - - @since 5.7 - */ --(BOOL)isEqualToEnumeration:(nullable PTDiffusionEnumeration *)enumeration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h deleted file mode 100644 index fa3029f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h +++ /dev/null @@ -1,1153 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - Key used in the `userInfo` dictionary of an array of NSError objects, having - the potential to convey more than one error encountered by an underlying - implementation. - - The associated value is an array of one or more NSError objects. - - @since 6.0 - */ -extern NSString *const PTDiffusionUnderlyingErrorsKey; - - -/** - @file PTDiffusionError.h - - Collection of errors that can be raised by the Apple Client SDK. - - Errors with values from 100 to 501 originate from the Diffusion server. - Remaining errors are unique to the Diffusion Apple Client SDK. - - @since 6.7 - */ -typedef NS_ENUM(NSInteger, PTDiffusionError) { - /** - * Communication with the server failed. - */ - PTDiffusionError_CommunicationFailure = 100, - - /** - * Communication with the server failed because the session is closed. - */ - PTDiffusionError_SessionClosed = 101, - - /** - * Communication with the server failed due to a service request timeout. - */ - PTDiffusionError_RequestTimeOut = 102, - - /** - * The request was rejected because the used principal has insufficient permissions. - */ - PTDiffusionError_AccessDenied = 103, - - /** - * The request was rejected because the requested service is unsupported for this client. - * @since 5.9 - */ - PTDiffusionError_Unsupported = 104, - - /** - * An application callback threw an exception. Check logs for more information. - * @since 5.9 - */ - PTDiffusionError_CallbackException = 105, - - /** - * An operation failed because invalid data was received. - * @since 6.0 - */ - PTDiffusionError_InvalidData = 106, - - /** - * The session does not exist on the server. - * @since 6.0 - */ - PTDiffusionError_NoSuchSession = 107, - - /** - * A datatype operation has failed due to incompatibility. - * @since 6.0 - */ - PTDiffusionError_IncompatibleDataType = 108, - - /** - * A message was not handled by the server. - * @since 6.0 - */ - PTDiffusionError_UnhandledMessage = 109, - - /** - * The cluster was repartitioning and the request could not be routed. - * @since 6.0 - */ - PTDiffusionError_ClusterRepartition = 110, - - /** - * A topic update could not be performed because the topic is managed by a component which prohibits external updates. - * @since 6.0 - */ - PTDiffusionError_IncompatibleState = 111, - - /** - * The cluster operation could not be routed. - * @since 6.0 - */ - PTDiffusionError_ClusterRouting = 112, - - /** - * A conflicting registration exists on the same branch of the topic tree. - * @since 6.5 - */ - PTDiffusionError_TopicTreeRegistrationConflict = 200, - - /** - * A conflicting registration exists. - */ - PTDiffusionError_HandlerConflict = 201, - - /** - * An invalid path was supplied. - */ - PTDiffusionError_InvalidPath = 202, - - /** - * Incompatible update. - */ - PTDiffusionError_IncompatibleUpdate = 500, - - /** - * Topic update failed. - */ - PTDiffusionError_UpdateFailed = 501, - - /** - * No topic was found. - */ - PTDiffusionError_NoSuchTopic = 9000, - - /** - * Topic is not a time series topic. - */ - PTDiffusionError_TopicIsNotTimeSeries = 9001, - - /** - * No times series event was found. - */ - PTDiffusionError_NoSuchEvent = 9002, - - /** - * A request has been rejected. - */ - PTDiffusionError_RejectedRequest = 9003, - - /** - * A topic could not be added because one already exists with a different specification. - */ - PTDiffusionError_TopicExistsMismatch = 9004, - - /** - * A topic could not be added because an invalid path was specified. - */ - PTDiffusionError_InvalidTopicPath = 9005, - - /** - * A topic could not be added because an invalid specification was supplied. - */ - PTDiffusionError_InvalidTopicSpecification = 9006, - - /** - * A topic could not be added because the topic would breach a licensing limit. - */ - PTDiffusionError_TopicLicenseLimit = 9007, - - /** - * A topic could not be added because an incompatible topic already exists at the specified path. - */ - PTDiffusionError_IncompatibleTopicExists = 9010, - - /** - * An unexpected error occurred when creating a topic. - */ - PTDiffusionError_UnexpectedTopicAddFailure = 9011, - - /** - * The topic update failed because the constraint was not satisfied. - */ - PTDiffusionError_UnsatisfiedConstraint = 9012, - - /** - * The topic update failed because the update stream is no longer valid. - */ - PTDiffusionError_InvalidUpdateStream = 9013, - - /** - * Parsing the JSON patch failed. - */ - PTDiffusionError_InvalidJsonPatch = 9014, - - /** - * The JSON patch failed to apply. This happens when attempting to parse an illegal CBOR value. - */ - PTDiffusionError_ApplyPatchFail = 9015, - - /** - * A remote server with the specified name already exists. - */ - PTDiffusionError_RemoteServerExists = 9016, - - /** - * An invalid branch mapping was supplied. - * @since 6.7 - */ - PTDiffusionError_InvalidBranchMappings = 9017, - - /** - * Overflow occurred during a function. - * @since 6.7 - */ - PTDiffusionError_Overflow = 20001, - - /** - * Error while deserializing information. - * @since 6.7 - */ - PTDiffusionError_DeserialisationError = 20002, - - /** - * Unexpected class detected when setting session properties. - * @since 6.7 - */ - PTDiffusionError_UnknownValueType = 20003, - - /** - * Unexpected value detected when setting session properties. - * @since 6.7 - */ - PTDiffusionError_UnexpectedValue = 20004, - - /** - * Invalid session filter. - * @since 6.7 - */ - PTDiffusionError_InvalidFilter = 20005, - - /** - * Unexpected encoding detected while deserialising data. - * @since 6.7 - */ - PTDiffusionError_UnknownEncoding = 20006, - - /** - * Unexpected value detected for enumeration in question. - * @since 6.7 - */ - PTDiffusionError_ValueNotInEnumeration = 20007, - - /** - * Error while serialising message from the transport layer. - * @since 6.7 - */ - PTDiffusionError_MessageSerialisationFailed = 20008, - - /** - * JSON cannot be encoded as JSON string due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_StringWillNotEncodeToUTF8Losslessly = 20009, - - /** - * Unable to read value as CBOR is empty. - * @since 6.7 - */ - PTDiffusionError_EmptyCBOR = 20010, - - /** - * Unhandled CBOR operation. - * @since 6.7 - */ - PTDiffusionError_UnhandledCBOR = 20011, - - /** - * Value has been read multiple times. - * @since 6.7 - */ - PTDiffusionError_SetReadValueCalledMultipleTimes = 20012, - - /** - * Unable to authenticate the principal, in the context of changing principal for the current session. - * @since 6.7 - */ - PTDiffusionError_AuthenticationFailure = 20013, - - /** - * An internal error occurred that prevented the session from creating the transport layer. - * @since 6.7 - */ - PTDiffusionError_SessionFailedToCreateTransport = 20014, - - /** - * Session has been closed by the transport layer. - * @since 6.7 - */ - PTDiffusionError_SessionClosedByTransport = 20015, - - /** - * Connection has been aborted by the reconnection strategy. - * @since 6.7 - */ - PTDiffusionError_ConnectionAbortedByReconnectionStrategy = 20016, - - /** - * Session has been closed due to inactivity. - * @since 6.7 - */ - PTDiffusionError_SessionClosedDueToInactivity = 20017, - - /** - * The received message type is not supported for routing. - * @since 6.7 - */ - PTDiffusionError_MessageTypeNotSupportedForRouting = 20018, - - /** - * Conversation ID was not found in the message headers. - * @since 6.7 - */ - PTDiffusionError_MessageHeadersMissingFetchConversationId = 20019, - - /** - * Reconnection has timed out. - * @since 6.7 - */ - PTDiffusionError_ReconnectionTimeout = 20020, - - /** - * Invalid string representation for session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdComponentCount = 20021, - - /** - * Invalid string representation for session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdCharacterCount = 20022, - - /** - * Invalid hex characters detected in session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdInvalidHexCharacters = 20023, - - /** - * Invalid value detected for token in session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdScanHigh = 20024, - - /** - * Invalid value detected for token in session id. - * @since 6.7 - */ - PTDiffusionError_SessionIdScanLow = 20025, - - /** - * Session lock has been cancelled. - * @since 6.7 - */ - PTDiffusionError_SessionLockCancelled = 20026, - - /** - * Incompatible datatypes. - * @since 6.7 - */ - PTDiffusionError_DataTypeNotCompatible = 20027, - - /** - * Unable to deserialize required information from stream. - * @since 6.7 - */ - PTDiffusionError_StreamExhausted = 20028, - - /** - * Failed to create topic view. - * @since 6.7 - */ - PTDiffusionError_FailedToCreateTopicView = 20029, - - /** - * CBOR functionality is not supported. - * @since 6.7 - */ - PTDiffusionError_CBORNotSupported = 20030, - - /** - * Unexpected item detected while parsing CBOR. - * @since 6.7 - */ - PTDiffusionError_CBORUnexpectedItem = 20031, - - /** - * Unable to append object as the container is immutable. - * @since 6.7 - */ - PTDiffusionError_CBORImmutableContainer = 20032, - - /** - * No instructions were parsed by the CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORMissingCodec = 20033, - - /** - * Insufficient instructions were parsed by the CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORUnfinishedContainer = 20034, - - /** - * Unable to append more objects as the document is already set. - * @since 6.7 - */ - PTDiffusionError_CBORDocumentAlreadySet = 20035, - - /** - * A map entry in the CBOR is incomplete. - * @since 6.7 - */ - PTDiffusionError_CBORIncompleteMapEntry = 20036, - - /** - * Unable to support 64-bit CBOR encoding in the current environment. - * @since 6.7 - */ - PTDiffusionError_CBOR64BitUnsupportedOnThisRuntime = 20037, - - /** - * Value is out of range. - * @since 6.7 - */ - PTDiffusionError_OutOfRange = 20038, - - /** - * Provided additional information was unhandled. - * @since 6.7 - */ - PTDiffusionError_CBORUnhandledInfoValue = 20039, - - /** - * Unable to parse string due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_CBORInvalidUTF8 = 20040, - - /** - * Parsing of a particular type is unhandled. - * @since 6.7 - */ - PTDiffusionError_CBORParsingUnhandledType = 20041, - - /** - * Unable to serialize a type using CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORSerialisationUnhandledType = 20042, - - /** - * Unable to serialize a class using CBOR codec. - * @since 6.7 - */ - PTDiffusionError_CBORSerialisationUnhandledClass = 20043, - - /** - * Maximum recursion depth reached while running CBOR serialisation. - * @since 6.7 - */ - PTDiffusionError_CBORSerialisationMaximumRecursionDepthExceeded = 20044, - - /** - * Unexpected item detected while parsing the binary delta. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaUnexpectedItem = 20045, - - /** - * Unsupported item for the purposes of binary delta parsing. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaUnsupportedItem = 20046, - - /** - * Binary delta parsing is expecting the size of the copy. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaPendingCopyLength = 20047, - - /** - * Binary delta parsing is expecting a break. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaPendingBreak = 20048, - - /** - * Value is out of range for the current runtime environment. - * @since 6.7 - */ - PTDiffusionError_BinaryDeltaOutOfRangeForRuntime = 20049, - - /** - * Delegate was not found. - * @since 6.7 - */ - PTDiffusionError_DelegateNotFound = 20050, - - /** - * Multiple topic constraints found. - * @since 6.7 - */ - PTDiffusionError_MultipleTopicConstraintsFound = 20051, - - /** - * Insufficient data for complete deserialisation. - * @since 6.7 - */ - PTDiffusionError_ConnectionResponseInsufficientData = 20052, - - /** - * Unknown value detected for a given field. - * @since 6.7 - */ - PTDiffusionError_ConnectionResponseUnknownValue = 20053, - - /** - * The service is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_InvalidState = 20054, - - /** - * Topic cache does not have enough information to resolve the received delta. - * @since 6.7 - */ - PTDiffusionError_NoOldValueToApplyDeltaTo = 20055, - - /** - * Topic cache does not have enough information to resolve the received delta type. - * @since 6.7 - */ - PTDiffusionError_NoDeltaTypeAvailable = 20056, - - /** - * Encoding of message headers to string failed. - * @since 6.7 - */ - PTDiffusionError_MessageHeadersToStringEncodingFailed = 20057, - - /** - * Unknown message type. - * @since 6.7 - */ - PTDiffusionError_UnknownMessageType = 20058, - - /** - * Update Stream has an invalid value set for its datatype. - * @since 6.7 - */ - PTDiffusionError_UpdateStreamInvalidNilValue = 20059, - - /** - * Unable to convert received class into expected class. - * @since 6.7 - */ - PTDiffusionError_UnsupportedValueClass = 20060, - - /** - * Unexpected type received. - * @since 6.7 - */ - PTDiffusionError_UnhandledTypeReceived = 20061, - - /** - * Unexpected string start detected. - * @since 6.7 - */ - PTDiffusionError_UnexpectedStringStart = 20062, - - /** - * Unexpected break detected. - * @since 6.7 - */ - PTDiffusionError_UnexpectedBreak = 20063, - - /** - * Unknown datatype for received name. - * @since 6.7 - */ - PTDiffusionError_UnknownDataTypeName = 20064, - - /** - * Received topic data which contradicts the topic cache. - * @since 6.7 - */ - PTDiffusionError_DataLossTopicPathNotInCache = 20065, - - /** - * Topic path is already present in the topic cache. - * @since 6.7 - */ - PTDiffusionError_InvalidSequenceOnCheckByPath = 20066, - - /** - * Topic id is already present in the topic cache. - * @since 6.7 - */ - PTDiffusionError_InvalidSequenceOnCheckById = 20067, - - /** - * Unable to generate notifier from stream. - * @since 6.7 - */ - PTDiffusionError_UnableToGenerateNotifier = 20068, - - /** - * Stream registry is closed. - * @since 6.7 - */ - PTDiffusionError_StreamRegistryClosed = 20069, - - /** - * Buffered data reader has been requested while transport layer is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_BufferedDataReaderRequestInvalidState = 20070, - - /** - * Connection response received while transport layer is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_ConnectionResponseInvalidState = 20071, - - /** - * Message received while transport layer is in an invalid state. - * @since 6.7 - */ - PTDiffusionError_MessageReceivedInvalidState = 20072, - - /** - * Error occurred for unknown reason. - * @since 6.7 - */ - PTDiffusionError_UnknownReason = 20073, - - /** - * Error occurred while appending data to the HTTP message. - * @since 6.7 - */ - PTDiffusionError_HTTPMessageAppendDataError = 20074, - - /** - * Invalid status code received. - * @since 6.7 - */ - PTDiffusionError_InvalidStatusCode = 20075, - - /** - * Authentication challenge handler is not set. - * @since 6.7 - */ - PTDiffusionError_MissingAuthenticationChallengeHandler = 20076, - - /** - * Maximum number of conversations has been reached. - * @since 6.7 - */ - PTDiffusionError_MaximumConversationsReached = 20077, - - /** - * Invalid start of a JSON pointer expression. - * @since 6.7 - */ - PTDiffusionError_JsonPointerExpressionInvalidStart = 20078, - - /** - * Failed to write to stream. - * @since 6.7 - */ - PTDiffusionError_FailedWriteToStream = 20079, - - /** - * Unknown stream error. - * @since 6.7 - */ - PTDiffusionError_UnknownStreamError = 20080, - - /** - * Failed to verify SSL. - * @since 6.7 - */ - PTDiffusionError_FailedToVerifySSL = 20081, - - /** - * Maximum message queue exceeded when writing to stream. - * @since 6.7 - */ - PTDiffusionError_WriteFailedMaxQueueSize = 20082, - - /** - * Failed to write to stream of fixed size or reached capacity. - * @since 6.7 - */ - PTDiffusionError_WriteFailedFixedSize = 20083, - - /** - * Failed to enable SSL. - * @since 6.7 - */ - PTDiffusionError_FailedToEnableSSL = 20084, - - /** - * Failed to configure SSL. - * @since 6.7 - */ - PTDiffusionError_FailedToConfigureSSL = 20085, - - /** - * Connection timeout. - * @since 6.7 - */ - PTDiffusionError_ConnectionTimeout = 20086, - - /** - * Unexpected HTTP response code. - * @since 6.7 - */ - PTDiffusionError_UnexpectedHttpResponseCode = 20087, - - /** - * Unexpected HTTP response header value. - * @since 6.7 - */ - PTDiffusionError_UnexpectedHttpResponseHeaderValue = 20088, - - /** - * Unexpected frame operation code. - * @since 6.7 - */ - PTDiffusionError_UnexpectedFrameOperationCode = 20089, - - /** - * Maximum payload length exceeded. - * @since 6.7 - */ - PTDiffusionError_MaximumPayloadLengthExceeded = 20090, - - /** - * Connection is closed. - * @since 6.7 - */ - PTDiffusionError_ConnectionClosed = 20091, - - /** - * Invalid frame start. - * @since 6.7 - */ - PTDiffusionError_InvalidFrameStart = 20092, - - /** - * Payload data is masked. - * @since 6.7 - */ - PTDiffusionError_MaskedPayloadData = 20093, - - /** - * Unable to support 64-bit encoding in the current environment. - * @since 6.7 - */ - PTDiffusionError_64BitNotSupportedForRuntime = 20094, - - /** - * Failed to initialize compression stream. - * @since 6.7 - */ - PTDiffusionError_ZlibInitFailed = 20095, - - /** - * Failed to process compression. - * @since 6.7 - */ - PTDiffusionError_ZlibProcessFailed = 20096, - - /** - * Failed to destroy compression stream. - * @since 6.7 - */ - PTDiffusionError_ZlibDestroyFailed = 20097, - - /** - * Compressed data is too small. - * @since 6.7 - */ - PTDiffusionError_ZlibCompressedDataTooSmall = 20098, - - /** - * Compressed data header is incorrect. - * @since 6.7 - */ - PTDiffusionError_ZlibCompressedDataHeaderIncorrect = 20099, - - /** - * Last record is not variable. - * @since 6.7 - */ - PTDiffusionError_LastRecordIsNotVariable = 20100, - - /** - * Last record has reached maximum occurrences. - * @since 6.7 - */ - PTDiffusionError_LastRecordHasReachedMaximumOccurrences = 20101, - - /** - * Last record has no occurrences to add field to. - * @since 6.7 - */ - PTDiffusionError_LastRecordHasNoOccurrencesToAddFieldTo = 20102, - - /** - * Last field is not variable. - * @since 6.7 - */ - PTDiffusionError_LastFieldIsNotVariable = 20103, - - /** - * Adding values would exceed maximum field occurrences. - * @since 6.7 - */ - PTDiffusionError_AddingValuesWouldExceedMaximumFieldOccurrences = 20104, - - /** - * Removal would violate the minimum number of occurrences. - * @since 6.7 - */ - PTDiffusionError_RemovalWouldViolateTheMinimumNumberOfOccurrences = 20105, - - /** - * Formatter failed to generate field. - * @since 6.7 - */ - PTDiffusionError_FormatterFailedToGenerate = 20106, - - /** - * String contains invalid characters. - * @since 6.7 - */ - PTDiffusionError_InvalidCharactersInString = 20107, - - /** - * Operation has resulted in an error. - * @since 6.7 - */ - PTDiffusionError_OperationError = 20108, - - /** - * String cannot be encoded due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_EncodeFromUTF8Error = 20109, - - /** - * Data cannot be decoded into string due to non-UTF8 characters. - * @since 6.7 - */ - PTDiffusionError_DecodeToUTF8Error = 20110, - - /** - * Field key's name is missing. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyMissingName = 20111, - - /** - * Field key is missing a closing bracket. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyMissingClosingBracket = 20112, - - /** - * Characters found after closing bracket. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyCharactersFoundAfterClosingBracket = 20113, - - /** - * Index in key could not be parsed. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyIndexCouldNotBeParsed = 20114, - - /** - * The key has too many parts. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldKeyTooManyKeyParts = 20115, - - /** - * The total number of records is less than the minimum required. - * @since 6.7 - */ - PTDiffusionError_InsufficientRecords = 20116, - - /** - * The total number of records exceeds the maximum allowed. - * @since 6.7 - */ - PTDiffusionError_TooManyRecords = 20117, - - /** - * The total number of fields is less than the minimum required. - * @since 6.7 - */ - PTDiffusionError_InsufficientFields = 20118, - - /** - * The model size exceeds the maximum size. - * @since 6.7 - */ - PTDiffusionError_RecordModelTooBig = 20119, - - /** - * The record size exceeds the maximum size. - * @since 6.7 - */ - PTDiffusionError_RecordTooBig = 20120, - - /** - * The total number of fields exceeds the maximum allowed. - * @since 6.7 - */ - PTDiffusionError_TooManyFields = 20121, - - /** - * The record size exceeds the maximum size. - * @since 6.7 - */ - PTDiffusionError_ResolvedRecordIndexExceedsModelSize = 20122, - - /** - * The total number of fields exceeds the maximum allowed. - * @since 6.7 - */ - PTDiffusionError_ResolvedFieldIndexExceedsModelSize = 20123, - - /** - * Root of the JSON is not a dictionary. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaRootIsNotObject = 20124, - - /** - * Value in JSON is not a string. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaNameIsNotString = 20125, - - /** - * Value in JSON is not a dictionary. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaValueIsNotObject = 20126, - - /** - * Value in JSON is not a number. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaValueIsNotNumber = 20127, - - /** - * Record has no fields. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaRecordHasNoFields = 20128, - - /** - * Value in JSON is not an array. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaValueIsNotArray = 20129, - - /** - * Records not found. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldRecordsNotDefined = 20130, - - /** - * Cannot find field with given name. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaCannotFindField = 20131, - - /** - * Record name is not defined. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaRecordNameNotDefined = 20132, - - /** - * Field name is not defined. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaFieldNameNotDefined = 20133, - - /** - * Key is not a string. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaKeyIsNotString = 20134, - - /** - * Unknown key. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaUnknownKey = 20135, - - /** - * Record not found. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaUnknownRecordName = 20136, - - /** - * Need to add a record before adding the fields. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderNoCurrentRecord = 20137, - - /** - * Field already exists with the same name. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderDuplicateFieldName = 20138, - - /** - * Cannot add a field after a variable multiplicity field. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderFieldAfterVariableMultiplicityField = 20139, - - /** - * There are no fields for the current record. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderEmptyFields = 20140, - - /** - * Records are empty. - * @since 6.7 - */ - PTDiffusionError_RecordBuilderEmptyRecords = 20141, - - /** - * Record already exists with the same name. - */ - PTDiffusionError_RecordBuilderDuplicateRecordName = 20142, - - /** - * The scale is not positive. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaScaleNotPositive = 20143, - - /** - * Field is negative. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaNegativeField = 20144, - - /** - * Field is invalid. - * @since 6.7 - */ - PTDiffusionError_RecordSchemaInvalidField = 20145, - - /** - * The string supplied has been encoded incorrectly. - * @since 6.2 - */ - PTDiffusionError_MisquotedInput = 20146, - - /** - * The filter was rejected. The message was not sent to any clients. - * @since 6.5 - */ - PTDiffusionError_SendToFilterRejected = 20147, - - /** - * The session was closed after being unexpectedly disconnected. - * @since 6.0 - */ - PTDiffusionError_Disconnected = 20148, - - /** - * The session was closed locally. - * @since 6.0 - */ - PTDiffusionError_ClosedByClient = 20149, - - /** - * There was a problem when establishing a session. The session is closed. No further operations are possible. - * @since 6.0 - */ - PTDiffusionError_Establishment = 20150, - - /** - * The session operation failed due to a security constraint. Repeating the operation with the same security credentials is likely to fail. - * @since 6.0 - */ - PTDiffusionError_Security = 20151, - - /** - * The session operation failed due to an unrecognized response code. - * @since 6.3 - */ - PTDiffusionError_UnrecognizedResponseCode = 20152, - - /** - * The session was closed remotely. - * @since 6.6 - */ - PTDiffusionError_ClosedByServer = 20153, - - /** - * Server unexpectedly aborted. - * @since 6.0 - */ - PTDiffusionError_ServerAborted = 20154, - - /** - * Dictionary does not contain requested key. - * @since 6.7 - */ - PTDiffusionError_KeyNotFoundInDictionary = 20155, - -}; - -NS_ASSUME_NONNULL_END - diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h deleted file mode 100644 index 58d3cc9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes wishing to listen to error notifications. - - Error reports indicate that an unexpected condition has occurred. - They are used sparingly. Error conditions that occur in the context of an API - operation and that an application can reasonably handle are reported to - operation-specific delegates or completion handlers, not as error reports. - - A client can typically do nothing about an error report other than to report it - for diagnosis. The server log should be examined for further information. - - @note The PTDiffusionSessionErrorHandler protocol was deprecated in 5.9 and - removed in 6.0. - - @since 6.0 - */ -@protocol PTDiffusionErrorListener - -/** - Called when an error has been reported. - - @param error The error that was reported. - - @since 6.0 - */ --(void)diffusionDidReportError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h deleted file mode 100644 index c93f962..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h +++ /dev/null @@ -1,43 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSession; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A feature is a unit of functionality that is available to a client session. - - This is the base interface for features that may be added directly to a client session. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionFeature : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The session associated with the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly, weak) PTDiffusionSession* session; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h deleted file mode 100644 index b086393..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h +++ /dev/null @@ -1,428 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionFetchResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A parameterised query that can be used to search the topic tree. - - A new request can be created using the `fetchRequest` - method and modified to specify a range of topics and/or - various levels of detail. The request can then be issued to the server - using the `fetch` method - supplying a topic selector which specifies the selection of topics. The - results are returned via a `completionHandler`. - - As a minimum, the path and type of each selected topic will be returned. - It is also possible to request that the topic values - and/or properties are returned. - - The topics selected by the topic selector can be further restricted by - range. A range is defined by a start path and an end path, and contains - all paths in-between in path order. Given a topic tree containing the - topics: - -
-    a, a/b, a/c, a/c/x, a/c/y, a/d, a/e, b, b/a/x, b/b/x, c
- 
- - the range from `a/c/y` to `b/a/x` includes the topics with - paths: - -
-    a/c/x, a/c/y, a/d, a/e, b, b/a/x
- 
- - The start point of a range can be specified using #fromTopicPath: or - #afterTopicPath: and an end point using #toTopicPath: or #beforeTopicPath:. - #fromTopicPath: and #toTopicPath: include any topic with the specified path in - the selection, whereas #afterTopicPath: and #beforeTopicPath: are non-inclusive - and useful for paging through a potentially large range of topics. If no start - point is specified, the start point is assumed to be the logical beginning of - the topic tree. Similarly, if no end point is specified, the end point is the - logical end of the topic tree. Ranges should be within the scope indicated by - the topic selector used when issuing the fetch. - - As a minimum, the path and type of each topic selected will be returned. It is - also possible to request that the topic values and/or properties are returned. - - The topic types selected are naturally constrained by the data type indicated - when the fetch is requested. So if - PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: - is used, only PTDiffusionTopicType_String topics will be selected. However, if - PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: - is used, all types compatible with PTDiffusionJSON will be selected including - PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 and - PTDiffusionTopicType_Double. - - To select topic types when values are not required, or to further constrain the - selection when values are required, it is also possible to specify exactly - which topic types to select. - - A limit on the number of results returned can be specified using #first:. This - is advisable when the result set could potentially be large. When such a limit - is used then the result will indicate whether more results for the same - selection would be available via the PTDiffusionFetchResult#more property. - - The request can be sent to the server using one of the fetch methods provided - by data type extensions. Results are returned in path order, earliest path - first, starting from the beginning of any range specified. - - It is also possible to request results from the end of the range indicated by - specifying a limit to the number of results using #last:. This returns up to - the specified number of results from the end of the range, in path order. This - is useful for paging backwards through a range of topics. - - Routing topics are **not** supported, and if encountered will be ignored (i.e. - treated as if they did not exist). - - Instances of this class are immutable and can be safely shared and reused. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Specifies a logical start point within the topic tree. - - If specified, only results for topics with a path that is lexically 'after' the - specified path will be returned. - - This is the non-inclusive equivalent of #fromTopicPath: and if used will - override any previous #fromTopicPath: or #afterTopicPath: constraint. - - @param topicPath The topic path after which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics after the specified path (not inclusive). - - @since 6.2 - */ --(instancetype)afterTopicPath:(NSString *)topicPath; - -/** - Specifies a logical end point within the topic tree. - - If specified, only results for topics with a path that is lexically 'before' - the specified path will be returned. - - This is the non-inclusive equivalent of #toTopicPath: and if used will override - any previous #toTopicPath: or #beforeTopicPath: constraint. - - @param topicPath The topic path before which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics before the specified path (not inclusive). - - @since 6.2 - */ --(instancetype)beforeTopicPath:(NSString *)topicPath; - -/** - Specifies a logical start point within the topic tree. - - If specified, only results for topics with a path that is lexically equal to or - 'after' the specified path will be returned. - - This is the inclusive equivalent of #afterTopicPath: and if used will override - any previous #afterTopicPath: or #fromTopicPath: constraint. - - @param topicPath The topic path from which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics from the specified path onwards (inclusive). - - @since 6.2 - */ --(instancetype)fromTopicPath:(NSString *)topicPath; - -/** - Specifies a logical end point within the topic tree. - - If specified, only results for topics with a path that is lexically equal to or - 'before' the specified path will be returned. - - This is the inclusive equivalent of #beforeTopicPath: and if used will override - any previous #beforeTopicPath: or #toTopicPath: constraint. - - @param topicPath The topic path to which results are to be returned. - - @return A new fetch request derived from this fetch request but selecting only - topics including and before the specified path (inclusive). - - @since 6.2 - */ --(instancetype)toTopicPath:(NSString *)topicPath; - -/** - Specifies that all properties associated with each topic's - PTDiffusionTopicSpecification should be returned. - - @return A new fetch request derived from this fetch request but specifying that - topic specification properties should be returned. - - @since 6.2 - */ --(instancetype)withProperties; - - -/** - Include the details of reference topics that are not yet published. - - Topic views that use the {@code delay by} clause - create reference topics in an unpublished state. The topics are - published once the delay time has expired. A topic in the - unpublished state prevents a lower priority topic view from creating - a reference topic with the same path. - - A reference topic in the unpublished state which matches the query - will only be included in the fetch results if the session has - {@code PTDiffusionPathPermission.readTopic} permission for the - reference's source topic as well as {@code PTDiffusionPathPermission.readTopic} - permission for the reference topic. Requiring {@code PTDiffusionPathPermission.readTopic} - permission for the source topic ensures less privileged sessions - cannot derive information from the existence of the reference topic - before the delay time has expired. - - @return a new fetch request derived from this fetch request, - additionally specifying that unpublished reference topics - should be included in the results - - @since 6.5 - */ --(instancetype)withUnpublishedDelayedTopics; - - -/** - Specifies a maximum number of topic results to be returned from the start of - the required range. - - If this is not specified, the number of results returned will only be limited - by other constraints of the request. - - This should be used to retrieve results in manageable batches and prevent very - large result sets. - - If there are potentially more results that would satisfy the other constraints, - then the fetch result will indicate so via the PTDiffusionFetchResult#hasMore - property. - - Either this or #last: may be specified. This will therefore override any - previous #last: or #first: constraint. - - @param number The maximum number of results to return from the start of the - range. - - @return A new fetch request derived from this fetch request but selecting only - the number of topics specified from the start of the range. - - @exception NSInvalidArgumentException if number is greater than `INT32_MAX`. - - @since 6.2 - */ --(instancetype)first:(UInt32)number; - -/** - Specifies a maximum number of topic results to be returned from the end of the - required range. - - This is similar to #first: except that the specified number of results are - returned from the end of the range. This is useful for paging backwards through - a range of topics. Results are always returned in topic path order (not reverse - order). - - Either this or #first: may be specified. This will therefore override any - previous #first: or #last: constraint. - - @param number The maximum number of results to return from the end of the - range. - - @return A new fetch request derived from this fetch request but selecting only - the number of topics specified from the end of the range. - - @exception NSInvalidArgumentException if number is greater than `-INT32_MIN`. - - @since 6.2 - */ --(instancetype)last:(UInt32)number; - -/** - Specifies the maximum data size of the result set. - - This may be used to constrain the size of the result. If not specified then by - default the maximum message size for the session (as specified by - PTDiffusionSessionConfiguration#maximumMessageSize ) is used. - - @param size The maximum size of the result set in bytes. If a value greater - than the session's maximum message size is specified, the maximum message size - will be used. - - @return A new fetch request derived from this fetch request but constraining - the size of the result to the specified maximum. - - @exception NSInvalidArgumentException if size is greater than `INT32_MAX`. - - @since 6.2 - */ --(instancetype)maximumResultSize:(UInt32)size; - -/** - Specifies that only topics of the specified topic types should be returned. - - If this is not specified, #allTypes will be returned (unless constrained by - value data type). - - If the specified topic type matches the event type of a time series topic, - it will also be returned. The value will be delivered without the associated - metadata. To specify all time series topics use {@link - PTDiffusionTopicType_TimeSeries}. - - This may be used instead to further constrain the results when already - constraining by values. For example, you can use - PTDiffusionFetchRequest#withJSONValues then specify PTDiffusionTopicType_JSON - here to ensure that only JSON topics are returned and not those topics that are - logically value subtypes of JSON (e.g. PTDiffusionTopicType_String). - - If already constraining by value data type then the topic types specified here - must be compatible with the value class specified or the event type for time - series topics. - - PTDiffusionTopicType_Routing may not be specified. - - @param topicTypes Topic types to be selected, boxed as NSNumber instances. - - @return A new fetch request derived from this fetch request but specifying that - only topics of the specified topic types should be returned. - - @throws IllegalArgumentException if invalid topic types are specified - - @since 6.2 - */ --(instancetype)topicTypes:(NSSet *)topicTypes; - -/** - Specifies a limit on the number of results returned for each deep - branch. - - A deep branch has a root path that has a number of parts equal to the - `deep_branch_depth` parameter. The `deep_branch_limit` specifies the - maximum number of results for each deep branch. - - This method is particularly useful for incrementally exploring a - topic tree from the root, allowing a breadth-first search strategy. - - For example, given a topic tree containing the topics with the - following paths: - -
- x/0
- x/x/1
- x/x/x/2
- y/y/y/y/3
- y/y/y/4
- z/5
- z/z/6
- 
- - Then - -
- PTDiffusionFetchRequest *const request =
- [session.topics.fetchRequest limitDeepBranches:1
-                                          limit:1];
-
- [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
-                                     completionHandler:
- ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
- 
- - will return results with the paths `x/0`, `y/y/y/y/3`, - and `z/5`. The application can then determine the roots of the - tree are `x`, `y`, and `z`. - - The `deepBranchLimit` parameter can usefully be set to - `0`. For example, given the same example topic tree, - -
- PTDiffusionFetchRequest *const request =
- [session.topics.fetchRequest limitDeepBranches:3
-                                          limit:0];
-
- [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
-                                     completionHandler:
- ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
- 
- - will only return results having paths with fewer than three parts; - namely `x/0`, and `z/5`. - - The fetch result does not indicate whether this option caused some - results to be filtered from deep branches. It has no affect on the - ` result. If the result set - contains `deepBranchLimit` results for a particular deep - branch, some topics from that branch may have been filtered. - - @param deepBranchDepth The number of parts in the root path of a - branch for it to be considered deep - - @param deepBranchLimit The maximum number of results to return for - each deep branch - - @return A new fetch request derived from this fetch request but restricting - the number of results for deep branches. - - @since 6.4 - */ --(instancetype)limitDeepBranches:(UInt32)deepBranchDepth - limit:(UInt32)deepBranchLimit; - -/** - A constant set of all topic types that can be fetched. - - @return Set of all topic types that can be fetched. - - @since 6.2 - */ -+(NSSet *)allTypes; - -/** - Sends a fetch request to the server, specifying that values should not be - returned for selected topics. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by #fromTopicPath: / - #afterTopicPath: and/or #toTopicPath: / #beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.2 - */ --(void)fetchWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h deleted file mode 100644 index 1fd16cf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -@class PTDiffusionFetchTopicResult; - -/** - @brief Base class for results from fetch operations issued to the server. - - A fetch operation is issued using a PTDiffusionFetchRequest. - - @since 6.2 - */ -@interface PTDiffusionFetchResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * results; - -/** - Indicates whether the fetch could have returned more results if it had not been - constrained by the PTDiffusionFetchRequest#first: , - PTDiffusionFetchRequest#last: or - PTDiffusionFetchRequest#maximumResultSize: limits. - - `YES` if more results could have been returned, otherwise `NO`. - - @since 6.2 - */ -@property(nonatomic, readonly, getter=hasMore) BOOL more; - - - -/** - The number of elements in the fetch result - - @return the size of the results list - - @since 6.5 - */ --(NSUInteger)size; - - -/** - Return `YES` if the result contains zero elements - - @return `YES` if result list is empty - - @since 6.5 - */ --(BOOL)isEmpty; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h deleted file mode 100644 index a13ac71..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h +++ /dev/null @@ -1,52 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTopicSpecification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a fetch operation for a single selected - topic. - - @since 6.2 - */ -@interface PTDiffusionFetchTopicResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The topic path. - - @since 6.2 - */ -@property(nonatomic, readonly) NSString* path; - -/** - The topic specification. - - If the request specified PTDiffusionFetchRequest#withProperties, the result - reflects the topic's specification and can be used to create an identical - topic. If the request did not specify that properties were to be included, the - specification's property map will be empty. - - @since 6.2 - */ -@property(nonatomic, readonly) PTDiffusionTopicSpecification* specification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h deleted file mode 100644 index 5597758..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result of a querying the server for the - session properties of a particular session ID or session filter - - @since 6.5 - */ -@interface PTDiffusionGetSessionPropertiesResult : NSObject - - -+(instancetype)new NS_UNAVAILABLE; - - --(instancetype)init NS_UNAVAILABLE; - - -/** - Map of the requested session property values - - @since 6.5 - */ -@property(nonatomic, readonly) NSDictionary * properties; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h deleted file mode 100644 index 4d85fa4..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h +++ /dev/null @@ -1,139 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Permissions that protect globally scoped, access-controlled operations. - - There is no related object, permission is granted globally. - - @see PTDiffusionPathPermission - - @since 6.3 - */ -@interface PTDiffusionGlobalPermission : PTDiffusionEnumeration - -/** - Add an authentication handler. - - @return Instance indicating the permission to add an authentication handler. - - @since 6.3 - */ -+(instancetype)authenticate; - -/** - List or listen to client sessions. - - @return Instance indicating the permission to list of listen to client sessions. - - @since 6.3 - */ -+(instancetype)viewSession; - -/** - Alter a client session. This covers a range of actions including: - - - subscribe session to topic - - throttle session - - enable conflation for session - - close session - - @return Instance indicating permission to alter a client session. - - @since 6.3 - */ -+(instancetype)modifySession; - -/** - Required to register any server-side handler. - - This restricts clients from consuming resources by registering long lived - handlers (or example, addMessageHandler). Typically these would never be called - due to lack of other permissions. - - @return Instance indicating permission to register any server-side handler. - - @since 6.3 - */ -+(instancetype)registerHandler; - -/** - View the server's runtime state - for example, read metrics. - - @return Instance indicating permission to view the server's runtime state. - - @since 6.3 - */ -+(instancetype)viewServer; - -/** - Change the server's runtime state - for example, shut it down. - - @return Instance indicating permission to change the server's runtime state. - - @since 6.3 - */ -+(instancetype)controlServer; - -/** - Read the security configuration. - - @return Instance indicating permission to read the security configuration. - - @since 6.3 - */ -+(instancetype)viewSecurity; - -/** - Change the security configuration. - - @return Instance indicating permission to change the security configuration. - - @since 6.3 - */ -+(instancetype)modifySecurity; - -/** - A permission that is unsupported by the session. - - @return Instance indicating an unsupported permission by the session. - - @since 6.3 - */ -+(instancetype)unknownGlobalPermission; - -/** - Read topic views. - - @return Instance indicating the permission to read topic views. - - @since 6.3 - */ -+(instancetype)readTopicViews; - -/** - Modify topic views. - - @return Instance indicating the permission to modify topic views. - - @since 6.3 - */ -+(instancetype)modifyTopicViews; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h deleted file mode 100644 index b8d54a2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionHTTPAuthenticationChallengeHandler; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The protocol implemented by classes providing authentication challenge - handler implementations for HTTP connections. - - Objects conforming to this protocol must be supplied with the session - configuration in order to support HTTP proxies that require authentication. - - @since 6.0 - */ -@protocol PTDiffusionHTTPAuthentication - -/** - Create a challenge handler to be responsible for responding to authentication - challenges during connection negotiation. - - @return the challenge handler - - @since 6.0 - */ --(id)createHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h deleted file mode 100644 index ff4d980..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h +++ /dev/null @@ -1,65 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionHTTPAuthenticationChallengeStatus; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An HTTP response from a server connection request, challenging the - client to authenticate. - - @see PTDiffusionHTTPAuthenticationChallengeHandler - - @since 6.0 - */ -@interface PTDiffusionHTTPAuthenticationChallenge : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The status received from the HTTP server. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionHTTPAuthenticationChallengeStatus* status; - -/** - The headers received from the HTTP server. - - @since 6.0 - */ -@property(nonatomic, readonly) NSDictionary* headers; - -/** - Compares the receiver to the given challenge. - - @param challenge The HTTP authentication challenge object with which to compare - the receiver. - - @return `YES` if the challenge is identical to the receiver, otherwise `NO`. - - @note Two challenge objects are equal if they have the same statusCode and - headers properties. The reasonPhrase property is not used when evaluating - equality. - - @since 6.0 - */ --(BOOL)isEqualToHTTPAuthenticationChallenge:(nullable PTDiffusionHTTPAuthenticationChallenge *)challenge; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h deleted file mode 100644 index e773f48..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionHTTPAuthenticationChallenge; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The protocol implemented by classes providing an authentication challenge - handler implementation for HTTP connections. - - @see PTDiffusionHTTPAuthentication - - @since 6.0 - */ -@protocol PTDiffusionHTTPAuthenticationChallengeHandler - -/** - Called when a challenge is received. The receiver must return a response to the - challenge. - - @param challenge The challenge received from the HTTP server, encapsulating - Status-Code and headers. - - @return HTTP headers to be sent in response to the challenge. - - @exception NSInvalidArgumentException If challenge is `nil`. - - @since 6.0 - */ --(NSDictionary*)responseForChallenge:(PTDiffusionHTTPAuthenticationChallenge *)challenge; - -/** - The maximum number of HTTP transactions permitted before authentication fails. - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger maximumConversations; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h deleted file mode 100644 index 139476b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h +++ /dev/null @@ -1,79 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An HTTP Status received as part of an authentication challenge. - - @see PTDiffusionHTTPAuthenticationChallenge - - @since 6.0 - */ -@interface PTDiffusionHTTPAuthenticationChallengeStatus : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The server responded to the connection request with HTTP Status-Code 401. - - @return The HTTP authentication challenge status response from the server. - - @note The reasonPhrase property for the static instance returned by this - method will always be `nil`. - - @since 6.0 - */ -+(instancetype)unauthorized; - -/** - The server responded to the connection request with HTTP Status-Code 407. - - @return The HTTP authentication challenge status response from the server. - - @note The reasonPhrase property for the static instance returned by this - method will always be `nil`. - - @since 6.0 - */ -+(instancetype)proxyAuthenticationRequired; - -/** - The HTTP Reason-Phrase provided by the server with the response that generated - this status. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) NSString* reasonPhrase; - -/** - Compares the receiver to the given status. - - @param status The HTTP authentication challenge status object with which to - compare the receiver. - - @return `YES` if the status is identical to the receiver, otherwise `NO`. - - @note Two status objects are equal if they mean the same thing. - The reasonPhrase property is not used when evaluating equality. - - @since 6.0 - */ --(BOOL)isEqualToHTTPAuthenticationChallengeStatus:(nullable PTDiffusionHTTPAuthenticationChallengeStatus *)status; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h deleted file mode 100644 index 966605d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionHTTPAuthentication; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Connection details for an HTTP proxy to be tunneled through in order to - reach the Diffusion server. - - @see PTDiffusionSessionConfiguration - - @since 6.0 - */ -@interface PTDiffusionHTTPProxyConfiguration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a HTTP proxy authentication object initialized with the given host and port. - - @param host The host name of the HTTP proxy. - - @param port The port of the HTTP proxy. - - @return A HTTP proxy authentication object initialized with the given host and port. - - @exception NSInvalidArgumentException If host is `nil`. - - @since 6.0 - */ --(instancetype)initWithHost:(NSString *)host - port:(UInt32)port NS_DESIGNATED_INITIALIZER; - -/** - Returns a HTTP proxy authentication object initialized with the given host, port - and authentication. - - @param host The host name of the proxy. - - @param port The TCP port of the proxy. - - @param authentication The provider to be used if the proxy requests authentication. - - @return A HTTP proxy authentication object initialized with the given host, port - and authentication. - - @exception NSInvalidArgumentException If either host or authentication is `nil`. - - @see PTDiffusionBasicHTTPProxyAuthentication - - @since 6.0 - */ --(instancetype)initWithHost:(NSString *)host - port:(UInt32)port - authentication:(id)authentication NS_DESIGNATED_INITIALIZER; - -/** - The host name of the proxy. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* host; - -/** - The TCP port of the proxy. - - @since 6.0 - */ -@property(nonatomic, readonly) UInt32 port; - -/** - The provider to be used if the proxy requests authentication. - - @see PTDiffusionBasicHTTPProxyAuthentication - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) id authentication; - -/** - Compares the receiver to the given configuration. - - @param configuration The HTTP proxy configuration object with which to compare - the receiver. - - @return `YES` if the configuration is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToHTTPProxyConfiguration:(nullable PTDiffusionHTTPProxyConfiguration *)configuration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h deleted file mode 100644 index 28b1664..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h +++ /dev/null @@ -1,56 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - Representation of the HTTP Response received from the server. - */ -@interface PTDiffusionHTTPResponse : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @brief Status code as defined by RFC 2616, section 6.1.1. - - The Status-Code element is a 3-digit integer result code of the - attempt to understand and satisfy the request. - - */ -@property(nonatomic, readonly) NSInteger statusCode; - -/** - @brief Reason Phrase as defined by RFC 2616, section 6.1.1. - - The Reason-Phrase is intended to give a short textual description of the Status-Code. - */ -@property(nonatomic, readonly) NSString* reasonPhrase; - -/** -@brief The headers of the HTTP response. - */ -@property(nonatomic, readonly) NSDictionary* headers; - -/** - @brief The message body of the HTTP response - - Will be nil if there was no message body. - */ -@property(nonatomic, readonly, nullable) NSData* bodyData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h deleted file mode 100644 index 2a6daf1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h +++ /dev/null @@ -1,829 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionBinaryDelta; -@class PTDiffusionJSONFetchResult; -@class PTDiffusionJSONTimeSeriesQueryResult; -@class PTDiffusionJSONUpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionResponse; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionJSONRequestDelegate; -@protocol PTDiffusionJSONRequestStreamDelegate; -@protocol PTDiffusionJSONSessionResponseStreamDelegate; -@protocol PTDiffusionJSONValueStreamDelegate; -@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-implementations" - - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An immutable JSON value with support for both binary and JSON deltas. - - JSON is "JavaScript Object Notation", a lightweight data-interchange format. - See [www.json.org](http://www.json.org). - - Internally the value is stored and transmitted not as a JSON string, but in - CBOR format to reduce memory and network overhead. CBOR (Concise Binary - Object Representation) is a standardized format for binary representation of - structured data defined by [RFC 7049](https://tools.ietf.org/html/rfc7049). - See [www.cbor.io](http://www.cbor.io). - - Each JSON value is represented as a single CBOR data item. CBOR supports - composite data types just like JSON, so this data item can be an array or a - map of other data items. The `null` value is represented by the CBOR `Null` - value. - - @since 5.9 - */ -@interface PTDiffusionJSON : PTDiffusionBytes - -/** - Return a JSON object initialized with the given object. - - Object hierarchies passed to this method must be constructed from Foundation - objects which can be logically encoded with CBOR. This provides flexibility - above and beyond the basic capabilities of a 'pure JSON' encoding as well as - being less restrictive than the capabilities of NSJSONSerialization. - - This means: - - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, - `NSDictionary` or `NSNull`. - - Dictionary keys may be instances of any supported type. - - The top level object may be of any supported type. - - Being more permissive than NSJSONSerialization in that: - - `NSData` instances may be used. - - Dictionary keys are not restricted to instances of `NSString`. - - The top level object is not restricted to being a container (`NSArray` or - `NSDictionary`). - - Applications may take advantage of the more permissive nature of the - underlying CBOR encoding by using these capabilities, assuming: - 1. Encoding to JSON string is not required. - 2. Other client applications, perhaps developed in a different language and - against a different library, can also support the capabilities. - - @param object The object to be serialized to CBOR and stored internally to - represent the receiver. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return JSON object initialized with the given object. - - @exception NSInvalidArgumentException Raised if the `object` argument is `nil`. - - @since 5.9 - */ --(nullable instancetype)initWithObject:(id)object - error:(NSError **)error; - -/** - Convenience wrapper around initWithObject:error: that first uses - NSJSONSerialization to generate the object to be serialized. - - @param jsonData A data object containing JSON data. See Apple's - NSJSONSerialization documentation for detailed information regarding - supported encodings. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return JSON object initialized with the given JSON data. - - @exception NSInvalidArgumentException Raised if the `jsonData` argument is `nil`. - - @since 5.9 - */ --(nullable instancetype)initWithJSONData:(NSData *)jsonData - error:(NSError **)error; - -/** - Convenience wrapper around initWithJSONData:error: that first encodes the - given string as UTF-8 (NSUTF8StringEncoding), requiring lossless conversion. - - @param jsonString A JSON string. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return JSON object initialized with the given JSON string. - - @exception NSInvalidArgumentException Raised if the `jsonString` argument is `nil`. - - @since 6.0 - */ --(nullable instancetype)initWithJSONString:(NSString *)jsonString - error:(NSError **)error; - -/** - Compare the receiver's JSON value with another (e.g. an earlier version) to - create a binary delta. - - @param json The original to which the delta should be able to be applied in - order to generate the value represented by the receiver. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return A delta representing the difference between json and the receiver, - or `nil` if there was an error (e.g. either the original or the receiver - don't represent a valid JSON value). - - @exception NSInvalidArgumentException Raised if the json argument is `nil`. - - @since 5.9 - */ --(nullable PTDiffusionBinaryDelta *)binaryDiffFromJSON:(PTDiffusionJSON *)json - error:(NSError **)error; - -/** - Apply a binary delta to the receiver's JSON value to create a new value. - - @param delta The delta describing the changes to be applied to the receiver's - value in order to create the value to be returned. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return The new JSON value, or `nil` if there was an error (e.g. the receiver - does not represent a valid JSON value). - - @exception NSInvalidArgumentException Raised if the delta argument is `nil`. - - @since 5.9 - */ --(nullable PTDiffusionJSON *)applyDelta:(PTDiffusionBinaryDelta *)delta - error:(NSError **)error; - -/** - Check whether the receiver is valid. - - @param error If not valid, upon return contains an `NSError` object that - describes the problem. - - @return `YES` if this instance is valid. - - @since 5.9 - */ --(BOOL)validateWithError:(NSError **)error; - -/** - Creates a Foundation object from the receiver's JSON value. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return An object, or `nil` if there was an error (e.g. the receiver doesn't - represent a valid JSON value). - - @since 5.9 - */ --(nullable id)objectWithError:(NSError **)error; - -/** - Convenience wrapper around objectError: that then uses NSJSONSerialization to - generate the JSON data. - - @param error If an error occurs, upon return contains an `NSError` object - that describes the problem. - - @return A data object containing JSON, or `nil` if there was an error (e.g. - the receive doesn't represent a valid JSON value or cannot be converted to - pure JSON). - - @since 5.9 - */ --(nullable NSData*)JSONDataWithError:(NSError **)error; - -/** - A request that can be used to send this value using messaging. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRequest* request; - -/** - A response that can be used to send this value using messaging. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionResponse* response; - -/** - An update constraint requiring the current value of a topic to match this - value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; - -/** - Creates a value stream capable of receiving JSON values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -+(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving JSON time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving JSON requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving JSON requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving JSON responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; - -/** - Compares the receiver to the given JSON. - - @param json The JSON object with which to compare the receiver. - - @return `YES` if the data in json is equal to the contents of the receiver, otherwise `NO`. - - @note Two JSON objects are equal if they are internally represented by the - same CBOR encoding. - - @since 5.9 - */ --(BOOL)isEqualToJSON:(nullable PTDiffusionJSON *)json; - -@end - -/** - @brief Extension adding support for responding to requests using JSON values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionJSON) - -/** - Dispatch a response to a request. - - @param json The value to send in response. - - @exception NSInvalidArgumentException Raised if the json argument is `nil`. - - @since 6.0 - */ --(void)respondWithJSON:(PTDiffusionJSON *)json; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a JSON response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionJSON) - -/** - Send a request for which a JSON response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a JSON response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using JSON values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) - -/** - Update a time series topic by appending a new JSON value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - JSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - - -/** - Update a time series topic by appending a new JSON value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - JSONValue:(PTDiffusionJSON *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new JSON value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - JSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have JSON values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - JSONCompletionHandler:(void (^)(PTDiffusionJSONTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with JSON. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionJSON) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with JSON. - - The JSON data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as - JSON will be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchJSONValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionJSONFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with JSON values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionJSON) - -/** - Sets a topic to a specified JSON value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toJSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified JSON value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toJSONValue:(PTDiffusionJSON *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a JSON value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToJSONValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a JSON value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToJSONValue:(PTDiffusionJSON *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Creates an update stream to use for updating a specific topic with JSON values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If path is `nil`. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with JSON values - if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If either argument is `nil`. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - JSON values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - JSON values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#json. - - @since 6.3 - */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -NS_ASSUME_NONNULL_END - -#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h deleted file mode 100644 index 5f16be3..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSONFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a JSON fetch operation issued to the - server. - - A JSON fetch operation is issued using the - PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionJSONFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * jsonResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h deleted file mode 100644 index 787a14f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a JSON fetch operation for a single - selected topic. - - A JSON fetch operation is issued using the - PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionJSONFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) PTDiffusionJSON* json; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h deleted file mode 100644 index 7564651..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Result of calls to the Partial Update feature. - - See PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:completionHandler: and - PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:withConstraint:completionHandler: - - Check `failedOperation` to determine whether any of the operations failed. - - @since 6.4 - - */ -@interface PTDiffusionJSONPatchResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @brief an optional NSNumber which if non-null, contains the index of - the first operation which failed - */ -@property(nonatomic, nullable, readonly) NSNumber *failedOperation; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h deleted file mode 100644 index 1b2499d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling JSON messaging requests with a - handler registered at the server. - - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionJSONRequestDelegate - -/** - Called when a JSON request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param json The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithJSON:(PTDiffusionJSON *)json - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h deleted file mode 100644 index acdbb12..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling JSON messaging requests. - - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionJSONRequestStreamDelegate - -/** - Called when a JSON request has been received. - - @param stream The stream that received the request. - - @param json The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithJSON:(PTDiffusionJSON *)json - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h deleted file mode 100644 index 04576c9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling JSON messaging responses from - individual sessions. - - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionJSONSessionResponseStreamDelegate - -/** - Called when a session responds to a request with JSON. - - @param stream The stream that received the response. - - @param json The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithJSON:(PTDiffusionJSON *)json - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h deleted file mode 100644 index 9ee409b..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as JSON. - - @since 6.0 - */ -@interface PTDiffusionJSONTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The JSON value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionJSON* json; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index ef818ea..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSONTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - JSON values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with JSON values. - - @since 6.0 - */ -@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a JSON value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldJsonEvent The previous event. If `nil` then this is the first event. - - @param newJsonEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldJSONEvent:(nullable PTDiffusionJSONTimeSeriesEvent *)oldJsonEvent - newJSONEvent:(PTDiffusionJSONTimeSeriesEvent *)newJsonEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h deleted file mode 100644 index 696bf4e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSONTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of JSON time series events. - - @since 6.0 - */ -@interface PTDiffusionJSONTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The JSON time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* jsonEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h deleted file mode 100644 index ab37a71..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with JSON - values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionJSONUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionJSON* value; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either value or completionHandler is - `nil`. - - @since 6.3 - */ --(BOOL) setValue:(PTDiffusionJSON *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h deleted file mode 100644 index 930dd93..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionJSON; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for JSON - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for JSON - topics. - - @see PTDiffusionJSON - - @since 5.9 - */ -@protocol PTDiffusionJSONValueStreamDelegate - -/** - An update was received for a topic path handled by a JSON value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldJson The previous value. If `nil` then this is the first value. - - @param newJson The new value derived from the last update received from the - server. - - @since 5.9 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldJSON:(nullable PTDiffusionJSON *)oldJson - newJSON:(PTDiffusionJSON *)newJson; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h deleted file mode 100644 index 3e0b6e8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h +++ /dev/null @@ -1,111 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionLoggingDestinationConfiguration; -@class PTDiffusionLoggingLevel; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Logging provides access to debug information that can be enabled at runtime. - - Changes to properties here have immediate effect on the verbosity or otherwise - of log output. - - The format of output log messages is subject to change. - - By default messages are sent to the Apple System Log facility using synchronous - calls to the Foundation framework's NSLog function. The destinationConfiguration - property can be used to change this behaviour. - - @since 5.7 - */ -@interface PTDiffusionLogging : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns the Diffusion logging object representing the current application process. - - @return Singleton Diffusion logging object representing the current application process. - - @since 5.7 - */ -+(PTDiffusionLogging *)logging; - -/** - Global switch to switch on or off logging. A value of `YES` switches logging on and - a value of `NO` switches it off. - - The default value for this property is `NO`. - - @note Logging may be switched on using this property but the amount of informational - messages output depends on the combination of other properties defined by this - interface. - - @since 5.7 - */ -@property(nonatomic, readwrite, getter=isEnabled) BOOL enabled; - -/** - The ranking of information messages required to be output. - This property allows the granularity of log output to be set. - Only messages ranked at this granularity or above will be enabled. - - The default value for this property is [PTDiffusionLoggingLevel info]. - - @since 5.7 - */ -@property(nonatomic, readwrite) PTDiffusionLoggingLevel* level; - -/** - Set the format of log message output. The syntax of this string is subject to change - so the required formatting tokens are not documented or intended to be constructed for use - by application developers unless instructed by a member of support staff in order to - assist in debugging an issue. - - @param format The format of log message output. - - @since 5.7 - */ --(void)setFormat:(NSString *)format; - -/** - Set all properties to default values, as required for production use when - debugging information is not required or desired. - A call to this method turns off all runtime-switchable log output. - - @note This method intentionally does not reset the destinationConfiguration - property. - - @since 5.7 - */ --(void)reset; - -/** - Options allowing log output to be directed to a custom location. - - The default value for this property is `nil`, specifying that messages should - be sent to the Apple System Log facility using synchronous calls to the - Foundation framework's NSLog function. - - @since 6.0 - */ -@property(nonatomic, readwrite, nullable) PTDiffusionLoggingDestinationConfiguration* destinationConfiguration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h deleted file mode 100644 index a779a35..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h +++ /dev/null @@ -1,61 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Options allowing log output to be directed to a custom location. - - @see PTDiffusionLogging - - @since 6.0 - */ -@interface PTDiffusionLoggingDestinationConfiguration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a logging destination configuration object initialized with the - given message printer. - - @param messagePrinter A block that may be called multiple times during the - lifetime of the current process. - - @return A logging destination configuration object initialized with the given - message printer. - - @note The message printer will always be called from a single GCD dispatch - queue managed by the client library and dedicated to this application process. - - @since 6.0 - */ --(instancetype)initWithMessagePrinter:(PTDiffusionLoggingMessagePrinter)messagePrinter NS_DESIGNATED_INITIALIZER; - -/** - A block that may be called multiple times during the lifetime of the current - process in order to emit formatted log messages. - - @note This property has the `nullable` attribute in order to allow for future - expansion of this API. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable, copy) PTDiffusionLoggingMessagePrinter messagePrinter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h deleted file mode 100644 index a993729..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h +++ /dev/null @@ -1,80 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A level of information events useful for debugging. - - The levels defined here are modelled on those defined by SLF4J as used by - the Diffusion Java API. - - @see PTDiffusionLogging - - @since 5.7 - */ -@interface PTDiffusionLoggingLevel : PTDiffusionEnumeration - -/** - Designates error events that might still allow the application to continue - running normally. - - @return Instance representing the error logging level. - - @since 5.7 - */ -+(instancetype)error; - -/** - Designates potentially harmful situations. - - @return Instance representing the warning logging level. - - @since 5.7 - */ -+(instancetype)warn; - -/** - Designates informational messages that highlight the process of the application - at a coarse-grained level. - - @return Instance representing the informational logging level. - - @since 5.7 - */ -+(instancetype)info; - -/** - Designates fine-grained informational messages that are most useful to debug - an application. - - @return Instance representing the debug logging level. - - @since 5.7 - */ -+(instancetype)debug; - -/** - Designates finer-grained informational events than debug. - - @return Instance representing the trace logging level. - - @since 5.7 - */ -+(instancetype)trace; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h deleted file mode 100644 index d98a267..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h +++ /dev/null @@ -1,26 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - The type definition for a block accepting formatted log messages. - - @see PTDiffusionLoggingDestinationConfiguration - - @since 6.0 - */ -typedef void (^PTDiffusionLoggingMessagePrinter)(NSString* message); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h deleted file mode 100644 index 4544b00..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h +++ /dev/null @@ -1,297 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBytes; -@class PTDiffusionRequestStream; -@class PTDiffusionTopicSelector; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionSessionId; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTopicTreeRegistration; - - -/** - Values assigned to the `code` property of NSError objects generated by the - PTDiffusionMessagingFeature. - - @since 6.5 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionMessagingFeatureErrorCode) { - /** - The filter was rejected. The message was not sent to any clients. - - @see PTDiffusionUnderlyingErrorsKey - - @since 6.5 - - @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. - */ - PTDiffusionMessagingFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead.") = 1, -}; - - -NS_ASSUME_NONNULL_BEGIN - - -/** - The value assigned to the `domain` property of NSError objects generated by the - PTDiffusionMessagingFeature. - - @since 6.5 - - @deprecated since 6.7 Error domains have been converged into PTDiffusion. - */ -extern NSString *const PTDiffusionMessagingFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); - - -/** - @brief This feature provides a client session with request-response messaging - capabilities that can be used to implement application services. - - Request-response messaging allows a session to send requests to other - sessions. Each receiving session provides a corresponding response, which is - returned to the sending session. Each request and response carries an - application provided value. - - The method used to send a request determines which sessions will receive it. - Each request is routed using the provided *message path* – an - application provided string. Two addressing schemes are provided: - unaddressed requests and addressed requests. - - ### Unaddressed requests - - A session can provide an application service by implementing a handler and - registering it with the server. This is somewhat similar to implementing a - REST service, except that interactions between the sender and receiver are - asynchronous. - - Unaddressed requests sent using `sendRequest` - are routed by the server to a handler that has been pre-registered by another - session, and matches the message path. - - Handlers are registered with `#addRequestHandler:forPath:sessionProperties:completionHandler:`. - Each session may register at most one handler for a given message path. - Optionally, one or more session property names can be provided (see - PTDiffusionSession for a full description of session properties), in which - case the values of the session properties for each recipient session will be - returned along with its response. To add a request handler, the control client - session must have PTDiffusionGlobalPermission.registerHandler permission. If - registering to receive session property values, the session must also have - PTDiffusionGlobalPermission.viewSession permission. - - Routing works as follows: - - 1. The session sends the request, providing the message path, the response stream, - the request value and the completion handler that will be called once the server replies. - - 2. The server uses the message path to apply access control. The sender must have the - PTDiffusionPathPermission.sendToMessageHandler path permission for the message path, - or the request will be rejected. - - 3. The server uses the message path to select the appropriate recipient session. - Recipient sessions must pre-register a handler. If there is no registered recipient - session, the request will be rejected. - - 4. Otherwise, the server forwards the request to one of the sessions registered - to handle the message path. The message path is also passed to the recipient - session, providing a hierarchical context. - - 5. The recipient session processes the request and returns a response to the - server, which forwards the response to the sending session. - - Registration works across a cluster of servers. If no matching handler is - registered on the server to which the sending session is connected, the - request will be routed to another server in the cluster that has one. - - ### Addressed Requests - - Addressed requests provide a way to perform actions on a group of sessions, - or to notify sessions of one-off events (for repeating streams of events, use - a topic instead). - - An addressed request can be sent to a set of sessions using - `#sendRequest:toFilter:path:responseStream:completionHandler:`. For the details of session - filters, see PTDiffusionSession. Sending a request to a filter will match zero - or more sessions. Each response received will be passed to the provided - completionHandler. As a convenience, an addressed request can be sent a - specific session using the overloaded variant of - `sendRequest:toSessionId:completionHandler` that accepts a session id. - - Sending an addressed request requires PTDiffusionPathPermission.sendToSession - permission. - - If the sending session is connected to a server belonging to a cluster, the - recipient sessions can be connected to other servers in the cluster. The - filter will be evaluated against all sessions hosted by the cluster. - - To receive addressed requests, a session must set up a local request stream - to handle the specific message path, using `#setRequestStream:forPath:`. - When a request is received for the message path, the method - `diffusionStream:didReceive...Request:` responder from the - PTDiffusionStreamDelegate is triggered. - The session should respond using the provided responder. - Stream delegates receive a `diffusionDidCloseStream:` callback when - unregistered and a `diffusionStream:didFailOnError:` if the session is closed. - - If a request is sent to a session that does not have a matching stream for - the message path, an error will be returned to the sending session. - - ### Accessing the feature - Obtain this feature from a PTDiffusionSession as follows: - -
- PTDiffusionMessagingFeature * messaging = session.messaging;
- 
- - For more detail, - see: @ref md_messaging "Messaging with the Apple client library". - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionMessagingFeature : PTDiffusionFeature - -/** - Assign the request stream to handle requests sent to the given path. - - @param stream The request stream which should be mapped to receive requests - sent to the given path. - - @param path The path for which received requests should be dispatched to the - given request stream. - - @return The previously set request stream for the given path, or `nil` if this - is a fresh dispatch mapping. - - @since 6.0 - */ --(nullable PTDiffusionRequestStream *)setRequestStream:(PTDiffusionRequestStream *)stream - forPath:(NSString *)path; - -/** - Remove the request stream mapped to the given path. - - @param path The path for which any request stream mapping should be removed. - - @return The previously set request stream for the given path, or `nil` if there - was not an existing dispatch mapping. - - @since 6.0 - */ --(nullable PTDiffusionRequestStream *)removeRequestStreamForPath:(NSString *)path; - - -/** - Register a request handler to handle messages received from other client - sessions on a path. - - @param handler Specifies the handler to be registered at the server. - - @param path The request path. - - @param sessionProperties a list of keys of session properties that should - be supplied with each message. See PTDiffusionSession for a full list of - available fixed property keys. To request no properties supply an empty list. - To request all fixed properties include PTDiffusionSession#allFixedProperties - as a key. In this case any other fixed property keys would be ignored. - To request all user properties include PTDiffusionSession#allUserProperties - as a key. In this case any other user properties are ignored. - - @param 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 the `registration` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.5 - */ --(void)addRequestHandler:(PTDiffusionRequestHandler *)handler - forPath:(NSString *)path - sessionProperties:(NSArray *)sessionProperties - completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -/** - Register a request handler to handle requests from other client session - for a branch of the message path hierarchy. - - Each control session may register a single handler for a branch. When the - handler is no longer required, it may be closed using the - PTDiffusionTopicTreeRegistration provided by the completionHandler. To change - the handler for a particular branch the previous handler must first be - closed. - - This is equivalent to calling - `#addRequestHandler:forPath:sessionProperties:completionHandler:` - with an empty array for session properties. - - @param handler Specifies the handler to be registered at the server. - - @param path The request path. - - @param 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 the `registration` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.5 - */ --(void)addRequestHandler:(PTDiffusionRequestHandler *)handler - forPath:(NSString *)path - completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -/** - Send a request to all sessions that satisfy a given session filter. - - @param request The request to send. - - @param filter The session filter expression. - - @param path The path to send the request to. - - @param responseStream The stream that will handle the incoming responses. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. Success indicates that the server has dispatched all - the requests. - - @note The completion handler block will be invoked with a `nil` for the `error` - argument and zero for the `count` argument if no client sessions matched the - filter. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toFilter:(NSString *)filter - path:(NSString *)path - responseStream:(PTDiffusionSessionResponseStream *)responseStream - completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h deleted file mode 100644 index fc66026..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h +++ /dev/null @@ -1,66 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The common base interface for metric collectors. - - @since 6.7 - */ -@interface PTDiffusionMetricCollector: NSObject - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - Name of the metric collector - - @since 6.7 - */ -@property(nonatomic, readonly) NSString *name; - - -/** - Indicates whether the metric collector exports to Prometheus. - - @since 6.7 - */ -@property(nonatomic, readonly) BOOL exportsToPrometheus; - - -/** - @brief Limit the number of groups maintained by this metric collector. - - Session metric collectors can {@link PTDiffusionSessionMetricCollector#groupByProperties - group metrics by property}. - Topic metric collectors can {@link PTDiffusionSessionTopicCollector#groupsByTopicType - group metrics by topic type}. - This property places an upper limit on the number of groups that will be maintained for the - metric collector. - - For example, if a session metric collector groups by `$SessionId` and `maximumGroups` is 10, - then metrics will only be collected for the first 10 sessions. - - @since 6.8 - */ -@property(nonatomic, readonly) NSInteger maximumGroups; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h deleted file mode 100644 index def2453..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The common base interface for metric collectors. - - @since 6.7 - */ -@interface PTDiffusionMetricCollectorBuilder: NSObject - - -/** - @brief Resets the builder. - - @return the builder - */ --(instancetype)reset; - - -/** - @brief Specifies whether the metric collector should export metrics - to Prometheus or not. - - The default is that metrics are not exported to Prometheus. - - @param export true to export metrics to Prometheus. - - @return the builder - */ --(instancetype)exportToPrometheus:(BOOL)export; - - -/** - @brief Set the maximum number of groups maintained by the metric collector. - - By default, the number of groups is not limited. - - @param limit a positive integer - - @return the builder - */ --(instancetype)maximumGroups:(NSInteger)limit; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h deleted file mode 100644 index 2a189a4..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h +++ /dev/null @@ -1,239 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionMetricCollector; -@class PTDiffusionTopicMetricCollector; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client to configure metric collectors. - - Diffusion servers provide metrics which are made available in several ways: -
    -
  • Java Management Extensions (JMX) MBeans. -
  • Through the Diffusion Management Console. -
  • As endpoints for Prometheus. -
- - Metric collectors allow custom aggregation of metrics that are relevant to - your application. There are no default metric collectors, only the ones that - you create. - - There are two types of metric collector: Session Metric Collectors and Topic - Metric Collectors. - - For full details regarding the configuration and operation of metric - collectors see the user manual. - - ### Session Metric Collectors. - - These can be configured to record metric data for a subset of all sessions, - specified with a session filter. - - The set of metrics recorded by each session metric collector is the same as - those recorded for the whole server. For full details of session metrics, see - the table in the user manual. - - If the session filters of two different session metric collectors select the - same session, both will record metrics for that session. It is only valid to - add the metrics of different session metric collectors if their session - filters select distinct sets of sessions. - - You can optionally group the sessions within a collector by session - properties. - - ### Topic Metric Collectors - These can be configured to record metric data for a subset of all topics, - specified with a topic selector. - - You can optionally group the topics within a collector by topic type. - - The set of metrics recorded by each topic metric collector is the same as - those recorded for the whole server. For full details of topic metrics, see - the table in the user manual. - - If the topic selectors of two different topic metric collectors select the - same topic, both will record metrics for that topic. It is only valid to add - the metrics of different topic metric collectors if their topic selectors - select distinct sets of topics. - - ### Access control - - The following access control restrictions are applied: -
    -
  • To {@link #putSessionMetricCollector:completionHandler: put} or - {@link #removeSessionMetricCollector:completionHandler: remove} a session metric collector, a - session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} - global permission. -
  • To {@link #putTopicMetricCollector:completionHandler: put} or - {@link #removeTopicMetricCollector:completionHandler: remove} a topic metric collector, a - session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} - global permission. -
  • To list {@link #listSessionMetricCollectors: session metric collectors} or - {@link #listTopicMetricCollectors: topic metric collectors}, a session needs - the {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} global permission. -
- - ### Accessing the feature - This feature may be obtained from a {@link Session session} as follows: -
-    PTDiffusionMetricsFeature *const metrics = session.metrics;
-  
- - @author Push Technology Limited - - @since 6.7 - */ -@interface PTDiffusionMetricsFeature : PTDiffusionFeature - -/** - Add a session metric collector, replacing any with the same name. - - @param collector the session metric collector - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_InvalidFilter if the metric collector session filter is invalid; -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void)putSessionMetricCollector:(PTDiffusionSessionMetricCollector *)collector - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - Retrieves the current session metric collectors. - - @param 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 the `collectors` will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) listSessionMetricCollectors:(void (^)(NSArray* _Nullable collectors, - NSError * _Nullable error)) completionHandler; - - -/** - Removes any session metric collector with the given name, if it exists. - - @param name the session metric collector name - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) removeSessionMetricCollector:(NSString *)name - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - Add a topic metric collector, replacing any with the same name. - - {@link PTDiffusionTopicMetricCollector} instance can be created using - {@link PTDiffusionTopicMetricCollectorBuilder}. - - @param collector the topic metric collector - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) putTopicMetricCollector:(PTDiffusionTopicMetricCollector *)collector - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - Retrieves the current topic metric collectors. - - @param 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 the `collectors` will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) listTopicMetricCollectors:(void (^)(NSArray* _Nullable collectors, - NSError * _Nullable error)) completionHandler; - - -/** - Removes any topic metric collector with the given name, if it exists. - - @param name the topic metric collector name - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • PTDiffusionError_AccessDenied if the calling session does not have the - {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; -
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; -
  • PTDiffusionError_SessionClosed if the session is closed. -
- - @since 6.7 - */ --(void) removeTopicMetricCollector:(NSString *)name - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h deleted file mode 100644 index 6d29125..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionMissingTopicNotification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Handler called when a client session subscribes or fetches using a topic - selector that matches no topics. - - @see PTDiffusionTopicControlFeature - - @since 5.7 - */ -@protocol PTDiffusionMissingTopicHandler - -/** - Called when a session requests a topic that does not exist, and the - topic path belongs to part of the topic tree for which this handler - was registered. - - @param registration The topic tree registration for which this handler applies. - - @param notification The missing topic notification. - - @since 5.7 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - hadMissingTopicNotification:(PTDiffusionMissingTopicNotification *)notification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h deleted file mode 100644 index f356365..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h +++ /dev/null @@ -1,108 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Notification that a session has made a request using a selector that does - not match any topics. - - @see PTDiffusionMissingTopicHandler - - @since 5.7 - */ -@interface PTDiffusionMissingTopicNotification : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - Cancel the client request on the server. - - @deprecated Since 6.6. - This method is a no-op. In previous releases this would - prevent the selector from being added to the session's - selections. - Since 6.6, the selector is always added to the session's - selections before this notification is issued regardless. - - @since 5.7 - */ --(void)cancel -__deprecated_msg("Will be removed in a future release."); - - -/** - Instruct the server to complete processing of the request. - - @deprecated Since 6.6 - This method is a no-op. In previous releases this would - cause the selector to be added to the sessions's - selections and the selection to be re-evaluated. - Since 6.6, the selector is always added to the session's - selections before this notification is issued. - - - @since 5.7 - */ --(void)proceed -__deprecated_msg("Will be removed in a future release."); - - -/** - The identity of the client session that made the request. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - - -/** - The topic selector expression that triggered this notification. - - @since 5.7 - */ -@property(nonatomic, readonly) NSString* topicSelectorExpression; - - -/** - The list of the names of the servers through which the notification - has been routed. - - The first name in this list will be the name of the server to which - the originating session was connected. If the notification was routed - through remote server connections before reaching the recipient then - those servers will also be listed in the order that the notification - passed through them. - - @since 6.7 - */ -@property (nonatomic, readonly) NSArray* serverNames; - - -/** - The session properties of the session that made the request. - - @since 6.7 - */ -@property (nonatomic, readonly) NSDictionary* sessionProperties; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h deleted file mode 100644 index f0d1233..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h +++ /dev/null @@ -1,294 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A mutable data model based upon a schema. - - An initial version of such a model can be created from a schema using - PTDiffusionRecordV2Schema#createMutableModel. A model created in this way will - have all mandatory fields set to default values. - - The model may then be updated as required and then at any time a - PTDiffusionRecordV2 object can be generated from the current state by reading - the PTDiffusionRecordV2Model#value property. That object may then be used to - update a topic. - - When values for integer or decimal type fields are supplied the values are - validated and normalized. All number values will have any insignificant - leading zeroes removed. A decimal value will also be rounded to its specified - scale using half-up rounding. - - @since 6.0 - */ -@interface PTDiffusionMutableRecordV2Model : PTDiffusionRecordV2Model - -/** - Appends a new initialized record occurrence to the end of a variable - multiplicity record list. - - As the only variable multiplicity record can be the last one there is no need - to name the record. This method will add to the list of occurrences of the last - defined record. The record will be initialized with default values appropriate - to the schema definition and may then have individual field items set - separately. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the last or only record is not a variable repeating record or has already - reached the maximum number of occurrences. - - @since 6.0 - */ --(BOOL)addRecordError:(NSError **)error; - -/** - Appends new values to the end of a variable length field list. - - This is a convenience method for adding to the end of the last record and is - therefore useful when there is only one record type. - - @param fieldValues The values to add. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - details conflict with the schema, possibly because the last field of the last - record is not a variable multiplicity field or the maximum number of - occurrences for the field would be breached. - - one of the values is incompatible with the field type. - - @exception NSInvalidArgumentException If fieldValues is `nil`. - - @note This method does nothing if fieldValues is an empty array. - - @since 6.0 - */ --(BOOL)addFieldValues:(NSArray *)fieldValues - error:(NSError **)error; - -/** - Appends new values to the end of a variable length field list. - - This can only be used for a variable multiplicity field which can only be the - last field in a record and therefore the field does not need to be named. - - @param recordName The name of the record. - - @param recordIndex The index identifying the occurrence of the record. - - @param fieldValues The values to add. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - details conflict with the schema, possibly because the last field of the - record is not a variable multiplicity field or the maximum number of - occurrences for the field would be breached. - - one of the values is incompatible with the field type. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If either recordName or fieldValues is - `nil`, or if recordIndex is negative. - - @note This method does nothing if fieldValues is an empty array. - - @since 6.0 - */ --(BOOL)addToRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldValues:(NSArray *)fieldValues - error:(NSError **)error; - -/** - Remove all optional instances of a variable multiplicity field. - - As a variable repeating field can only be the last or only field within a - record then the field name does not need to be specified. - - This will only remove field occurrences down to the minimum number of - occurrences specified by the schema. - - If the last or only field within the record is not defined as variable - multiplicity, this would have no effect. - - @param recordName The name of the record. - - @param recordIndex The index of the record. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - `recordName` is not defined in the schema. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordName is `nil`, or if recordIndex - is negative. - - @since 6.0 - */ --(BOOL)clearVariableFieldsForRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - error:(NSError **)error; - -/** - Removes all optional instances of a variable multiplicity record. - - As a variable repeating record can only be the last or only record then the - record name does not need to be specified. - - This will only remove record occurrences down to the minimum number of - occurrences specified by the schema. - - If the last or only record is not defined as variable multiplicity, calling - this method has no effect. - - @since 6.0 - */ --(void)clearVariableRecords; - -/** - Removes the specified occurrence of a variable multiplicity field. - - A variable multiplicity field must be the last or only field within a record - and therefore the field name is not required. - - @param recordName The name of the record. - - @param recordIndex The record index. - - @param fieldIndex The index of the field to remove. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the record is not known or the last or only field within the record is not a - variable repeating field or can not be removed as it would violate the - minimum number of occurrences. - - either `recordIndex` or `fieldIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is - negative or fieldIndex is negative. - - @since 6.0 - */ --(BOOL)removeFieldWithIndex:(SInt32)fieldIndex - fromRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - error:(NSError **)error; - -/** - Removes the specified occurrence of a variable multiplicity record. - - A variable multiplicity record must be the last or only record within a schema - and therefore the record name is not required. - - @param recordIndex The index of the record to remove. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the last or only record is not a variable multiplicity record or can not be - removed as it would violate the minimum number of occurrences. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordIndex is negative. - - @since 6.0 - */ --(BOOL)removeRecordWithIndex:(SInt32)recordIndex - error:(NSError **)error; - -/** - Sets a specified field value. - - @param recordName The name of the record containing the field. - - @param recordIndex The index of the record containing the field. - - @param fieldName The name of the field. - - @param fieldIndex The index of the field. - - @param fieldValue The new value. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the details given conflict with the schema or the value is incompatible with - the schema field type. - - either `recordIndex` or `fieldIndex` is out of bounds. - - @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is - negative, fieldName is `nil`, fieldIndex is negative or fieldValue is `nil`. - - @since 6.0 - */ --(BOOL)setRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldName:(NSString *)fieldName - fieldIndex:(SInt32)fieldIndex - toFieldValue:(NSString *)fieldValue - error:(NSError **)error; - -/** - Sets a specified field value. - - This allows an item to be addressed using a key of the form - `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in - which case 0 is assumed. The record part may also be omitted in which case the - first occurrence of the first record is assumed. - - @param key The field key. - - @param fieldValue The field value. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the key does not address a valid field. - - a specified index is out of bounds. - - the key format is invalid. - - a specified index is not a valid number. - - @exception NSInvalidArgumentException If either key or fieldValue is `nil`. - - @since 6.0 - */ --(BOOL)setFieldValue:(NSString *)fieldValue - forKey:(NSString *)key - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h deleted file mode 100644 index 6872693..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h +++ /dev/null @@ -1,44 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionNumberFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a numeric fetch operation issued to the - server. - - A numeric fetch operation is issued using either of the - PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: - or - PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: - methods. - - @since 6.2 - */ -@interface PTDiffusionNumberFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * numberResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h deleted file mode 100644 index 237a929..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a numeric fetch operation for a single - selected topic. - - A numeric fetch operation is issued using either of the - PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: - or - PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: - methods. - - @since 6.2 - */ -@interface PTDiffusionNumberFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) NSNumber* number; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h deleted file mode 100644 index 287674f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling numeric messaging requests with - a handler registered at the server. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionNumberRequestDelegate - -/** - Called when a numeric request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param number The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithNumber:(nullable NSNumber *)number - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h deleted file mode 100644 index c31c0fc..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h +++ /dev/null @@ -1,47 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling Number messaging requests. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionNumberRequestStreamDelegate - -/** - Called when a numeric request has been received. - - @param stream The stream that received the request. - - @param number The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithNumber:(nullable NSNumber *)number - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h deleted file mode 100644 index 177da2c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling numeric messaging responses from - individual sessions. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionNumberSessionResponseStreamDelegate - -/** - Called when a session responds to a request with a number. - - @param stream The stream that received the response. - - @param number The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithNumber:(nullable NSNumber *)number - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h deleted file mode 100644 index a62f940..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as a number. - - @since 6.0 - */ -@interface PTDiffusionNumberTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The numeric value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) NSNumber* number; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index 6cdc4cf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionNumberTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - numeric values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with numeric values. - - @since 6.0 - */ -@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldNumberEvent The previous event. If `nil` then this is the first event. - - @param newNumberEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldNumberEvent:(nullable PTDiffusionNumberTimeSeriesEvent *)oldNumberEvent - newNumberEvent:(PTDiffusionNumberTimeSeriesEvent *)newNumberEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h deleted file mode 100644 index 85d578f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionNumberTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of number time series events. - - @since 6.0 - */ -@interface PTDiffusionNumberTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The number time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* numberEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h deleted file mode 100644 index 3e88e19..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h +++ /dev/null @@ -1,112 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - numerical primitive values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionNumberUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly, nullable) NSNumber* value; - -/** - Sets the topic to a specified value or no value. - - When a `nil` value is supplied to this method for a PTDiffusionTopicType_Int64 - or PTDiffusionTopicType_Double topic, the topic will be updated to have no - value. If a previous value was present subscribers will receive a notification - that the new value is null. New subscribers will not receive a value - notification. - - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(BOOL) setValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h deleted file mode 100644 index f95c95d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for number - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for numeric - topics. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -@protocol PTDiffusionNumberValueStreamDelegate - -/** - An update was received for a topic path handled by a number value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldNumber The previous value. If `nil` then this is either the first - value, or the previous value was `nil` indicating no value. - - @param newNumber The new value derived from the last update received from the - server, or `nil` if there is no value. - - @since 6.0 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldNumber:(nullable NSNumber *)oldNumber - newNumber:(nullable NSNumber *)newNumber; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h deleted file mode 100644 index e16e776..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A constraint requiring the current value of a JSON topic to match the - partially described value. - - The Swift code: - - let constraint = try PTDiffusionUpdateConstraint - .jsonValue() - .withStringValue(idValue, atPointer: "/id") - .without("/cancellation") - - creates a constraint for a JSON object with a specific ID value and no value - for a "cancellation" property. - - Missing keys are matched differently to keys that are present with `null` - values. - - @since 6.3 - */ -@interface PTDiffusionPartialJSONUpdateConstraint : PTDiffusionUpdateConstraint - -/** - Require a `null` value at a specific position in the JSON object. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the `null` value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return A new constraint or `nil` if there was an error. - - @exception NSInvalidArgumentException If pointer is `nil`. - - @since 6.3 - */ --(nullable instancetype)withNullAt:(NSString *)pointer - error:(NSError **)error; - -/** - Require a specific position in the JSON object to be absent. This does not - match positions that have `null` values. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference that should have no value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return A new constraint or `nil` if there was an error. - - @exception NSInvalidArgumentException If the pointer argument is `nil`. - - @since 6.3 - */ --(nullable instancetype)without:(NSString *)pointer - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h deleted file mode 100644 index de3e036..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h +++ /dev/null @@ -1,203 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Permissions protecting access-controlled operations that are evaluated - for a specific topic path. - - @see PTDiffusionGlobalPermission - - @since 6.5 - - */ - -@interface PTDiffusionPathPermission : PTDiffusionEnumeration - -/** - Required to receive information from a topic. - - If a session does not have read_topic permission for a path, the path will be - excluded from the results of subscription or fetch operations for the session, - and the path's details cannot be retrieved by the session. - - @see #selectTopic - - @return Instance indicating permission to receive information from a topic. - - @since 6.3 - */ -+(instancetype)readTopic; - -/** - Update a topic. - - @return Instance indicating permission to update a topic. - - @since 6.3 - */ -+(instancetype)updateTopic; - -/** - Add a topic or remove a topic. - - @return Instance indicating permission to add or remove a topic. - - @since 6.3 - */ -+(instancetype)modifyTopic; - -/** - Send a message to a handler registered with the server. - - @return Instance indicating permission to send a message to a handler - registered with the server. - - @since 6.3 - */ -+(instancetype)sendToMessageHandler; - -/** - Send a message to a client session. - - @return Instance indicating permission to send a message to a client session. - - @since 6.3 - */ -+(instancetype)sendToSession; - -/** - Use a topic selector that selects the topic path. - - A session must have this permission for the path prefix of any topic selector - used to subscribe or fetch. - - When the subscription or fetch request completes, the resulting topics are - further filtered based on the #readTopic permission. - - A session that has #readTopic but not #selectTopic for a particular topic path - cannot subscribe directly to topics belonging to the path. However, the session - can be independently subscribed by a control session that has - PTDiffusionGlobalPermission#modifySession permission in addition to the - appropriate #selectTopic permission. - - @return Instance indicating permission to use a topic selector that selects - the topic path. - - @since 6.3 - */ -+(instancetype)selectTopic; - -/** - Evaluate queries that return a non-current view of a time series path. - - The #readTopic permission is required to evaluate any type of query for a time - series path. This permission is additionally required for queries that - potentially return a non-current view of all or part of a time series. Such - queries include value range queries that specify an edit range, and all types - of edit range query. - - @return Instance indicating permission to evaluate queries that return a - non-current view of a time series path. - - @see PTDiffusionTimeSeriesFeature - - @since 6.3 - */ -+(instancetype)queryObsoleteTimeSeriesEvents; - -/** - Submit edits to time series topic events. - - The #updateTopic permission is required to update a time series path. This - permission is additionally required to submit edits to a time series path. - - @return Instance indicating permission to submit edits to time series - topic events. - - @see PTDiffusionTimeSeriesFeature - @see #editOwnTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editTimeSeriesEvents; - -/** - Submit edits to time series path events which have an author which is the same - as the principal of the calling session. - - This permission is a more restrictive alternative to #editTimeSeriesEvents. - - The #updateTopic permission is required to update a time series path. This - permission is additionally required to submit edits to a time series path - where the event author is the same as the principal of the calling session. - - @return Instance indicating permission to submit edits to time series path - events which have an author identical to the principal of the - calling session. - - @see PTDiffusionTimeSeriesFeature - @see #editTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editOwnTimeSeriesEvents; - -/** - Acquire a session lock. - - @return Instance indicating permission to acquire a session lock. - - @see PTDiffusionSessionLock - - @since 6.3 - */ -+(instancetype)acquireLock; - -/** - A permission that is unsupported by the session. - - @return Instance indicating an unsupported permission. - - @since 6.3 - */ -+(instancetype)unknownTopicPermission; - - -/** - Expose a branch of the topic tree as a virtual session tree. - - The EXPOSE_BRANCH path permission is powerful since it allows a - session to expose a whole branch of the topic tree under a different set - of path permissions. - - A session granted EXPOSE_BRANCH for a particular path effectively - has the permission for all descendant paths. From a security perspective, - if a role grants EXPOSE_BRANCH at branch X it is - ineffectual for it also to deny EXPOSE_BRANCH at a child branch - X/Y because a branch mapping to X can still expose paths - below X/Y. - - @return Instance indicating permission to expose branches. - - @see PTDiffusionSessionTrees - @since 6.7 -*/ -+(instancetype)exposeBranch; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h deleted file mode 100644 index 537326e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Details returned in response to a ping to the server. - - A ping details object is immutable. - - @see PTDiffusionPingsFeature - - @since 5.7 - */ -@interface PTDiffusionPingDetails : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The round trip time from when the ping was sent to the time - the response was received. - - @since 5.7 - */ -@property(nonatomic, readonly) NSTimeInterval roundTripTime; - -/** - The time the ping was sent. - - @since 5.7 - */ -@property(nonatomic, readonly) NSDate* timestamp; - -/** - Compares the receiver to the given content. - - @param pingDetails The ping details object with which to compare the receiver. - - @return `YES` if the ping details is equal to the contents of the receiver, otherwise `NO`. - - @since 5.7 - */ --(BOOL)isEqualToPingDetails:(nullable PTDiffusionPingDetails *)pingDetails; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h deleted file mode 100644 index 0cbeeb1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h +++ /dev/null @@ -1,51 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionPingDetails; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Pings feature provides a client session with the ability to ping the server. - - The main purpose of a ping is to test, at a very basic level, the current - network conditions that exist between the client session and the server it is - connected to. Each ping request will return details on the latency - experienced in the form of a round-trip time value. - - The Pings feature for a session can be obtained from the session's `pings` property. - - @see PTDiffusionSession - - @since 5.7 - */ -@interface PTDiffusionPingsFeature : PTDiffusionFeature - -/** - Send a ping to the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if the completionHandler is `nil`. - - @since 5.7 - */ --(void)pingServerWithCompletionHandler:(void (^)(PTDiffusionPingDetails * _Nullable details, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h deleted file mode 100644 index 2fd050d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h +++ /dev/null @@ -1,2408 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionNumberFetchResult; -@class PTDiffusionNumberTimeSeriesQueryResult; -@class PTDiffusionNumberUpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionStringFetchResult; -@class PTDiffusionStringTimeSeriesQueryResult; -@class PTDiffusionStringUpdateStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionNumberRequestDelegate; -@protocol PTDiffusionNumberRequestStreamDelegate; -@protocol PTDiffusionNumberSessionResponseStreamDelegate; -@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionNumberValueStreamDelegate; -@protocol PTDiffusionStringRequestDelegate; -@protocol PTDiffusionStringRequestStreamDelegate; -@protocol PTDiffusionStringSessionResponseStreamDelegate; -@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionStringValueStreamDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Support for creating value streams for primitive values including - string and numeric types. - - @since 6.0 - */ -@interface PTDiffusionPrimitive : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Creates a value stream capable of receiving double-precision floating point - numbers (Eight-byte IEEE 754). - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)doubleFloatNumberValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving 64-bit integer values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)int64NumberValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving string values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)stringValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving double-precision floating point - numeric time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)doubleFloatNumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving 64-bit integer time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)int64NumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving string time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)stringTimeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving double-precision floating point - numeric requests (Eight-byte IEEE 754) for a handler registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)doubleFloatRequestHandlerWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving 64-bit integer requests for a - handler registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)int64RequestHandlerWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving string requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)stringRequestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving double-precision floating point - numeric requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)doubleFloatRequestStreamWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving 64-bit integer requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)int64RequestStreamWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving string requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)stringRequestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving double-precision floating point - numeric responses from discrete sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)doubleFloatSessionResponseStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving 64-bit integer responses from - discrete sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)int64SessionResponseStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving string responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)stringSessionResponseStreamWithDelegate:(id)delegate; - -/** - Creates a request that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param value The value to send as the request. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequest *)requestWithDouble:(double)value; - -/** - Creates a request that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param number The value to send as the request. This may be `nil` in order to - create a 'null' request. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(nullable PTDiffusionRequest *)requestWithDoubleFloatNumber:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a request that can be used to send the given 64-bit integer value using - messaging. - - @param value The value to send as the request. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequest *)requestWithLongLong:(long long)value; - -/** - Creates a request that can be used to send the given 64-bit integer value using - messaging. - - @param number The value to send as the request. This may be `nil` in order to - create a 'null' request. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(nullable PTDiffusionRequest *)requestWithInt64Number:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a request that can be used to send the given string using messaging. - - @param string The value to send as the request. This may be `nil` in order to - create a 'null' request. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(nullable PTDiffusionRequest *)requestWithString:(nullable NSString *)string - error:(NSError **)error; - -/** - Creates a response that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param value The value to send as the response. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionResponse *)responseWithDouble:(double)value; - -/** - Creates a response that can be used to send the given double-precision floating - point (Eight-byte IEEE 754) value using messaging. - - @param number The value to send as the response. This may be `nil` in order to - create a 'null' response. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new response, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(nullable PTDiffusionResponse *)responseWithDoubleFloatNumber:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a response that can be used to send the given 64-bit integer value - using messaging. - - @param value The value to send as the response. - - @return The new request, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionResponse *)responseWithLongLong:(long long)value; - -/** - Creates a response that can be used to send the given 64-bit integer value - using messaging. - - @param number The value to send as the response. This may be `nil` in order to - create a 'null' response. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new response, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(nullable PTDiffusionResponse *)responseWithInt64Number:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Creates a response that can be used to send the given string using messaging. - - @param string The value to send as the response. This may be `nil` in order to - create a 'null' response. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new response, or `nil` on failure. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(nullable PTDiffusionResponse *)responseWithString:(nullable NSString *)string - error:(NSError **)error; - -/** - Returns an update constraint requiring the current value of a topic to match - the given double-precision floating point (Eight-byte IEEE 754) value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param value The value to be matched against the topic value. - - @return The new constraint, or `nil` on failure. - - @since 6.3 - */ -+(PTDiffusionUpdateConstraint *)updateConstraintWithDouble:(double)value; - -/** - Returns an update constraint requiring the current value of a topic to match - the given double-precision floating point (Eight-byte IEEE 754) value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param number The value to be matched against the topic value. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new constraint, or `nil` on failure. - - @exception NSInvalidArgumentException If the number argument is `nil`. - - @since 6.3 - */ -+(nullable PTDiffusionUpdateConstraint *)updateConstraintWithDoubleFloatNumber:(NSNumber *)number - error:(NSError **)error; - -/** - Returns an update constraint requiring the current value of a topic to match - the given 64-bit integer value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param value The value to be matched against the topic value. - - @return The new constraint, or `nil` on failure. - - @since 6.3 - */ -+(PTDiffusionUpdateConstraint *)updateConstraintWithLongLong:(long long)value; - -/** - Returns an update constraint requiring the current value of a topic to match - the given 64-bit integer value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param number The value to be matched against the topic value. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new constraint, or `nil` on failure. - - @exception NSInvalidArgumentException If the number argument is `nil`. - - @since 6.3 - */ -+(nullable PTDiffusionUpdateConstraint *)updateConstraintWithInt64Number:(NSString *)number - error:(NSError **)error; - -/** - Returns an update constraint requiring the current value of a topic to match - the given string value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @param string The value to be matched against the topic value. - - @param error Location to store a reason if this method returns `nil` to - indicate failure. - - @return The new constraint, or `nil` on failure. - - @exception NSInvalidArgumentException If the number argument is `nil`. - - @since 6.3 - */ -+(nullable PTDiffusionUpdateConstraint *)updateConstraintWithString:(NSString *)string - error:(NSError **)error; - -@end - -/** - @brief Extension adding support for responding to requests using primitive - values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionPrimitive) - -/** - Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a - request. - - @param value The value to send in response. - - @since 6.0 - */ --(void)respondWithDouble:(double)value; - -/** - Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a - request. - - @param number The value to send in response. This may be `nil` in order to send - a 'null' response. - - @param error Location to store a reason if this method returns `NO` to - indicate failure. - - @return `YES` if a response was queued for dispatch or `NO` if the supplied - number could not be encoded using this data type. - - @since 6.0 - */ --(BOOL)respondWithDoubleFloatNumber:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Dispatch a 64-bit integer response to a request. - - @param value The value to send in response. - - @since 6.0 - */ --(void)respondWithLongLong:(long long)value; - -/** - Dispatch a 64-bit integer response to a request. - - @param number The value to send in response. This may be `nil` in order to send - a 'null' response. - - @param error Location to store a reason if this method returns `NO` to - indicate failure. - - @return `YES` if a response was queued for dispatch or `NO` if the supplied - number could not be encoded using this data type. - - @since 6.0 - */ --(BOOL)respondWithInt64Number:(nullable NSNumber *)number - error:(NSError **)error; - -/** - Dispatch a string response to a request. - - @param string The value to send in response. This may be `nil` in order to send - a 'null' response. - - @param error Location to store a reason if this method returns `NO` to - indicate failure. - - @return `YES` if a response was queued for dispatch or `NO` if the supplied - string could not be encoded using this data type. - - @since 6.0 - */ --(BOOL)respondWithString:(nullable NSString *)string - error:(NSError **)error; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a primitive value in response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionPrimitive) - -/** - Send a request for which a string response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; - -/** - Send a request for which a double-precision floating point (Eight-byte IEEE 754) - response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; - -/** - Send a request for which a 64-bit integer response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a string response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; - -/** - Send a request to a session for which a double-precision floating point - (Eight-byte IEEE 754) response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; - -/** - Send a request to a session for which a 64-bit integer response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using primitive values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) - -/** - Update a time series topic by appending a new string value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - stringValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new string value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - stringValue:(nullable NSString *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new double-precision floating point - (Eight-byte IEEE 754) value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) appendToTopicPath:(NSString *)topicPath - doubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new double-precision floating point - (Eight-byte IEEE 754) value with a supplied timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author - set to the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void) appendToTopicPath:(NSString *)topicPath - doubleFloatNumberValue:(nullable NSNumber *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new 64-bit integer value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - int64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new 64-bit integer value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - int64NumberValue:(nullable NSNumber *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new string value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - stringValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new double-precision floating point - (Eight-byte IEEE 754) value that overrides the value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void) editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - doubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new 64-bit integer value that - overrides the value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - int64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have string values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - stringCompletionHandler:(void (^)(PTDiffusionStringTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have double-precision - floating point (Eight-byte IEEE 754) values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - doubleFloatNumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have 64-bit integer - values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - int64NumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with - primitive values. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionPrimitive) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with string. - - The string data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as strings will be - removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / - PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / - PTDiffusionFetchRequest::beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchStringValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionStringFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with double-precision floating point (Eight-byte IEEE - 754). - - The doubleFloat data type constrains the topic types. So, any topic types - specified in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as - double-precision floating point (Eight-byte IEEE 754) will be removed from the - list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / - PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / - PTDiffusionFetchRequest::beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchDoubleFloatNumberValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with 64-bit integer. - - The int64 data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as 64-bit integer will - be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / - PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / - PTDiffusionFetchRequest::beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchInt64NumberValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with primitive values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionPrimitive) - -/** - Sets a topic to a specified string value, or null. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toStringValue:(nullable NSString *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toDoubleValue:(double)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) number value, or null. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toDoubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified 64-bit integer value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toLongLongValue:(long long)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified 64-bit integer number value, or null. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either path or completionHandler are - `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toInt64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified string value, or null, if a constraint is - satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toStringValue:(nullable NSString *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toDoubleValue:(double)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified double-precision floating point (Eight-byte IEEE - 754) number value, or null, if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toDoubleFloatNumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Sets a topic to a specified 64-bit integer value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toLongLongValue:(long long)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified 64-bit integer number value, or null, if a - constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of path, constraint or - completionHandler are `nil`. - - @since 6.3 - */ --(BOOL) setWithPath:(NSString *)path - toInt64NumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a string value, or null. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#string. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToStringValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleValue:(double)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) number value, or null. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleFloatNumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a 64-bit integer value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToLongLongValue:(long long)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a 64-bit integer number value, or null. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToInt64NumberValue:(nullable NSNumber *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a string value, or null, if a constraint - is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification or - completionHandler arguments are `nil`. Also if the topic type defined in the - specification is incompatible with PTDiffusionDataTypes#string. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToStringValue:(nullable NSString *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) value if a constraint is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleValue:(double)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a double-precision floating point - (Eight-byte IEEE 754) number value, or null, if a constraint is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToDoubleFloatNumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Ensures a topic exists and sets it to a 64-bit integer value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToLongLongValue:(long long)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a 64-bit integer number value, or null, - if a constraint is satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toJSONValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If any of the path, specification, - constraint or completionHandler arguments are `nil`. Also if the topic type - defined in the specification is incompatible with PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(BOOL) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToInt64NumberValue:(nullable NSNumber *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -/** - Creates an update stream to use for updating a specific topic with string - values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with 64-bit - integer values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with string - values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values if a constraint is - satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for updating a specific topic with 64-bit - integer values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - string values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#string. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - 64-bit integer values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - string values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#string. - - @since 6.3 - */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - double-precision floating point (Eight-byte IEEE 754) values if a constraint is - satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#doubleFloat. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - 64-bit integer values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#int64. - - @since 6.3 - */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -/** - @brief Extension adding support to partial JSON update constraints for - requiring primitive values at locations referenced with a JSON pointer. - - @since 6.3 - */ -@interface PTDiffusionPartialJSONUpdateConstraint (PTDiffusionPrimitive) - -/** - Require a double-precision floating point (Eight-byte IEEE 754) value at a - specific position in the JSON object. - - @param value The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given double value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If pointer is `nil`. - - @since 6.3 - */ --(nullable instancetype)withDoubleValue:(double)value - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a double-precision floating point (Eight-byte IEEE 754) number value at - a specific position in the JSON object. - - @param number The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given number value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If number or pointer is `nil`. - - @note To match a JSON `null` at the referenced location use - PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: - - @since 6.3 - */ --(nullable instancetype)withDoubleFloatNumberValue:(NSNumber *)number - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a 64-bit integer value at a specific position in the JSON object. - - @param value The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given long value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If pointer is `nil`. - - @since 6.3 - */ --(nullable instancetype)withLongLongValue:(long long)value - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a 64-bit integer number value at a specific position in the JSON - object. - - @param number The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given 64-bit number value - at the given specific position in the JSON object. - - @exception NSInvalidArgumentException If number or pointer is `nil`. - - @note To match a JSON `null` at the referenced location use - PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: - - @since 6.3 - */ --(nullable instancetype)withInt64NumberValue:(NSNumber *)number - atPointer:(NSString *)pointer - error:(NSError **)error; - -/** - Require a string value at a specific position in the JSON object. - - @param string The value expected at the location referenced by pointer. - - @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax - reference locating the value in the JSON object. - - @param error Location to store a reason in case of failure. May be `nil`. - - @return Primitive instance initialized with the given string value at the - given specific position in the JSON object. - - @exception NSInvalidArgumentException If string or pointer is `nil`. - - @note To match a JSON `null` at the referenced location use - PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: - - @since 6.3 - */ --(nullable instancetype)withStringValue:(NSString *)string - atPointer:(NSString *)pointer - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h deleted file mode 100644 index 4760b44..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h +++ /dev/null @@ -1,742 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import -#import -#import - -@class PTDiffusionRecordV2Delta; -@class PTDiffusionRecordV2FetchResult; -@class PTDiffusionRecordV2Model; -@class PTDiffusionRecordV2Schema; -@class PTDiffusionRecordV2TimeSeriesQueryResult; -@class PTDiffusionRecordV2UpdateStream; -@class PTDiffusionRequest; -@class PTDiffusionRequestHandler; -@class PTDiffusionRequestStream; -@class PTDiffusionResponse; -@class PTDiffusionSessionResponseStream; -@class PTDiffusionTimeSeriesEventMetadata; -@class PTDiffusionTimeSeriesRangeQuery; -@class PTDiffusionTopicCreationResult; -@class PTDiffusionTopicSpecification; -@class PTDiffusionUpdateConstraint; -@class PTDiffusionValueStream; - -@protocol PTDiffusionRecordV2RequestDelegate; -@protocol PTDiffusionRecordV2RequestStreamDelegate; -@protocol PTDiffusionRecordV2SessionResponseStreamDelegate; -@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate; -@protocol PTDiffusionRecordV2ValueStreamDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An immutable record value with support for binary deltas. - - @since 6.0 - */ -@interface PTDiffusionRecordV2 : PTDiffusionBytes - -/** - Parses the value into a model based upon a specified schema. - - This assumes that data is compatible with the schema and does not do any - validation. There is no need to validate the data if this has been done on - entry or at the server. However, if the data is invalid then issues may occur - when attempting to access it. - - If it is not certain that the data is valid then the - #validatedModelWithSchema:error: method should be used instead. - - @param schema The schema to use for parsing the data. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable model derived from the data value; or `nil` if an error - occurred, in which case `*error` will be populated with the failure reason. - Reasons for failure include: - - the data value does not contain correctly encoded record data. - - @since 6.0 - */ --(nullable PTDiffusionRecordV2Model *)modelWithSchema:(PTDiffusionRecordV2Schema *)schema - error:(NSError **)error; - -/** - Parses the value into a model based upon a specified schema. - - @param schema The schema to use for parsing the data. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable model derived from the data value; or `nil` if an error - occurred, in which case `*error` will be populated with the failure reason. - Reasons for failure include: - - the data value does not contain correctly encoded record data. - - the data value is incompatible with the supplied schema. - */ --(nullable PTDiffusionRecordV2Model *)validatedModelWithSchema:(PTDiffusionRecordV2Schema *)schema - error:(NSError **)error; - -/** - Returns the data value as an array of arrays of strings. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable array of records derived from the data value; or `nil` if - an error occurred, in which case `*error` will be populated with the failure - reason. - - @since 6.0 - */ --(nullable NSArray *> *)recordsWithError:(NSError **)error; - -/** - Returns the data value as an array of fields. - - This disregards record boundaries. If there is more than one record, they are - concatenated to produce a list of all of the fields. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable array of fields derived from the data value; or `nil` if - an error occurred, in which case `*error` will be populated with the failure - reason. - - @note This method would normally only be used when it is known that there is - only one record. - - @since 6.0 - */ --(nullable NSArray *)fieldsWithError:(NSError **)error; - -/** - Compare this value with an earlier version to calculate a structural delta. - - @param originalRecord The original value to compare with this value. - - @return Structural delta between the given value and the current value. - - @since 6.0.2 - */ --(PTDiffusionRecordV2Delta *)diffFromOriginalRecord:(PTDiffusionRecordV2 *)originalRecord; - -/** - A request that can be used to send this value using messaging. - - @since 6.0.1 - */ -@property(nonatomic, readonly) PTDiffusionRequest* request; - -/** - A response that can be used to send this value using messaging. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionResponse* response; - -/** - An update constraint requiring the current value of a topic to match this - value. - - Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. - - This constraint is useful when changing the value of a topic. It is unsatisfied - if no topic is present at the path, making it unsuitable for operations that - try to add topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; - -/** - Creates a value stream capable of receiving record values. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; - -/** - Creates a value stream capable of receiving record time series events. - - @param delegate The object which will handle the incoming stream. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be added as a - receiver of values using the Topics feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionTopicsFeature - - @since 6.0 - */ -+(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; - -/** - Creates a request handler capable of receiving record requests for a handler - registered at the server. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned handler. - - @return An object reliant on the supplied delegate that can be registered at - the server using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; - -/** - Creates a request stream capable of receiving record requests. - - @param delegate The object which will handle the incoming requests. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -+(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; - -/** - Creates a response stream capable of receiving record responses from discrete - sessions. - - @param delegate The object which will handle the incoming responses. A weak - reference is maintained to this object by the returned stream. - - @return An object reliant on the supplied delegate that can be set as the - receiver of requests using the Messaging feature. - - @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -+(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; - -/** - Compares the receiver to the given record. - - @param record The record object with which to compare the receiver. - - @return `YES` if the data in record is equal to the contents of the receiver, - otherwise `NO`. - - @note Two record objects are equal if they hold the same number of data bytes, - and if the bytes at the same position in the objects are the same. - - @since 6.3 - */ --(BOOL)isEqualToRecord:(nullable PTDiffusionRecordV2 *)record; - -@end - -/** - @brief Extension adding support for responding to requests using record values. - - @since 6.0 - */ -@interface PTDiffusionResponder (PTDiffusionRecordV2) - -/** - Dispatch a response to a request. - - @param record The value to send in response. - - @exception NSInvalidArgumentException Raised if the record argument is `nil`. - - @since 6.0 - */ --(void)respondWithRecord:(PTDiffusionRecordV2 *)record; - -@end - -/** - @brief Extension adding support to the Messaging feature for sending requests - accepting a record response. - - @since 6.0 - */ -@interface PTDiffusionMessagingFeature (PTDiffusionRecordV2) - -/** - Send a request for which a record response is expected. - - The message will be routed to an appropriately registered control handler for - the given path. - - @param request The request to send. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toPath:(NSString *)path - recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; - - -/** - Send a request to a session for which a record response is expected. - - @param request The request to send. - - @param sessionId The session to send the request to. - - @param path The path to send the request to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(void) sendRequest:(PTDiffusionRequest *)request - toSessionId:(PTDiffusionSessionId *)sessionId - path:(NSString *)path - recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; - - -@end - - -/** - @brief Extension adding support to the Time Series feature for appending and - editing events using record values. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature (PTDiffusionRecordV2) - -/** - Update a time series topic by appending a new record value. - - The server will add an event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void)appendToTopicPath:(NSString *)topicPath - recordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new record value with a supplied - timestamp. - - The server will add an event to the end of the time series based on the - supplied value and timestamp, with a new sequence number, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param value The event value. - - @param timestamp The supplied timestamp, must be greater or equal to that - of the most recent event appended to the topic. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.6 - */ --(void)appendToTopicPath:(NSString *)topicPath - recordValue:(PTDiffusionRecordV2 *)value - timestamp:(NSDate *)timestamp - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Update a time series topic by appending a new record value that overrides the - value of an existing event. - - The existing event is identified by its sequence number and must be an original - event. - - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - @param topicPath The path of the time series topic to update. - - @param originalSequence The sequence number of the original event to edit. - - @param value The event value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any of the topicPath, value or - completionHandler arguments are `nil`. Also raised if the originalSequence - argument exceeds `INT64_MAX`. - - @since 6.0 - */ --(void)editAtTopicPath:(NSString *)topicPath - originalSequence:(UInt64)originalSequence - recordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; - -/** - Evaluate a query for a time series topic where events have record values. - - @param query The configured query. - - @param topicPath The path of the time series topic to query. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - */ --(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query - atTopicPath:(NSString *)topicPath - recordCompletionHandler:(void (^)(PTDiffusionRecordV2TimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with - records. - - @since 6.2 - */ -@interface PTDiffusionFetchRequest (PTDiffusionRecordV2) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to only those topics with a - data type compatible with records. - - The record data type constrains the topic types. So, any topic types specified - in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as - records will be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.2 - */ --(void)fetchRecordValuesWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionRecordV2FetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -/** - @brief Extension adding support to the Topic Update feature for updating topics - with record values. - - @since 6.3 - */ -@interface PTDiffusionTopicUpdateFeature (PTDiffusionRecordV2) - -/** - Sets a topic to a specified record value. - - @param path The path of the topic. - - @param value The value. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toRecordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Sets a topic to a specified record value if a constraint is satisfied. - - @param path The path of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void) setWithPath:(NSString *)path - toRecordValue:(PTDiffusionRecordV2 *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a record value. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toRecordValue:completionHandler:. - - @param path The path of the topic. - - @param value The value. - - @param specification The required specification of the topic. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToRecordValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Ensures a topic exists and sets it to a record value if a constraint is - satisfied. - - If a topic does not exist at the path, one will be created using the - specification. If a topic does exist, its specification must match - specification, otherwise the operation will fail. - - In other respects this method works in the same way as - setWithPath:toRecordValue:constraint:completionHandler:. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param value The value. - - @param constraint The constraint that must be satisfied for the topic to be - updated. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(void) addWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - andSetToRecordValue:(PTDiffusionRecordV2 *)value - constraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Creates an update stream to use for updating a specific topic with record - values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; - -/** - Creates an update stream to use for updating a specific topic with record - values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; - -/** - Creates an update stream to use for creating and updating a specific topic with - record values. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Creates an update stream to use for creating and updating a specific topic with - record values if a constraint is satisfied. - - Update streams send a sequence of updates for a specific topic. The updates may - be delivered to the server as binary deltas. They do not provide exclusive - access to the topic. If exclusive access is required update streams should be - used with session locks as constraints. - - Streams are validated lazily when the first 'set' or 'validate' operation is - completed. Once validated a stream can be invalidated, after which it rejects - future updates. - - @param path The path of the topic. - - @param specification The required specification of the topic. - - @param constraint The constraint that must be satisfied for the update stream - to be validated. - - @return An update stream. - - @exception NSInvalidArgumentException If any argument is `nil` or if the topic - type defined in the specification is incompatible with - PTDiffusionDataTypes#recordV2. - - @since 6.3 - */ --(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h deleted file mode 100644 index feabd27..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h +++ /dev/null @@ -1,79 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Builds free format PTDiffusionRecordV2 values. - - This type of builder may be used to generate free format recordV2 values which - are not constrained by a PTDiffusionRecordV2Schema. - - Every mutating method returns the builder instance allowing calls to be - chained. - - @since 6.0.1 - */ -@interface PTDiffusionRecordV2Builder : NSObject - -/** - Adds a new record comprising the given fields. - - @param fields Field values. This may be an empty array, in which case the new - record is added with no fields. - - @return Builder instance with the new record added. - - @since 6.0.1 - */ --(instancetype)addRecordWithFields:(NSArray *)fields; - -/** - Adds one or more field values. - - If there is a current record, adds the fields to the end of the current record; - otherwise, adds a new record and adds the fields to that. - - @param fields Field values. This may be an empty array, in which case nothing - changes. - - @return Builder instance with the new field values added. - - @since 6.0.1 - */ --(instancetype)addFields:(NSArray *)fields; - -/** - Clears all current values from the builder allowing it to be reused to generate new data. - - @return Builder instance with all current values cleared. - - @since 6.0.1 - */ --(instancetype)clear; - -/** - Returns an immutable record from the current state of this builder. - - @return Immutable record from the current state of this builder. - - @since 6.0.1 -*/ --(PTDiffusionRecordV2 *)build; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h deleted file mode 100644 index a466731..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h +++ /dev/null @@ -1,66 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2DeltaChange; -@class PTDiffusionRecordV2Schema; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A description of the differences between two record values. - - @since 6.0.2 - */ -@interface PTDiffusionRecordV2Delta : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a list of the changes represented by the delta with reference to the - specified schema. - - The schema supplied must comply with the data format of the delta. No - validation takes place, so if the schema does not match the data then the - results may be unpredictable. - - @param schema The schema to use for interpreting this delta. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return List of the changes represented by the delta with reference to the - specified schema. - - @since 6.0.2 - */ --(nullable NSArray *)changesWithSchema:(PTDiffusionRecordV2Schema *)schema - error:(NSError **)error; - -/** - Compares the receiver to the given recordV2 delta. - - @param delta The object with which to compare the receiver. - - @return `YES` if the delta is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0.2 - */ --(BOOL)isEqualToRecordV2Delta:(nullable PTDiffusionRecordV2Delta *)delta; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h deleted file mode 100644 index 242bdcb..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h +++ /dev/null @@ -1,100 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2DeltaChangeType; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Represents a single change between one record value and another. - - @since 6.0.2 - */ -@interface PTDiffusionRecordV2DeltaChange : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - @brief A change contained within a record delta. - - @since 6.0.2 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2DeltaChangeType* type; - -/** - The name of the affected record. - - @since 6.0.2 - */ -@property(nonatomic, readonly) NSString* recordName; - -/** - The index of the affected record. - - This will be `0` for the first (or only) record occurrence with the given name. - - @since 6.0.2 - */ -@property(nonatomic, readonly) SInt32 recordIndex; - -/** - The name of the affected field. - - This will be a zero length (empty) string if the type is - PTDiffusionRecordV2DeltaChangeType#recordsAdded or - PTDiffusionRecordV2DeltaChangeType#recordsRemoved. - - @since 6.0.2 - */ -@property(nonatomic, readonly) NSString* fieldName; - -/** - The index of the affected field. - - This will be `0` if the type is - PTDiffusionRecordV2DeltaChangeType#recordsAdded or - PTDiffusionRecordV2DeltaChangeType#recordsRemoved. - - @since 6.0.2 - */ -@property(nonatomic, readonly) SInt32 fieldIndex; - -/** - The string key representation of the affected item in the form - `recordName(recordIndex).fieldName(fieldIndex)` or just - `recordName(recordIndex)` if the type is - PTDiffusionRecordV2DeltaChangeType#recordsAdded or - PTDiffusionRecordV2DeltaChangeType#recordsRemoved. - - @since 6.0.2 - */ -@property(nonatomic, readonly) NSString* key; - -/** - Compares the receiver to the given recordV2 delta change. - - @param change The object with which to compare the receiver. - - @return `YES` if the change is equal to the contents of the receiver, - otherwise `NO`. - - @since 6.0.2 - */ --(BOOL)isEqualToRecordV2DeltaChange:(nullable PTDiffusionRecordV2DeltaChange *)change; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h deleted file mode 100644 index 764b033..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h +++ /dev/null @@ -1,98 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The type of change represented by a record delta. - - @since 6.0.2 - */ -@interface PTDiffusionRecordV2DeltaChangeType : PTDiffusionEnumeration - -/** - The change indicates that a field had its value changed. - - This could be a field that has had its value changed or a new field that has - been added at the end of a variable length record. - - The change will contain name and index details of both the record and the - field. - - @return Instance indicating that a field had its value changed. - - @since 6.0.2 - */ -+(instancetype)fieldChanged; - -/** - The change indicates that one or more field values have been added. - - This will only occur when variable multiplicity fields are used within records. - - The change will contain name and index of the record and the name and index of - the first field added. - - @return Instance indicating that one or more field values have been added. - - @since 6.0.2 - */ -+(instancetype)fieldsAdded; - -/** - The change indicates that a field value has been removed. - - This will only occur when variable multiplicity fields are used within records. - - The change will contain name and index details of the record and the name and - index of the first field removed. - - @return Instance indicating that a field value has been removed. - - @since 6.0.2 - */ -+(instancetype)fieldsRemoved; - -/** - The change indicates that one or more records have been added. - - This will only occur when variable multiplicity records are in use. - - The change will contain only the record name and the index of the first record - added. - - @return Instance indicating that one or more records have been added. - - @since 6.0.2 - */ -+(instancetype)recordsAdded; - -/** - The change indicates that one or more records have been removed. - - This will only occur when variable multiplicity records are in use. - - The change will contain only the record name and the index of the first record - removed. - - @return Instance indicating that one or more records have been removed. - - @since 6.0.2 - */ -+(instancetype)recordsRemoved; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h deleted file mode 100644 index f4fcca1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2FetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a record fetch operation issued to the - server. - - A record fetch operation is issued using the - PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionRecordV2FetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * recordResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h deleted file mode 100644 index 3d2d57d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a record fetch operation for a single - selected topic. - - A record fetch operation is issued using the - PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionRecordV2FetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) PTDiffusionRecordV2* record; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h deleted file mode 100644 index 53f84c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h +++ /dev/null @@ -1,183 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A data model based upon a schema. - - A read only model can be created from any PTDiffusionRecordV2 object using the - PTDiffusionRecordV2#modelWithSchema: method. The model then provides direct - access to the fields within the data. Fields may be accessed either by - explicitly specifying the record and field occurrence or by specifying a key of - the form: - - `recordName(recordIndex).fieldName(fieldIndex)` - - Indexes start from 0 and if omitted then 0 is assumed. The record name may also - be omitted, in which case the first record definition. This form of addressing - is useful when there is only one record definition. - - Examples of valid keys include: - - | Key | Meaning | - | --------------------------- | ----------------------------------------------------------------------------- | - | `Address(4).AddressLine(3)` | The 4th `AddressLine` occurrence within the 5th `Address` record. | - | `Address.Name` | The first (or only) `Name` field within the first (or only) `Address` record. | - | `AddressLine(1)` | The 2nd `AddressLine` field within the first (or only) record. | - | `Name` | The first (or only) `Name` field within the first (or only) record. | - - The #recordCountWithRecordName:error: and - #fieldCountWithRecordName:recordIndex:fieldName:error: methods are useful for - determining the actual number of occurrences of variable multiplicity items. - - @since 6.0 - */ -@interface PTDiffusionRecordV2Model : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns an immutable record instance generated from this model; or `nil` if an - error occurred, in which case `*error` will be populated with the failure - reason. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return Immutable record instance generated from this model. - - @since 6.0 - */ --(nullable PTDiffusionRecordV2 *)valueWithError:(NSError **)error; - -/** - Returns the actual number of occurrences of a named field within a specified - record occurrence. - - For all but variable fields this returns the schema defined number of - occurrences of the field. - - @param recordName The record name. - - @param recordIndex The record index. - - @param fieldName The field name. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The actual number of occurrences of the field as an unsigned integer; - or `nil` if an error occurred, in which case `*error` will be populated with - the failure reason. Reasons for failure include: - - either `recordName` or `fieldName` are not defined in the schema. - - `recordIndex` is out of bounds. - - @exception NSInvalidArgumentException If either recordName or fieldName is - `nil`, or if recordIndex is negative. - - @since 6.0 - */ --(nullable NSNumber *)fieldCountWithRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldName:(NSString *)fieldName - error:(NSError **)error; - -/** - Returns the actual number of occurrences of a named record. - - If the record is not variable, this is the same as the defined number of - occurrences in the schema. - - @param recordName The record name. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The actual number of occurrences of the record as an unsigned integer; - or `nil` if an error occurred, in which case `*error` will be populated with - the failure reason. Reasons for failure include: - - `recordName` is not defined in the schema. - - @exception NSInvalidArgumentException If recordName is `nil`. - - @since 6.0 - */ --(nullable NSNumber *)recordCountWithRecordName:(NSString *)recordName - error:(NSError **)error; - -/** - Get a field value. - - This allows an item to be addressed using a key of the form - `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in - which case 0 is assumed. The record part may also be omitted in which case the - first occurrence of the first record is assumed. - - @param key The field key. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The field value; or `nil` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - the key does not address a valid field. - - an index is out of bounds. - - the key format is invalid. - - an index is not a valid number. - - @exception NSInvalidArgumentException If key is `nil`. - - @since 6.0 - */ --(nullable NSString *)fieldValueForKey:(NSString *)key - error:(NSError **)error; - -/** - Get a field value. - - @param recordName The name of the record. - - @param recordIndex the index of the record. - - @param fieldName The name of the field. - - @param fieldIndex The index of the field. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return The field value; or `nil` if an error occurred, in which case `*error` - will be populated with the failure reason. Reasons for failure include: - - either `recordName` or `fieldName` are not defined in the schema. - - either `recordIndex` or `fieldIndex` is out of bounds. - - @exception NSInvalidArgumentException If either recordName or fieldName is - `nil`, recordIndex is negative or fieldIndex is negative. - - @since 6.0 - */ --(nullable NSString *)fieldValueForRecordName:(NSString *)recordName - recordIndex:(SInt32)recordIndex - fieldName:(NSString *)fieldName - fieldIndex:(SInt32)fieldIndex - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h deleted file mode 100644 index e97cfda..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling record messaging requests with a - handler registered at the server. - - @see PTDiffusionRecordV2 - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionRecordV2RequestDelegate - -/** - Called when a record request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param record The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h deleted file mode 100644 index 0c309ea..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling RecordV2 messaging requests. - - @see PTDiffusionRecordV2 - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionRecordV2RequestStreamDelegate - -/** - Called when a record request has been received. - - @param stream The stream that received the request. - - @param record The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h deleted file mode 100644 index 0a3ed64..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h +++ /dev/null @@ -1,114 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionMutableRecordV2Model; -@class PTDiffusionRecordV2SchemaRecord; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A schema. - - A schema describes data value format in terms of one or more record definitions. - A record definition describes the layout of a record and comprises one or more - field definitions. - - Within the data value there can be multiple occurrences of a record or field - described by a single definition. The defined (or allowed, when describing - variable numbers) number of occurrences of each definition is referred to as - its 'multiplicity'. The multiplicity can be fixed (the item occurs a fixed - number of times), or variable (the item occurs from a minimum number of times - to a maximum number of times). If a variable field is used it must be the last - in a record definition and if a variable record is used it must be the last in - the schema definition. - - A field may be defined as of type 'string', 'integer' or 'decimal'. A decimal - type has a further property of 'scale' which defines the number of digits to - the right of the decimal point. - - @see PTDiffusionRecordV2SchemaBuilder - - @since 6.0 - */ -@interface PTDiffusionRecordV2Schema : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a schema object initialized from the given JSON definition. - - @param jsonData Encoded JSON string representation of the schema. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return An immutable schema derived from the JSON representation; or `nil` if - an error occurred, in which case `*error` will be populated with the failure - reason. - - @since 6.0 - */ -+(nullable instancetype)schemaWithJSONData:(NSData *)jsonData - error:(NSError **)error; - -/** - Returns the schema in a JSON format. - - @return Schema in a JSON format. - - @since 6.0 - */ --(NSData *)JSONData; - -/** - Create a mutable model based upon the schema. - - The model will be created with all mandatory record occurrences and all - mandatory field occurrences initialized to default values. - - Such a model may be mutated and used to generate updated PTDiffusionRecordV2 - instances for updating purposes. - - @return a new initialized model. - - @since 6.0 - */ --(PTDiffusionMutableRecordV2Model *)createMutableModel; - -/** - An immutable, ordered list of record definitions. - - There will be at least one. - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray * records; - -/** - Compares the receiver to the given schema. - - @param schema The schema object with which to compare the receiver. - - @return `YES` if the schema is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2Schema:(nullable PTDiffusionRecordV2Schema *)schema; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h deleted file mode 100644 index 5612c5d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h +++ /dev/null @@ -1,342 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRecordV2Schema; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Used to build an immutable PTDiffusionRecordV2Schema. - - A schema defines the records and fields that may occur in a RecordV2 topic - value. - - The schema must declare at least one record type and every record must have at - least one field type declared. - - Every record type and field type has a 'multiplicity' which defines the number - of times that the record or field may occur within the data. Multiplicity is - specified as a 'minimum' and 'maximum' number of occurrences or where the - minimum and maximum are the same (fixed multiplicity) then the multiplicity may - be specified as a single 'occurs' value. If the minimum and maximum are - different, this is referred to a 'variable' multiplicity. Only the last record - declared or the last field within a record may have variable multiplicity. The - maximum value may be declared as -1 to indicate that the record or field can - have an unlimited number of occurrences. - - The builder is used to add a record definition followed by the fields within - it. After all fields have been added to a record another may then be added, and - so on, and then finally #build is queried to return an immutable schema - object. - - Every mutating method returns the builder instance allowing calls to be - chained. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaBuilder : NSObject - -/** - Returns an immutable schema from the current state of this builder. - - @return Immutable schema from the current state of this builder. - - @exception NSInternalInconsistencyException No records have been specified yet - for this builder instance. - - @since 6.0 - */ --(PTDiffusionRecordV2Schema *)build; - -/** - Add a new single occurrence record to the schema. - - This is the equivalent to calling #addRecordWithName:occurs: with a value of - `1` for `occurs`. - - @param name The record name. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addRecordWithName:(NSString *)name; - -/** - Add a new fixed multiplicity record to the schema. - - This is the equivalent to calling #addRecordWithName:min:max: with the value of - `occurs` for both `min` and `max`. - - @param name The record name. - - @param occurs The number of times the record is to occur. This must be a - positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addRecordWithName:(NSString *)name - occurs:(SInt32)occurs; - -/** - Add a new record to the schema. - - @param name The record name. - - @param min The minimum number of occurrences of the record. - - @param max The maximum number of occurrences of the record. This must either be - `-1` to indicate an unlimited number or it must be a positive number greater - than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addRecordWithName:(NSString *)name - min:(SInt32)min - max:(SInt32)max; - -/** - Add a new single occurrence string field to the current record. - - This is the equivalent to calling #addStringWithName:occurs: with a value of - `1` for `occurs`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addStringWithName:(NSString *)name; - -/** - Add a new fixed multiplicity string field to the current record. - - This is the equivalent to calling #addStringWithName:min:max: with the value of - `occurs` for both `min` and `max`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param occurs The number of times the field is to occur within the record. This - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addStringWithName:(NSString *)name - occurs:(SInt32)occurs; - -/** - Add a new string field to the current record. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param min The minimum number of occurrences of the field within the record. - - @param max The maximum number of occurrences of the field within the record. - This must either be `-1` to indicate an unlimited number or it must be a - positive number greater than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addStringWithName:(NSString *)name - min:(SInt32)min - max:(SInt32)max; - -/** - Add a new single occurrence integer field to the current record. - - This is the equivalent to calling #addIntegerWithName:occurs: with a value of - `1` for `occurs`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addIntegerWithName:(NSString *)name; - -/** - Add a new fixed multiplicity integer field to the current record. - - This is the equivalent to calling #addIntegerWithName:min:max: with the value - of `occurs` for both `min` and `max`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param occurs The number of times the field is to occur within the record. This - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addIntegerWithName:(NSString *)name - occurs:(SInt32)occurs; - -/** - Add a new integer field to the current record. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param min The minimum number of occurrences of the field within the record. - - @param max The maximum number of occurrences of the field within the record. - This must either be `-1` to indicate an unlimited number or it must be a - positive number greater than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addIntegerWithName:(NSString *)name - min:(SInt32)min - max:(SInt32)max; - -/** - Add a new single occurrence decimal field to the current record. - - This is the equivalent to calling #addDecimalWithName:scale:occurs: with a - value of `1` for `occurs`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param scale The scale of the field (the number of decimal places). This must - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `scale` is less - than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addDecimalWithName:(NSString *)name - scale:(SInt32)scale; - -/** - Add a new fixed multiplicity decimal field to the current record. - - This is the equivalent to calling #addDecimalWithName:scale:min:max: with the - value of `occurs` for both `min` and `max`. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param scale The scale of the field (the number of decimal places). This must - must be a positive value. - - @param occurs The number of times the field is to occur within the record. This - must be a positive value. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil`, `scale` is less than - one or `occurs` is less than one. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addDecimalWithName:(NSString *)name - scale:(SInt32)scale - occurs:(SInt32)occurs; - -/** - Add a new decimal field to the current record. - - @param name The field name. This must not be the same as any field already - added to the record. - - @param scale The scale of the field (the number of decimal places). This must - must be a positive value. - - @param min The minimum number of occurrences of the field within the record. - - @param max The maximum number of occurrences of the field within the record. - This must either be `-1` to indicate an unlimited number or it must be a - positive number greater than or equal to `min`. - - @return This builder. - - @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. - - @exception NSInternalInconsistencyException If schema rules are violated. - - @since 6.0 - */ --(instancetype)addDecimalWithName:(NSString *)name - scale:(SInt32)scale - min:(SInt32)min - max:(SInt32)max; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h deleted file mode 100644 index 3db6034..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2SchemaFieldType; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A field definition within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaField : PTDiffusionRecordV2SchemaNode - -/** - The field type. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2SchemaFieldType* type; - -/** - The scale of a decimal field or zero for other types. - - @since 6.0 - */ -@property(nonatomic, readonly) SInt32 scale; - -/** - Compares the receiver to the given schema field. - - @param field The schema field object with which to compare the receiver. - - @return `YES` if the field is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2SchemaField:(nullable PTDiffusionRecordV2SchemaField *)field; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h deleted file mode 100644 index 1528f70..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Type of field defined within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaFieldType : PTDiffusionEnumeration - -/** - Plain string. - - @return Instance representing the plain string schema field type. - - @since 6.0 - */ -+(instancetype)string; - -/** - Integer. - - @return Instance representing the integer schema field type. - - @since 6.0 - */ -+(instancetype)integer; - -/** - Decimal. - - @return Instance representing the decimal schema field type. - - @since 6.0 - */ -+(instancetype)decimal; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h deleted file mode 100644 index 467e591..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A node within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaNode : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The node name. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* name; - -/** - The minimum number of occurrences of the node within its parent. - - This may be zero for a variable multiplicity field, otherwise it will be a - positive value. - - @since 6.0 -*/ -@property(nonatomic, readonly) SInt32 min; - -/** - The maximum number of occurrances of the node within its parent. - - This will be a positive value greater than or equal to the minimum value, or - -1 to indicate an unlimited number. - - @since 6.0 -*/ -@property(nonatomic, readonly) SInt32 max; - -/** - `YES` if the node has variable multiplicity - i.e. `min != max`. - - @since 6.0 - */ -@property(nonatomic, readonly, getter=isVariable) BOOL variable; - -/** - Compares the receiver to the given schema node. - - @param node The schema node object with which to compare the receiver. - - @return `YES` if the node is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2SchemaNode:(nullable PTDiffusionRecordV2SchemaNode *)node; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h deleted file mode 100644 index 5faf861..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h +++ /dev/null @@ -1,50 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2SchemaField; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A record definition within a schema. - - @since 6.0 - */ -@interface PTDiffusionRecordV2SchemaRecord : PTDiffusionRecordV2SchemaNode - -/** - An ordered list of the field definitions within the record. - - There will be at least one. - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* fields; - -/** - Compares the receiver to the given schema record. - - @param record The schema record object with which to compare the receiver. - - @return `YES` if the record is equal to the contents of the receiver, otherwise - `NO`. - - @since 6.0 - */ --(BOOL)isEqualToRecordV2SchemaRecord:(nullable PTDiffusionRecordV2SchemaRecord *)record; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h deleted file mode 100644 index 2c8d181..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling record messaging responses from - individual sessions. - - @see PTDiffusionRecordV2 - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionRecordV2SessionResponseStreamDelegate - -/** - Called when a session responds to a request with a record. - - @param stream The stream that received the response. - - @param record The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithRecord:(PTDiffusionRecordV2 *)record - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h deleted file mode 100644 index b684558..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as a record. - - @since 6.0 - */ -@interface PTDiffusionRecordV2TimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The record value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2* record; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index fbeb15d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2TimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - record values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with record values. - - @since 6.0 - */ -@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a record value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldRecordEvent The previous event. If `nil` then this is the first event. - - @param newRecordEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldRecordEvent:(nullable PTDiffusionRecordV2TimeSeriesEvent *)oldRecordEvent - newRecordEvent:(PTDiffusionRecordV2TimeSeriesEvent *)newRecordEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h deleted file mode 100644 index 9eb6d39..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2TimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of record time series events. - - @since 6.0 - */ -@interface PTDiffusionRecordV2TimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The record time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* recordEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h deleted file mode 100644 index c1276ee..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h +++ /dev/null @@ -1,109 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - record values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionRecordV2UpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionRecordV2* value; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If either value or completionHandler is - `nil`. - - @since 6.3 - */ --(BOOL) setValue:(PTDiffusionRecordV2 *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h deleted file mode 100644 index f4a23cd..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRecordV2; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for record - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for record - topics. - - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@protocol PTDiffusionRecordV2ValueStreamDelegate - -/** - An update was received for a topic path handled by a record value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldRecord The previous value. If `nil` then this is the first value. - - @param newRecord The new value derived from the last update received from the - server. - - @since 6.0 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldRecord:(nullable PTDiffusionRecordV2 *)oldRecord - newRecord:(PTDiffusionRecordV2 *)newRecord; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h deleted file mode 100644 index 14b8d3d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A reference to a registered handle. - - Such a reference is provided once a handler with a server-side presence has - been registered. - - @since 6.1 - */ -@interface PTDiffusionRegistration : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Request that the handler is unregistered from the server. - - After the handler is unregistered, the completionHandler will be notified. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.1 - */ --(void)closeWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Request that the handler is unregistered from the server. - - If the handler has already been unregistered, calling this method has no effect. - - @note Before 6.1 this method was defined on PTDiffusionTopicTreeRegistration. - - @since 5.7 - */ --(void)close; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h deleted file mode 100644 index 991ffb8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h +++ /dev/null @@ -1,78 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRemoteServerConnectionOption; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Interface for a RemoteServer specification - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionRemoteServer : NSObject - - -/** - The remote server name - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *name; - - -/** - The URL for connection to remote server. - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *url; - - -/** - The principal used for the remote server connection - - @since 6.5 - */ -@property (nonatomic, readonly) NSString *principal; - - -/** - The remote server connection options - - @since 6.5 - */ -@property (nonatomic, readonly) NSDictionary *connectionOptions; - - -/** - The missing topic notification filter expression or null if - one has not been specified. - - @since 6.7 - */ -@property (nonatomic, readonly) NSString *missingTopicNotificationFilter; - - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h deleted file mode 100644 index 61737b8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h +++ /dev/null @@ -1,157 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionRemoteServerConnectionOption; -@class PTDiffusionRemoteServer; -@class PTDiffusionCredentials; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A Remote Server builder. - - A builder of this type is used to create instances of {@link PTDiffusionRemoteServer} - that can be supplied to {@link PTDiffusionRemoteServersFeature#createRemoteServer:completionHandler: createRemoteServer:}. - - @since 6.7 - */ -@interface PTDiffusionRemoteServerBuilder : NSObject - -/** - Reset the builder. - - @return this builder. - - @since 6.7 - */ --(instancetype)reset; - - -/** - Specifies the name of a principal used by the remote server to - connect to the primary server. - - The default, if not specified, is the anonymous principal. - - @param principal principal name of a zero length string to indicate an - anonymous connection. - - @return this builder. - - @since 6.7 - */ --(instancetype)principal:(NSString * _Nullable)principal; - - -/** - Specifies the credentials to use when connecting to the primary server. - - The default, if not specified, is {@link PTDiffusionCredentials.noCredentials}. - - @param credentials the credentials to use. - - @return this builder. - - @since 6.7 - */ --(instancetype)credentials:(PTDiffusionCredentials * _Nullable)credentials; - - -/** - Specifies a map of {@link PTDiffusionRermoteServerConnectionOption} settings. - - This will replace any options currently set for the builder. - - Any options not supplied will take their default values. - - If no connection options are specified, either using this method or - {@link PTDiffusionRemoteServerBuilder#connectionOption:withValue:} then all options - will take their default values. - - @param connectionOptions the map of options. - - @return this builder. - - @since 6.7 - */ --(instancetype)connectionOptions:(NSDictionary* _Nullable)connectionOptions; - - -/** - Specifies a single connection option. - - This will add to the options currently specified to the builder, or replace a value if - it has already been specified. - - @param option the connection option. - - @param value the connection option value or null to remove the option. - - @return this builder. - - @since 6.7 - */ --(instancetype)connectionOption:(PTDiffusionRemoteServerConnectionOption *)option - withValue:(NSString * _Nullable)value; - - -/** - Specifies a topic selector expression which will filter missing - topic notifications propagated from secondary to primary servers. - - {@link PTDiffusionMissingTopicNotification}s are notified when a client - subscribes using a topic selector that matches no existing topics. - By specifying a missing topic notification filter, all notifications that - match the filter on the secondary server will be propagated to the primary server. - - A match occurs if the path prefix of the subscription selector matches the path - prefix of the specified selector. - - If no filter is specified then no missing topic notifications will be propagated. - - The special selector expression `*.*` may be used to indicate that all missing topic - notifications should be propagated. - - Only the path prefix of the specified selector(s) is considered when matching therefore, - any use of regular expressions would be ignored. - - @param filter a topic selector expression specifying the filter to apply or null to remove - any existing filter. - - @return this builder. - - @since 6.7 - */ --(instancetype)missingTopicNotificationFilter:(NSString * _Nullable)filter; - - -/** - Creates a remote server object using the current values known - to this builder. - - @param name the name of the remote server. - - @param url the URL to use to connect to the primary server. - - @return a new remote server instance. - - @since 6.7 - */ --(PTDiffusionRemoteServer *)createWithName:(NSString *)name - andURL:(NSString *)url; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h deleted file mode 100644 index 2cae572..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h +++ /dev/null @@ -1,165 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Connection option key for a remote server - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionRemoteServerConnectionOption : PTDiffusionEnumeration - - -/** - Specifies the reconnection timeout session attribute. - - This is the total time in milliseconds that will be allowed to - reconnect a failed connection to the remote server. - - For reconnection to work the remote server connector must have - been configured to support reconnection. - - If a value is not specified - `PTDiffusionSessionConfiguration.reconnectionTimeout` is used. - - @return Instance representing the key for the reconnection timeout session attribute. - - @since 6.5 - */ -+(instancetype)reconnectionTimeout; - - -/** - Specifies the delay after losing a connection before attempting a - reconnection. - - The value is specified in milliseconds. Default 1000 (1 second). - - @return Instance representing the key for the delay after losing a - connection before attempting a reconnection. - - @since 6.5 - */ -+(instancetype) retryDelay; - - -/** - Specifies the recovery buffer size session attribute. - - If the remote server is configured to support reconnection, a - session established with a non-zero reconnect-timeout retains a - buffer of sent messages. If the session disconnects and - reconnects, this buffer is used to re-send messages that the - server has not received. - - The default value is 10,000 messages. If reconnect-timeout is 0 - then this value is ignored. - - @return Instance representing the key for the recovery buffer size - session attribute. - - @since 6.5 - */ -+(instancetype)recoveryBufferSize; - - -/** - Specifies the input buffer size session attribute. - - This is the size of the input buffer to use for the connection - with the remote server. It is used to receive messages from the - remote server. This should be set to the same size as the output - buffer used at the remote server. - - If not specified, a default of 1024k is used. - - @return Instance representing the key for the input buffer size - session attribute. - - @since 6.5 - */ -+(instancetype)inputBufferSize; - - -/** - Specifies the output buffer size session attribute. - - This is the size of the output buffer to use for the connection - with the remote server. It is used to send messages to the remote - server. This should be set to the same size as the input buffer - used by the remote server. - - If not specified, a default of 1024k is used. - - @return Instance representing the key for output buffer size - session attribute. - - @since 6.5 - */ -+(instancetype)outputBufferSize; - - -/** - Specifies the maximum queue size session attribute. - - This is the maximum number of messages that can be queued to send - to the remote server. If this number is exceeded, the connection - will be closed. This must be sufficient to cater for messages - that may be queued whilst disconnected (awaiting reconnect). - - The default value is 10,000 messages. - - @return Instance representing the key for the maximum queue size - session attribute. - - @since 6.5 - */ -+(instancetype)maximumQueueSize; - - -/** - Specifies the connection timeout session attribute value (in - milliseconds). - - If a value is not specified - `PTDiffusionSessionConfiguration.connectionTimeout` is used. - - @return Instance representing the key for the connection timeout - session attribute. - - @since 6.5 - */ -+(instancetype)connectionTimeout; - - - -/** - Specifies the write timeout session attribute value (in - milliseconds). - - @return Instance representing the key for the write timeout - session attribute. - - @since 6.5 - */ -+(instancetype)writeTimeout; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h deleted file mode 100644 index 7c8ec46..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h +++ /dev/null @@ -1,97 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Represents the current connection state of the remote server - - This is used by the Remote Servers feature - - @since 6.5 - */ -@interface PTDiffusionRemoteServerConnectionState : PTDiffusionEnumeration - - -/** - The connection is inactive. - - This means that the remote server can successfully connect but a - physical connection is not being maintained as there are no - components that require the remote server. - - If in an inactive or failed state, a test connection will have - been tried to check that the connection can be made and the - connection will then have been closed. - - @return Instance representing the inactive connection state. - - @since 6.5 - */ -+(instancetype)inactive; - - -/** - The remote server is connected and actively in use by components - that require it. - - @return Instance representing the connected connection state. - - @since 6.5 - */ -+(instancetype)connected; - - -/** - The connection has failed but a retry is scheduled. - - In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` - will provide details of the failure that resulted in a retry. - - @return Instance representing the retrying connection state. - - @since 6.5 - */ -+(instancetype)retrying; - - -/** - The connection failed to establish. - - If the connection was in an inactive or failed state state, a - test connection was tried and failed. - - In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` - will provide more detail. - - @return Instance representing the failed connection state. - - @since 6.5 - */ -+(instancetype)failed; - - -/** - The named remote server did not exist. - - @return Instance representing the remote server missing connection state. - - @since 6.5 - */ -+(instancetype)missing; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h deleted file mode 100644 index 17f5dbf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h +++ /dev/null @@ -1,272 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionCredentials; -@class PTDiffusionRemoteServer; -@class PTDiffusionRemoteServerConnectionOption; -@class PTDiffusionRemoteServerConnectionState; -@class PTDiffusionCheckRemoteServerResult; -@class PTDiffusionCreateRemoteServerResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client session to manage remote servers. - - A remote server provides the configuration to connect to a Diffusion server - belonging to a different cluster. Each server in the local cluster will - establish a session with each remote server. - - Higher level components, such as remote topic views, can specify the use of - such remote servers by name. The connecting and disconnecting is handled - automatically by the server (or servers in the same cluster) where the remote - servers are defined. - - A component can specify a remote server by name even if it does not exist - (has not yet been created) and when the remote server is created the - connection will take place automatically. - - If a remote server is removed and there are components that depend upon it, - those components will be disabled. - - An example of the use of remote servers is within remote topic views (those - that indicate that their source topics are to be taken from a different - server) where the name of such a server can be specified. - - ### Remote Server persistence and replication - - Remote server configurations created through this feature are replicated - across a cluster and persisted to disk. - - ### Access control - - The following access control restrictions are applied: - -
    -
  • To create, remove or check a remote server, a session needs the - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission. -
  • To list remote servers, a session needs the - {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission. -
- - ### Accessing the feature - - This feature may be obtained from a {@link PTDiffusionSession session} as follows: - -
- PTDiffusionRemoteServersFeature *remoteServers = session.remoteServersFeature;
- 
- - @since 6.5 - */ -@interface PTDiffusionRemoteServersFeature : PTDiffusionFeature - - -/** - @brief Create a new remote server instance at the server. - - If a remote server with the same name already exists an error will be returned. - - @param remoteServer remote server definition using a {@link PTDiffusionRemoteServerBuilder - remote server builder}. - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a full definition of the remote server created - by the operation. - If the remote server definition is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.7 - */ --(void)createRemoteServer:(PTDiffusionRemoteServer *const)remoteServer - completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler; - - -/** - @brief Create a new remote server instance with default connection options. - - If a remote server with the same name already exists an error will be returned. - - @param name the name of the remote server - - @param url the URL used to connect to the primary server - - @param principal the name of a principal used by the remote server to - connect to the primary server. A zero length string may be - supplied to indicate an anonymous connection - - @param credentials used for connecting to the primary server - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a full definition of the remote server created - by the operation. - If the remote server definition is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - - @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. - This method will be removed in a future release. - */ --(void)createRemoteServer:(NSString *const)name - withURL:(NSString *const)url - principal:(NSString *const)principal - credentials:(PTDiffusionCredentials *const)credentials - completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); - - -/** - @brief Create a new remote server instance. - - If a remote server with the same name already exists an error will be returned. - - @param name the name of the remote server - - @param url the URL used to connect to the primary server - - @param principal the name of a principal used by the remote server to - connect to the primary server. A zero length string may be - supplied to indicate an anonymous connection - - @param credentials used for connecting to the primary server - - @param connectionOptions map of connection option settings. Any options - not supplied will take their default values - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a full definition of the remote server - created by the operation. - If the remote server definition is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - - @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. - This method will be removed in a future release. - */ --(void)createRemoteServer:(NSString *const)name - withURL:(NSString *const)url - principal:(NSString *const)principal - credentials:(PTDiffusionCredentials *const)credentials - connectionOptions:(NSDictionary const*)connectionOptions - completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); - - - -/** - @brief Check the current state of a named remote server. - - This will report back the current state of the remote server, but also - can be used to forcibly retry a failed remote server connection. - - @param name the name of the remote server - - @param completionHandler a completion handler that returns when a response is - received from the server, return the details of the remote server state. - If the state is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - */ --(void)checkRemoteServer:(NSString *const)name - completionHandler:(void (^)(PTDiffusionCheckRemoteServerResult * _Nullable result, - NSError * _Nullable error))completionHandler; - - -/** - @brief List all the remote servers that have been created - - @param completionHandler a completion handler that returns when a response is - received from the server, returning a list of remote servers. - If the list is nil, this could mean an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have - {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - if the session is closed -
- - @since 6.5 - */ --(void)listRemoteServers:(void (^)(NSArray * _Nullable result, - NSError * _Nullable error))completionHandler; - - -/** - @brief Remove a named remote server if it exists - - If the named remote server does not exist the completionHandler - will return without an error - - When a named remote server is removed, any components that specify it - would be disabled. - - @param name the name of the remote server - - @param completionHandler a completion handler that returns when a response is - received from the server. - If the error is not nil, this means an error has occurred. - These may include: -
    -
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - - if a transient cluster error occurred -
  • {@link PTDiffusionError_AccessDenied} - - if the calling session does not have - {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission -
  • {@link PTDiffusionError_SessionClosed} - - if the session is closed -
- - @since 6.5 - */ --(void)removeRemoteServer:(NSString *const)name - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h deleted file mode 100644 index 5eeafe1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A request to be sent using messaging. - - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionRequest : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h deleted file mode 100644 index 6c99e05..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A request context provides additional contextual information for - received messaging requests. - - @since 6.0 - */ -@interface PTDiffusionRequestContext : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The ID of the session that sent the request. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - -/** - The message path of the request. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* path; - -/** - Properties of the session that sent the request. - - @since 6.0 - */ -@property(nonatomic, readonly) NSDictionary* sessionProperties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h deleted file mode 100644 index 9900629..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Handler to receive request notifications. - - @see PTDiffusionMessagingFeature - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionRequestHandler : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h deleted file mode 100644 index a03f935..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A request stream represents an asynchronous, variable length feed of - messaging requests. - - @see PTDiffusionMessagingFeature - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionRequestStream : PTDiffusionStream - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h deleted file mode 100644 index 940983a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h +++ /dev/null @@ -1,62 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionResponse; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Responder provided with requests, used to dispatch responses. - - @see PTDiffusionRequestHandler - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.0 - */ -@interface PTDiffusionResponder : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Dispatch a response to a request. - - @param response The value to send in response. - - @exception NSInvalidArgumentException Raised if the response argument is `nil`. - - @since 6.1 - */ --(void)respondWithResponse:(PTDiffusionResponse *)response; - -/** - Dispatch a rejection to a request, indicating that a response could not be - generated. - - @param reason Freeform text to provide to the requestor by way of explanation - for this rejection. - - @exception NSInvalidArgumentException Raised if the reason argument is `nil`. - - @since 6.0 - */ --(void)rejectWithReason:(NSString *)reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h deleted file mode 100644 index 9828470..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h +++ /dev/null @@ -1,36 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A response to be sent using messaging. - - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionMessagingFeature - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.1 - */ -@interface PTDiffusionResponse : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h deleted file mode 100644 index abd9c58..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h +++ /dev/null @@ -1,87 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionCredentials; -@class PTDiffusionGlobalPermission; -@class PTDiffusionPathPermission; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature provides a client session with the ability to change its - associated principal as well as to query permissions assigned to it. - - The Security feature for a session can be obtained from the session's - `security` property. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSecurityFeature : PTDiffusionFeature - -/** - Change the security principal associated with the current session. - - If authentication fails, the current principal will remain valid. - - @param principal The new principal name. - - @param credentials The credentials authenticating the new principal. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if the completionHandler argument - is `nil`. - - @since 5.6 - */ --(void)changePrincipal:(nullable NSString *)principal - credentials:(nullable PTDiffusionCredentials *)credentials - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Query the global permissions assigned to the calling session. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.3 - */ --(void)getGlobalPermissionsWithCompletionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; - -/** - Query the topic permissions assigned to the calling session on a given path. - - @param path the path to query for permissions - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @since 6.3 - */ --(void)getTopicPermissionsForPath:(NSString *)path - completionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h deleted file mode 100644 index e71c65d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h +++ /dev/null @@ -1,55 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -/** - Delivery priority for a sent message. - - @since 5.6 - */ -typedef NS_ENUM(NSUInteger, PTDiffusionSendDeliveryPriority) { - /** - Normal priority. - - @since 5.6 - */ - PTDiffusionSendDeliveryPriority_Normal = 1, - - /** - Highest priority. - - @since 5.6 - */ - PTDiffusionSendDeliveryPriority_High = 2, - - /** - Lowest priority. - - @since 5.6 - */ - PTDiffusionSendDeliveryPriority_Low = 3, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - Returns a localized string representation of the given send delivery priority. - - @param priority The send delivery priority for which a description is to be - returned. - - @since 5.7 - */ -NSString* PTDiffusionSendDeliveryPriorityToString(PTDiffusionSendDeliveryPriority priority); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h deleted file mode 100644 index dad91b1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h +++ /dev/null @@ -1,613 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionClientControlFeature; -@class PTDiffusionMessagingFeature; -@class PTDiffusionPingsFeature; -@class PTDiffusionSecurityFeature; -@class PTDiffusionSessionConfiguration; -@class PTDiffusionSessionId; -@class PTDiffusionSessionLock; -@class PTDiffusionSessionLockAttempt; -@class PTDiffusionSessionLockScope; -@class PTDiffusionSessionState; -@class PTDiffusionSubscriptionControlFeature; -@class PTDiffusionTimeSeriesFeature; -@class PTDiffusionTopicControlFeature; -@class PTDiffusionTopicNotificationsFeature; -@class PTDiffusionTopicsFeature; -@class PTDiffusionTopicUpdateFeature; -@class PTDiffusionTopicViewsFeature; -@class PTDiffusionRemoteServersFeature; -@class PTDiffusionSessionTreesFeature; -@class PTDiffusionMetricsFeature; -@class PTDiffusionHTTPResponse; - -@protocol PTDiffusionErrorListener; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A client session to a server or cluster of servers. - - The @ref md_quick_start "Quick Start" guide provides basic instructions on how - to connect to a Diffusion server. - - Also see: - - @ref md_session_filters "Session Filters". - - @ref md_session_properties "Session Properties". - - A new session can be created by connecting to a server using - `#openWithURL:completionHandler:` specifying the server URL. - A `PTDiffusionSessionConfiguration` can also be configured to control - the behaviour of the session using `#openWithURL:configuration:completionHandler:` - - The session provides a variety of operations to the application. These are - grouped into feature interfaces, such as Topics and Messaging, - exposed to the application through the following methods: -
    -
  • #clientControl -
  • #messaging -
  • #pings -
  • #remoteServers -
  • #security -
  • #subscriptionControl -
  • #timeSeries -
  • #topicControl -
  • #topics -
  • #topicUpdate -
  • #topicViews -
- - ###Session lifecycle - - Each session is managed by a server. The server assigns the session a - unique identity, and manages the session's topic subscriptions, - security details, and session properties. - - A session can be terminated using `close`. A session may also be - terminated by the server because of an error or a time out, or by other - privileged sessions using the ClientControl feature. - - A client can become disconnected from the server, and reconnect to the server - without loss of the session. Reconnection can be configured using - `PTDiffusionSessionConfiguration.reconnectionStrategy`. The server - must be configured to allow reconnection. - - If a session is connected to a server that belongs to a cluster with session - replication enabled, and then becomes disconnected, it will attempt to - reconnect to the original server. A properly configured load balancer can - detect that the original server is unavailable and re-route the reconnection - request to a second server in the cluster. The second server can recover - session data and continue the session. This process is known as "fail over". - Unlike reconnection, in-flight messages can be lost during failover, and the - application will be unsubscribed and re-subscribed to topics. - - The current state of the session can be retrieved with `state`. - This property is Key-Value Observable with changes being notified on - the main dispatch queue when the session state changes. - - ### Session locks - - The actions of multiple sessions can be coordinated using session locks. See - PTDiffusionSession#lockWithName:completionHandler: - - @since 5.6 - */ -@interface PTDiffusionSession : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - Starts asynchronously connecting to a Diffusion server using the given session configuration. - - @param url The location of the server to connect to. Encapsulates host, port and protocol to use. - Must be absolute. - - @param configuration The configuration options to connect with. - - @param completionHandler The completion handler to call on connection success or failure. - The completion handler will be called from the main dispatch queue and will only be called once. - - @note Your completion handler _must_ store a strong reference to the session instance in order - for it to remain open. - - @note The completion handler block is called after the session's state property has been set - to connected but before those observing through the notification center are informed. - - @since 5.6 - */ -+(void)openWithURL:(NSURL *)url - configuration:(PTDiffusionSessionConfiguration *)configuration - completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; - - -/** - Starts asynchronously connecting to a Diffusion server using the default session configuration. - - @param url The location of the server to connect to. Encapsulates host, port and protocol to use. - Must be absolute. - - @param completionHandler The completion handler to call on connection success or failure. - The completion handler will be called from the main dispatch queue and will only be called once. - - @note Your completion handler _must_ store a strong reference to the session instance in order - for it to remain open. - - @note The completion handler block is called after the session's state property has been set - to connected but before those observing through the notification center are informed. - - @since 5.6 - */ -+(void)openWithURL:(NSURL *)url - completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; - - -/** - The configuration used to open the session. - - @since 5.6 - */ -@property(nonatomic, readonly, copy) PTDiffusionSessionConfiguration* configuration; - - -/** - The unique identifier for the session as assigned by the server it connects to. - - This property is Key-Value Observable with changes being notified on the main dispatch queue. - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - - -/** - The name of the security principal associated with the session. - - @return The principal name. If the session has no associated principal, it is - known as an anonymous session, in which case the empty string - anonymousPrincipal will be assigned to this property. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* principal; - - -/** - The current state of the session. - - This property is Key-Value Observable with changes being notified on the main dispatch queue. - KVO notifications are sent before the invocation of any callback handler blocks. - - @note Session state can also be observed using the notification center. - See PTDiffusionSessionStateChange for details. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionSessionState* state; - - -/** - The delegate to use to report unexpected, non-fatal errors to. - - @since 6.0 - */ -@property(nonatomic, weak) id errorListener; - - -/** - Close the session. Once closed a session cannot be restarted. - - @since 5.6 - */ --(void)close; - - -/** - Attempt to acquire a session lock. - - The completion handler block will be called with the requested lock if the - server assigns it to the session. Otherwise, the completion handler block will - be called with an error indicating why the lock could not be acquired. - - Acquiring the lock can take an arbitrarily long time if other sessions are - competing for the lock. The server will retain the session's request for the - lock until it is assigned to the session, the session is closed, or the session - cancels the CompletableFuture. - - A session can call this method multiple times. If the lock is acquired, all - calls will complete successfully with equal SessionLocks. - - Calling cancel on the returned PTDiffusionCancellable has no effect on other - pending calls to acquire this lock. - - Upon successful acquisition, the session owns the lock and is responsible for - unlocking it. When calling cancel on the returned PTDiffusionCancellable, take - care that it has not already completed by checking the return value. The - following Swift code releases the lock if the request could not be canceled. - - let attempt = session.lock(withName: "my-lock") { (lock, error) in - / / .. - } - - if (!attempt.cancel()) { - attempt.lock?.unlock() { (wasOwned, error) in } - } - - A session that acquires a lock will remain its owner until it is unlocked or - the session closes. The variant of this methods that takes a scope parameter - provides the further option of releasing the lock when the session loses its - connection to the server. - - ### Access control - - To allow fine-grained access control, lock names are interpreted as path names, - controlled with the `PTDiffusionPathPermission.acquireLock` path permission. This allows permission to - be granted to a session to acquire the lock `update-topic/a` while preventing - the session from acquiring the lock `update-topic/b`, for example. - - @param name The name of the session lock. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - If this session has successfully acquired the session lock, or this session - already owns the session lock, the completion handler will be called with the - lock instance. - - If the completion handler is called with an error to indicate failure, this - session does not own the session lock. Common reasons for failure include: - - - The calling session does not have the `PTDiffusionPathPermission.acquireLock` permission for this lock - name. - - The session is closed. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @see #lockWithName:scope:completionHandler: - - @since 6.3 - */ --(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name - completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; - - -/** - Variant of #lockWithName:completionHandler: that provides control over when a - lock will be released. - - If called with PTDiffusionSessionLockScope#unlockOnSessionLoss, this method - behaves exactly like #lockWithName:completionHandler:. - - If called with PTDiffusionSessionLockScope#unlockOnConnectionLoss, any lock - that is returned will be unlocked if the session loses its connection to the - server. This is useful to allow another session to take ownership of the lock - while this session is reconnecting. - - @param name The name of the session lock - - @param scope Preferred scope. The scope of a lock controls when it will be - released automatically. If a session makes multiple requests for a lock using - different scopes, and the server assigns the lock to the session fulfilling the - requests, the lock will be given the weakest scope - (PTDiffusionSessionLockScope#unlockOnConnectionLoss). - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @see #lockWithName:completionHandler: - - @since 6.3 - */ --(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name - scope:(PTDiffusionSessionLockScope *)scope - completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; - - -/** - Returns the last HTTP response received from the server. - - @since 6.3.6 - */ --(PTDiffusionHTTPResponse * _Nullable)websocketHTTPResponse; - - - -#pragma mark - Features - -/** - The Client control feature provides the capability to listen and set session properties - - @since 6.5 - */ -@property(nonatomic, readonly) PTDiffusionClientControlFeature *clientControl; - - -/** - The Topics feature provides the capability to receive streamed topic updates and/or - fetch the state of topics. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionTopicsFeature* topics; - - -/** - The Topic Control features provides the capability to manage topics. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionTopicControlFeature* topicControl; - - -/** - The Topic Update feature provides a client session with the ability to update - topics. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionTopicUpdateFeature* topicUpdate; - - -/** - The Messaging feature provides messaging capabilities. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionMessagingFeature* messaging; - - -/** - The Security feature provides a client session with the ability to change - the associated principal. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionSecurityFeature* security; - - -/** - The Pings feature provides a client session with the ability to test the - roundtrip time associated with sending a request to the server and receiving - the associated response. - - @since 5.7 - */ -@property(nonatomic, readonly) PTDiffusionPingsFeature* pings; - - -/** - The Time Series feature provides a client session with the ability to update - and query time series topics. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionTimeSeriesFeature* timeSeries; - - -/** - The Topic Notifications feature allows a client session to receive - notifications about changes to selected topics. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionTopicNotificationsFeature* topicNotifications; - - -/** - The Subscription Control feature allows a client session to subscribe or - unsubscribe other sessions to topics, as well as also providing a mechanism for - handling requests to subscribe to routing topics. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionSubscriptionControlFeature* subscriptionControl; - - -/** - The Topic Views feature allows a client session to manage topic views. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionTopicViewsFeature* topicViews; - - -/** - The Remote Servers feature allows a client session to create, remove, list - and check remote servers. - - @since 6.5 - */ -@property(nonatomic, readonly) PTDiffusionRemoteServersFeature* remoteServers; - - -/** - The Session Trees feature allows the creation and alteration of branch mapping tables. - - @see PTDiffusionSessionTreesFeature - - @since 6.7 - */ -@property(nonatomic, readonly) PTDiffusionSessionTreesFeature* sessionTrees; - - -/** - The Metrics feature allows a client to configure metric collectors. - - @see PTDiffusionMetricsFeature - - @since 6.7 - */ -@property(nonatomic, readonly) PTDiffusionMetricsFeature* metrics; - - - - -#pragma mark - Session properties - -/** - Value assigned to the principal property if this is an anonymous session. - - @since 6.0 - */ -+(NSString *)anonymousPrincipal; - - -/** - This constant can be used instead of a property key in requests for session - property values to indicate that all fixed session properties are required. - - @since 6.0 - */ -+(NSString *)allFixedProperties; - - -/** - This constant can be used instead of a property key in requests for session - property values to indicate that all user defined session properties are - required. - - @since 6.0 - */ -+(NSString *)allUserProperties; - - -/** - Session property key for session roles. - - @since 6.2 - */ -+(NSString *)rolesPropertyKey; - - -/** - Session property key for session identifier. - - @see PTDiffusionSessionId - - @since 6.2 - */ -+(NSString *)sessionIdPropertyKey; - - -/** - Session property key for principal. - - @since 6.2 - */ -+(NSString *)principalPropertyKey; - - -/** - Session property key for connector name. - - @since 6.2 - */ -+(NSString *)connectorPropertyKey; - - -/** - Session property key for transport. - - @since 6.2 - */ -+(NSString *)transportPropertyKey; - - -/** - Session property key for client type. - - @since 6.2 - */ -+(NSString *)clientTypePropertyKey; - - -/** - Session property key for country code. - - @since 6.2 - */ -+(NSString *)countryPropertyKey; - - -/** - Session property key for language code. - - @since 6.2 - */ -+(NSString *)languagePropertyKey; - - -/** - Session property key for server name. - - @since 6.2 - */ -+(NSString *)serverNamePropertyKey; - - -/** - Session property key for client IP address. - - @since 6.2 - */ -+(NSString *)clientIPPropertyKey; - - -/** - Session property key for client latitude. - - @since 6.2 - */ -+(NSString *)latitudePropertyKey; - - -/** - Session property key for client longitude. - - @since 6.2 - */ -+(NSString *)longitudePropertyKey; - - -/** - Session property key for client start time. - - @since 6.2 - */ -+(NSString *)startTimePropertyKey; - -/** - Session property key for gateway client type. - - @since 6.6 - */ -+(NSString *)gatewayTypePropertyKey; - -/** - Session property key for gateway client id. - - @since 6.6 - */ -+(NSString *)gatewayIdPropertyKey; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h deleted file mode 100644 index 2211ad9..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h +++ /dev/null @@ -1,440 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionCredentials; -@class PTDiffusionHTTPProxyConfiguration; - -@protocol PTDiffusionSessionReconnectionStrategy; - -extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session configuration defines behavior and policies to use when connecting to Diffusion. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSessionConfiguration : NSObject - -/** - Returns a session configuration object initialized with the given principal and credentials. - - @param principal The security principal to use when opening the session. - A value of `nil` dictates that no principal name will be associated with the session, - indicating anonymous authentication. - - @param credentials The security credentials to use when opening the session. - A value of `nil` dictates that no credentials will be used when authenticating the session. - - @return The session configuration instance initialized with the given principal and credentials. - - @since 5.6 - */ --(instancetype)initWithPrincipal:(nullable NSString *)principal - credentials:(nullable PTDiffusionCredentials *)credentials; - -/** - The security principal to use when opening the session. - - A value of `nil` dictates that no principal name will be associated with the session, - indicating anonymous authentication. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly, copy) NSString *principal; - -/** - The security credentials to use when opening the session. - - A value of `nil` dictates that no credentials will be used when authenticating the session. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; - -/** - The reconnection timeout in seconds that will be used on connection failure. - - The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - - A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; - -/** - The reconnection strategy that will be used on connection failure. - - A value of `nil` when a valid reconnectionTimeout has been set dictates that the default - reconnection strategy will be employed. - - @since 5.6 - */ -@property(nonatomic, nullable, readonly) id reconnectionStrategy; - -/** - The default recovery buffer size in messages. - - @return Number representing the default recovery buffer size in messages. - - @see recoveryBufferSize - - @since 6.0 - */ -+(NSUInteger)defaultRecoveryBufferSize; - -/** - The recovery buffer size in messages; can be zero. - - If the server is configured to support reconnection, a session established with - a non-zero reconnection time retains a buffer of sent messages. - If the session disconnects and reconnects, this buffer is used to re-send - messages that the server has not received. - - Higher values increase the chance of successful reconnection, but increase the - per-session memory footprint. - - @see defaultRecoveryBufferSize - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger recoveryBufferSize; - -/** - The default connection timeout (2 seconds). - - @return Time interval representing the default connection timeout. - - @since 5.7 - */ -+(NSTimeInterval)defaultConnectionTimeout; - -/** - The lowest value that the maximum message size can be set to in bytes. - - @return Number representing the lowest value in bytes that the maximum message size can be set to. - - @see maximumMessageSize - - @since 6.0 - */ -+(NSUInteger)maximumMessageSizeMinimum; - -/** - The default maximum message size in bytes. - - The maximum message size limits the - size of received messages. This default value is NSUIntegerMax, so the message - size is effectively unlimited. - - @return Number representing the default maximum message size in bytes. - - @see maximumMessageSize - - @since 6.0 - */ -+(NSUInteger)defaultMaximumMessageSize; - -/** - The default maximum outbound queue size in messages. - - @return Number representing the default maximum outbound queue size in messages. - - @see maximumQueueSize - - @since 6.0 - */ -+(NSUInteger)defaultMaximumQueueSize; - -/** - The maximum message size in bytes. - - This constrains the size of messages that may be received from the server and - thus the size of any content that can be received. The limit protects against - unexpectedly large messages. - - @see defaultMaximumMessageSize - @see maximumMessageSizeMinimum - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger maximumMessageSize; - -/** - The maximum size of the outbound message queue for the connection. - - The outbound message queue should be large enough to accommodate all the - messages sent to the server. This would include topic updates, messaging and - service requests such as registering a handler. - - It may be necessary to increase this value for applications that send messages - in bursts, or continue to send messages when a session is disconnected and - reconnecting. Larger values allow more messages to be queued, and increase the - memory footprint of the session. - - If the outbound message queue fills, sending a message will cause the session - to close with an error. - - @see defaultMaximumQueueSize - - @since 6.0 - */ -@property(nonatomic, readonly) NSUInteger maximumQueueSize; - -/** - The connection timeout. - - This constrains the time taken to establish an initial connection to the server. - The server is responsible for limiting the overall time taken to complete a connection - once it has received the request. - - @since 5.7 - */ -@property(nonatomic, readonly) NSTimeInterval connectionTimeout; - -/** - Security settings to be applied to the underlying transport streams for SSL/TLS - encrypted connections. - - A value of `nil` or an empty dictionary indicates that default settings, as - defined by the host operating system, will be applied. - - Supported keys are documented by Apple under 'CFStream Property SSL Settings - Constants' in their Core Foundation - [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - - For example, a rudimentary approach to allowing otherwise disallowed self-signed - certificates could be to disable validation of the certificate chain entirely: - - configuration.sslOptions = - [NSDictionary dictionaryWithObject:kCFBooleanFalse - forKey:kCFStreamSSLValidatesCertificateChain]; - - @since 5.7.1 - */ -@property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; - -/** - User-defined @ref md_session_properties "session properties". - - These properties will be provided to the server when a session is created using - this session configuration. They will be validated during authentication and - may be discarded or changed. - - A value of `nil` or an empty dictionary indicates that no user-defined session - properties will be provided to the server on connection. - - @since 6.3 - */ -@property(nonatomic, nullable, readonly, copy) NSDictionary* properties; - -/** - Configuration of the HTTP Proxy that should be used to make connections to the server. - - This allows connection to a server using HTTP CONNECT tunneling through the - specified proxy. - - A value of `nil` dictates that a proxy is not used. This is the default. - - @since 6.0 - */ -@property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; - -/** - Compares the receiver to the given session configuration. - - @param sessionConfiguration The session configuration object with which to compare the receiver. - - @return `YES` if the receiver and the given session configuration will have the same effect. - - @since 5.6 - */ --(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; - -@end - -/** - @brief A mutable session configuration can be modified prior to being used to define - behaviour and policies to use when connecting to Diffusion. - - @since 5.6 - */ -@interface PTDiffusionMutableSessionConfiguration : PTDiffusionSessionConfiguration - -/** - The security principal to use when opening the session. - - A value of `nil` dictates that no principal name will be associated with the session, - indicating anonymous authentication. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite, copy) NSString *principal; - -/** - The security credentials to use when opening the session. - - A value of `nil` dictates that no credentials will be used when authenticating the session. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; - -/** - The reconnection timeout in seconds that will be used on connection failure. - - The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - - A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite) NSNumber* reconnectionTimeout; - -/** - The reconnection strategy that will be used on connection failure. - - A value of `nil` when a valid reconnectionTimeout has been set dictates that the default - reconnection strategy will be employed. - - @since 5.6 - */ -@property(nonatomic, nullable, readwrite) id reconnectionStrategy; - -/** - The recovery buffer size in messages; can be zero. - - If the server is configured to support reconnection, a session established with - a non-zero reconnection time retains a buffer of sent messages. - If the session disconnects and reconnects, this buffer is used to re-send - messages that the server has not received. - - Higher values increase the chance of successful reconnection, but increase the - per-session memory footprint. - - @see defaultRecoveryBufferSize - - @since 6.0 - */ -@property(nonatomic, readwrite) NSUInteger recoveryBufferSize; - -/** - The maximum message size in bytes. - - This constrains the size of messages that may be received from the server and - thus the size of any content that can be received. The limit protects against - unexpectedly large messages. - - @exception NSInvalidArgumentException On writing to this property if the - given size is below the allowable minimum. - - @see defaultMaximumMessageSize - @see maximumMessageSizeMinimum - - @since 6.0 - */ -@property(nonatomic, readwrite) NSUInteger maximumMessageSize; - -/** - The maximum size of the outbound message queue for the connection. - - The outbound message queue should be large enough to accommodate all the - messages sent to the server. This would include topic updates, messaging and - service requests such as registering a handler. - - It may be necessary to increase this value for applications that send messages - in bursts, or continue to send messages when a session is disconnected and - reconnecting. Larger values allow more messages to be queued, and increase the - memory footprint of the session. - - If the outbound message queue fills, sending a message will cause the session - to close with an error. - - @see defaultMaximumQueueSize - - @since 6.0 - */ -@property(nonatomic, readwrite) NSUInteger maximumQueueSize; - -/** - The connection timeout. - - This constrains the time taken to establish an initial connection to the server. - The server is responsible for limiting the overall time taken to complete a connection - once it has received the request. - - If not explicitly set, defaultConnectionTimeout will be assumed. - - @note If this exceeds one hour (3,600 seconds) a warning will be logged and the - connection timeout will be constrained to one hour. - - @since 5.7 - */ -@property(nonatomic, readwrite) NSTimeInterval connectionTimeout; - -/** - Security settings to be applied to the underlying transport streams for SSL/TLS - encrypted connections. - - A value of `nil` or an empty dictionary indicates that default settings, as - defined by the host operating system, will be applied. - - Supported keys are documented by Apple under 'CFStream Property SSL Settings - Constants' in their Core Foundation - [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - - For example, a rudimentary approach to allowing otherwise disallowed self-signed - certificates could be to disable validation of the certificate chain entirely: - - configuration.sslOptions = - [NSDictionary dictionaryWithObject:kCFBooleanFalse - forKey:kCFStreamSSLValidatesCertificateChain]; - - @since 5.7.1 - */ -@property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; - -/** - User-defined @ref md_session_properties "session properties". - - These properties will be provided to the server when a session is created using - this session configuration. They will be validated during authentication and - may be discarded or changed. - - A value of `nil` or an empty dictionary indicates that no user-defined session - properties will be provided to the server on connection. - - @since 6.3 - */ -@property(nonatomic, nullable, readwrite, copy) NSDictionary* properties; - -/** - Configuration of the HTTP Proxy that should be used to make connections to the server. - - This allows connection to a server using HTTP CONNECT tunneling through the - specified proxy. - - A value of `nil` dictates that a proxy is not used. This is the default. - - @since 6.0 - */ -@property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h deleted file mode 100644 index 398b49e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h +++ /dev/null @@ -1,100 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - The value assigned to the `domain` property of NSError objects generated when - establishing or reestablishing a session's connection to the server. - - @see PTDiffusionSessionErrorCode - - @since 6.0 - - @deprecated since 6.7, use PTDiffusion instead. - */ -extern NSString *const PTDiffusionSessionErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - Values assigned to the `code` property of NSError objects generated when - establishing or reestablishing a session's connection to the server. - - @see PTDiffusionSessionErrorDomain - - @since 6.0 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { - /** - The session was closed after being unexpectedly disconnected. - - @since 6.0 - - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Disconnected instead. instead. - */ - PTDiffusionSessionErrorCode_Disconnected __deprecated_enum_msg("Use PTDiffusionError_Disconnected instead.") = 2, - - /** - The session was closed locally. - - @since 6.0 - - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Establishment instead. instead. - */ - PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, - - /** - There was a problem when establishing a session. - - The session is closed. No further operations are possible. - - @since 6.0 - - @deprecated since 6.7, use PTDiffusionError_Establishment instead. - */ - PTDiffusionSessionErrorCode_Establishment __deprecated_enum_msg("Use PTDiffusionError_Establishment instead.") = 4, - - /** - The session operation failed due to a security constraint. - - Repeating the operation with the same security credentials is likely to - fail. - - @since 6.0 - - @deprecated since 6.7, use PTDiffusionError_Security instead. - */ - PTDiffusionSessionErrorCode_Security __deprecated_enum_msg("Use PTDiffusionError_Security instead.") = 5, - - /** - The session operation failed due to an unrecognised response code. - - @since 6.3 - - @deprecated since 6.7, use PTDiffusionError_UnrecognizedResponseCode instead. - */ - PTDiffusionSessionErrorCode_UnrecognisedResponseCode __deprecated_enum_msg("Use PTDiffusionError_UnrecognizedResponseCode instead.") = 6, - - /** - The session was closed remotely. - - @since 6.6 - - @deprecated since 6.7, use PTDiffusionError_ClosedByServer instead. - */ - PTDiffusionSessionErrorCode_ClosedByServer __deprecated_enum_msg("Use PTDiffusionError_ClosedByServer instead") = 7, -}; - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h deleted file mode 100644 index c960865..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h +++ /dev/null @@ -1,74 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session ID is a unique session identifier, allocated by the server. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSessionId : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a session ID object initialized with the given string. - - @param string A string, previously returned by the `description` method on an - instance of this class. - - @param error If this method returns `nil` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @note The string representation used is the same as that provided by our Java - client library (see the `toString()` method on `SessionId`). This is a client - operation. A session that has been closed will not be recreated. - - @return The session ID instance initialised with the given string. - - @exception NSInvalidArgumentException If the given string is `nil`. - - @since 6.0 - */ --(nullable instancetype)initWithString:(NSString *)string - error:(NSError **)error NS_DESIGNATED_INITIALIZER; - -/** - Compares the receiver to the given session ID. - - @param sessionId The session ID object with which to compare the receiver. - - @return `YES` if the given session ID is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToSessionId:(nullable PTDiffusionSessionId *)sessionId; - -/** - Returns the description of the session ID. - - @return The description of the session ID. - - @since 6.5 - */ --(NSString *)description; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h deleted file mode 100644 index 9de38c1..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h +++ /dev/null @@ -1,165 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionLockScope; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A server-managed resource that can be used to coordinate exclusive - access to shared resources across sessions. - - For example, to ensure a single session has the right to update a topic; to - ensure at most one session responds to an event; or to select a single session - to perform a housekeeping task. Session locks support general collaborative - locking schemes. The application architect is responsible for designing a - suitable locking scheme and for ensuring each application component follows the - scheme appropriately. - - Session locks are identified by a lock name. Lock names are arbitrary and - chosen at will to suit the application. Each lock is owned by at most one - session. Locks are established on demand; there is no separate operation to - create or destroy a lock. - - A session lock is acquired using the - PTDiffusionSession#lockWithName:completionHandler: method. If no other session - owns the lock, the server will assign the lock to the calling session - immediately. Otherwise, the server will record that the session is waiting to - acquire the lock. A session can call `lock` more than once for a given session - lock; if the lock is acquired, all calls will complete successfully with equal - PTDiffusionSessionLock instances. - - If a session closes, the session locks it owns are automatically released. A - session can also release a lock using the #unlockWithCompletionHandler: method. - When a session lock is released and other sessions are waiting to acquire the - lock, the server will arbitrarily select one of the waiting sessions and notify - it that it has acquired the lock. All of the newly selected session's pending - `lock` calls will complete normally. Other sessions will continue to wait. - - The PTDiffusionSession#lockWithName:scope:completionHandler: method takes a - scope parameter that provides the further option of automatically releasing the - lock when the session loses its connection to the server. - - There is no association between a lock and a thread. If a session calls `lock` - for a lock it already owns, the call will complete normally and immediately - with a PTDiffusionSessionLock instance that is equal to the one returned when - the lock was originally acquired. A single call to `unlock` will release this - session's claim to a lock. - - Lock ownership can be lost due to an independent event such as loss of - connection, and not only due to the use of the locking API by the owner. - Consequently, the session should poll using #owned to check that it still owns - the lock before accessing the protected resource. - - ### Race conditions - - This session lock API has inherent race conditions. Even if an application is - coded correctly to protect a shared resource using session locks, there may be - a period where two or more sessions concurrently access the resource. The races - arise for several reasons including - - - due to the *check-then-act* approach of polling #owned, the lock can be lost - after the check has succeeded but before the resource is accessed; - - the server can detect a session is disconnected and assign the lock to - another session before the original session has detected the disconnection. - - Despite this imprecision, session locks provide a useful way to coordinate - session actions. - - @since 6.3 - */ -@interface PTDiffusionSessionLock : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The name of the session lock. - - @since 6.3 - */ -@property(nonatomic, readonly) NSString* name; - -/** - A value that identifies the acquisition of the lock with the given #name. - Session locks that are acquired later are guaranteed to have bigger sequence - values, allowing the sequence number to be used as a fencing token. - - @since 6.3 - */ -@property(nonatomic, readonly) SInt64 sequence; - -/** - Whether the session lock is still owned by the session. This method may be - manually polled but does not support KVO. - - @since 6.3 - */ -@property(readonly, getter=isOwned) BOOL owned; - -/** - The scope of the lock. - - The scope determines when the lock will be released automatically. - - If a session makes multiple lock requests for a lock using different scopes, - and the server assigns the lock to the session fulfilling the requests, the - lock will be given the weakest scope - (PTDiffusionSessionLockScope#unlockOnConnectionLoss). Consequently, an - individual request can complete with a lock that has a different scope to that - requested. - - @see PTDiffusionSession#lockWithName:scope:completionHandler: - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionSessionLockScope* scope; - -/** - Release the session lock, if owned. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - On successful completion, this session will no longer own the named session - lock, and `wasOwned` will wrap a `BOOL` value where `YES` indicates this - session previously owned the lock and `NO` indicates that it did not. - - On completion with failure, this session does not own the session lock. The - common reason for failure, indicated by the error reported, is that the session - is closed. - - @exception NSInvalidArgumentException Raised if completionHandler is `nil`. - - @since 6.3 - */ --(void)unlockWithCompletionHandler:(void (^)(NSNumber * _Nullable wasOwned, NSError * _Nullable error))completionHandler; - -/** - Compares the receiver to the given session lock. - - @param sessionLock The session lock object with which to compare the receiver. - - @return `YES` if the session lock is equal to the receiver, otherwise `NO`. - - @since 6.3 - */ --(BOOL)isEqualToSessionLock:(nullable PTDiffusionSessionLock *)sessionLock; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h deleted file mode 100644 index 7d870c5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h +++ /dev/null @@ -1,57 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionLock; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A handle to a session lock request. - - Instances of this object may be used to cancel the session lock attempt as well - as to query the lock instance once acquired. - - @since 6.3 - */ -@interface PTDiffusionSessionLockAttempt : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The acquired lock, if the attempt was successful. Until a response has come - back from the server, this property will be `nil`. It will remain `nil` if that - response indicates that the session lock attempt failed. - - @since 6.3 - */ -@property(nullable, readonly) PTDiffusionSessionLock * lock; - -/** - Compares the receiver to the given session lock attempt. - - @param sessionLockAttempt The session lock attempt object with which to compare - the receiver. - - @return `YES` if the session lock attempt is equal to the receiver, otherwise `NO`. - - @since 6.3 - */ --(BOOL)isEqualToSessionLockAttempt:(nullable PTDiffusionSessionLockAttempt *)sessionLockAttempt; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h deleted file mode 100644 index 22c03cf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h +++ /dev/null @@ -1,59 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The definition of a session metric collector. - - These can be configured to record metric data for a subset of all - sessions, specified with a session filter. - - @since 6.7 - */ -@interface PTDiffusionSessionMetricCollector : PTDiffusionMetricCollector - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - The session filter. - - @since 6.7 - */ -@property(nonatomic, readonly) NSString *sessionFilter; - - -/** - The list of properties to group by. - - @since 6.7 - */ -@property(nonatomic, readonly) NSArray* groupByProperties; - - -/** - Indicates whether metrics with no matches should be removed. - - @since 6.7 - */ -@property(nonatomic, readonly) BOOL removesMetricsWithNoMatches; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h deleted file mode 100644 index faf8565..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h +++ /dev/null @@ -1,93 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionMetricCollector; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session metric collector builder. - - @since 6.7 - */ -@interface PTDiffusionSessionMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder - - -/** - Adds the name of a session property to group by to the list known - to this builder. - - @param propertyName the name of the session property. - See {@link PTDiffusionSession Session} for details of session properties. - - @return the builder - - @since 6.7 - */ --(instancetype)groupByProperty:(NSString *)propertyName; - - -/** - Specifies a list of session property names to group by, replacing - any current list known to this builder. - - @param propertyNames a list of session property names. - See {@link PTDiffusionSession Session} for details of session properties. - - @return the builder - - @since 6.7 - */ --(instancetype)groupByProperties:(NSArray*) propertyNames; - - -/** - Specifies whether the metric collector should remove any metrics - that have no matches. - - The default is that the metric collector will not remove metrics - with no matches. - - @param remove true to indicate that metrics with no matches - should be removed. - - @return the builder - - @since 6.7 - */ --(instancetype)removeMetricsWithNoMatches:(BOOL)remove; - - -/** - @brief Create a new {@link PTDiffusionSessionMetricCollector} using the values - currently known to this builder. - - @param name the name of the {@link PTDiffusionSessionMetricCollector} - - @param sessionFilter the session filter indicating the sessions - this filter should apply to. The format of a session property - filter is documented in {@link PTDiffusionSession} - - @return a new {@link PTDiffusionSessionMetricCollector} with all of the - current settings of this builder. - - @since 6.7 - */ --(PTDiffusionSessionMetricCollector *) createCollectorWithName:(NSString *const)name - andSessionFilter:(NSString *const)sessionFilter; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h deleted file mode 100644 index 5b76343..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h +++ /dev/null @@ -1,136 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Listener for Session properties events from the server. - - @see PTDiffusionClientControlFeature - - @since 6.5 - */ -@protocol PTDiffusionSessionPropertiesDelegate - -/** - A new session was opened - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the opened session - - @param properties The properties for the opened session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionOpened:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has closed - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the closed session - - @param closeReason The reason why the session closed - - @param properties The properties for the closed session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionClosed:(PTDiffusionSessionId *)sessionId - withCloseReason:(PTDiffusionCloseReason *) closeReason - andProperties:(NSDictionary*)properties; - - - -/** - A session has been updated - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the updated session - - @param properties The properties for the updated session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionUpdated:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has disconnected - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the disconnected session - - @param properties The properties for the disconnected session - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionDisconnected:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has reconnected - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the reconnected session - - @param properties The properties for the reconnected session - - @since 6.6 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionReconnected:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - -/** - A session has failed over to a different host - - @param registration The session properties registration for which this listener applies - - @param sessionId The session ID of the failed over session - - @param properties The properties for the failed over session - - @since 6.6 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - sessionFailedOver:(PTDiffusionSessionId *)sessionId - withProperties:(NSDictionary*)properties; - - - - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h deleted file mode 100644 index 7a0cb20..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h +++ /dev/null @@ -1,39 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A reference to a handler registered for a particular set of - session properties - - A topic tree registration is provided once a handler with a server-side - presence has been registered. - - @since 6.5 - */ - -@interface PTDiffusionSessionPropertiesListenerRegistration : PTDiffusionRegistration - -/** - The set of session properties registered. - - @since 6.5 - */ -@property(nonatomic, readonly) NSArray* properties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h deleted file mode 100644 index 3b31c14..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionPropertiesListenerRegistration; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Common protocol for delegates that establish a server side control presence for the - client session at a particular set of session properties. - - @since 6.5 - */ -@protocol PTDiffusionSessionPropertiesListenerRegistrationDelegate - -/** - Called if the handler is closed. - - No further calls will be made to this handler. - - @param registration The session properties registration for which this delegate applies. - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistrationDidClose:(PTDiffusionSessionPropertiesListenerRegistration *)registration; - -/** - Called in the event of a contextual error relating to this handler. - - No further calls will be made to this handler. - - @param registration The session properties registration for which this delegate applies. - - @param error The failure reason. - - @since 6.5 - */ --(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration - didFailWithError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h deleted file mode 100644 index 476ebe2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A session reconnection attempt can either be started or aborted. - - @see PTDffusionSessionReconnectionStrategy - - @since 5.6 - */ -@interface PTDiffusionSessionReconnectionAttempt : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Request that the session starts the reconnection attempt. - - @since 5.6 - */ --(void)start; - -/** - Request that the session aborts the reconnection attempt. - - @since 5.6 - */ --(void)abort; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h deleted file mode 100644 index d221776..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h +++ /dev/null @@ -1,97 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSession; -@class PTDiffusionSessionReconnectionAttempt; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The session reconnection strategy protocol defines the behaviour for a session when - recovering a failed connection. - - @see PTDiffusionSessionConfiguration - - @since 5.6 - */ -@protocol PTDiffusionSessionReconnectionStrategy - -/** - The connection has failed when connecting or connected and the session is now in - a recovering state. - - @param session The session which is recovering. - - @param attempt The reconnection attempt object providing `start` and `abort` methods - to be used by the implementing strategy immediately or at some point in the future - to instruct the session how to proceed. - - @since 5.6 - */ --(void) diffusionSession:(PTDiffusionSession *)session - wishesToReconnectWithAttempt:(PTDiffusionSessionReconnectionAttempt *)attempt; - -@end - -/** - @brief Immediate abort is a default reconnection strategy supplied with the client library. - - This strategy immediately aborts. - - @since 5.6 - */ -@interface PTDiffusionSessionImmediateAbortReconnectionStrategy : NSObject -@end - -/** - @brief Delayed is a default reconnection strategy supplied with the client library. - - This strategy attempts to reconnect after a fixed delay specified in seconds. - - @since 5.6 - */ -@interface PTDiffusionSessionDelayedReconnectionStrategy : NSObject - -/** - Returns a delayed reconnection strategy initialised with a default 5 second delay. - - @return The delayed reconnection strategy instance initialised with a 5 second delay. - - @since 5.6 - */ --(instancetype)init; - -/** - Returns a delayed reconnection strategy initialised with the given delay. - - @param delay The delay in seconds, after which point the receiver will call the session reconnection - attempt's `start` method. - - @return The delayed reconnection strategy instance initialised with the given delay. - - @since 5.6 - */ --(instancetype)initWithDelay:(NSTimeInterval)delay NS_DESIGNATED_INITIALIZER; - -/** - The delay, in seconds, after which point the receiver will call the session reconnection - attempt's `start` method. - - @since 5.6 - */ -@property(nonatomic, readonly) NSTimeInterval delay; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h deleted file mode 100644 index ada35b0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A response stream represents an asynchronous, variable length feed of - messaging responses from other sessions. - - @see PTDiffusionMessagingFeature - @see PTDiffusionBinary - @see PTDiffusionJSON - @see PTDiffusionPrimitive - @see PTDiffusionRecordV2 - - @since 6.1 - */ -@interface PTDiffusionSessionResponseStream : PTDiffusionStream - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h deleted file mode 100644 index 6259851..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h +++ /dev/null @@ -1,83 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling messaging responses from - individual sessions. - - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionSessionResponseStreamDelegate - -/** - Called when a session responds to a request with an error. - - @param stream The stream that received the response. - - @param error The error generated by the responding session. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void)diffusionStream:(PTDiffusionStream *)stream - didReceiveError:(NSError *)error - fromSessionId:(PTDiffusionSessionId *)sessionId; - -/** - The stream closed prematurely. - - @param stream The stream that closed. - - @param error The reason why the stream closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - - @deprecated since 6.6 this method is no longer called; in a future - release, PTDiffusionSessionResponseStreamDelegate will no longer extend - PTDiffusionStreamDelegate - */ --(void)diffusionStream:(PTDiffusionStream *)stream - didFailWithError:(NSError *)error -__deprecated_msg("Will be removed in a future release."); - -/** - The stream closed normally. - - @param stream The stream that closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - - @deprecated since 6.6 this method is no longer called; in a future - release, PTDiffusionSessionResponseStreamDelegate will no longer extend - PTDiffusionStreamDelegate - */ --(void)diffusionDidCloseStream:(PTDiffusionStream *)stream -__deprecated_msg("Will be removed in a future release."); - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h deleted file mode 100644 index 844aa43..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h +++ /dev/null @@ -1,84 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Session state represents the condition a session has in respect - of connectivity to a Diffusion server. - - A session state object is immutable. - - @see PTDiffusionSessionStateChange - - @since 5.6 - */ -@interface PTDiffusionSessionState : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - `YES` if the session has an active connection to the server, otherwise `NO`. - - @since 5.6 - */ -@property(nonatomic, readonly, getter=isConnected) BOOL connected; - -/** - `YES` if the session is in the process of attempting reconnection to the server, - otherwise `NO`. - - @since 5.6 - */ -@property(nonatomic, readonly, getter=isRecovering) BOOL recovering; - -/** - `YES` if the session is closed, otherwise `NO`. - - This might mean that the session lost its connection to the server and - could not be recovered. - - @since 5.6 - */ -@property(nonatomic, readonly, getter=isClosed) BOOL closed; - -/** - If the session is closed then this property will be `nil` if the closure - was normal and expected, otherwise it will contain the failure reason. - - @note This property is to be considered as an auxiliary, informational - attachment to this session state instance. As such it is not incorporated - within the result of the hash method and is not checked on calls to isEqual: - or isEqualToSessionState:. - - @since 5.9 - */ -@property(nonatomic, readonly, nullable) NSError* error; - -/** - Compares the receiver to the given session state. - - @param sessionState The session state object with which to compare the receiver. - - @return `YES` if the given session state is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h deleted file mode 100644 index e11b54c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h +++ /dev/null @@ -1,91 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionState; - -NS_ASSUME_NONNULL_BEGIN - -/** - The name used for session state change notifications. - - The notification's `userInfo` dictionary contains a PTDiffusionSessionStateChange object that describes the state change, - accessed using #PTDiffusionSessionStateChangeUserInfoKey. - - @relates PTDiffusionSessionStateChange - @see PTDiffusionSessionStateChangeUserInfoKey - - @note Session state change notifications are notified from the main dispatch queue and are delivered after - both KVO notifications on the session's state property and any invocations of completion callback handler blocks. - - @since 5.6 - */ -extern NSString *const PTDiffusionSessionStateDidChangeNotification; - -/** - The notification `userInfo` dictionary key used to access the PTDiffusionSessionStateChange object on - receipt of a #PTDiffusionSessionStateDidChangeNotification. - - @relates PTDiffusionSessionStateChange - @see PTDiffusionSessionStateDidChangeNotification - - @since 5.6 - */ -extern NSString *const PTDiffusionSessionStateChangeUserInfoKey; - -/** - @brief A session state change represents a change in a session's state. - - A session state change object is immutable. - - The @ref md_quick_start "Quick Start" guide provides an example of observing session state changes broadcast - through the default notification center. - - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionSessionStateChange : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The previous state. This is the state that the session was in prior to transitioning to its current state. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionSessionState* previousState; - -/** - The current state. This is the state that the session has now transitioned to. - - @since 5.6 - */ -@property(nonatomic, readonly) PTDiffusionSessionState* state; - -/** - Compares the receiver to the given session state change. - - @param sessionStateChange The session state change object with which to compare the receiver. - - @return `YES` if the given session state change is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToSessionStateChange:(nullable PTDiffusionSessionStateChange *)sessionStateChange; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h deleted file mode 100644 index 3d1d139..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h +++ /dev/null @@ -1,209 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionBranchMappingTable; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client session to configure session trees. - - A session tree is a virtual view of the topic tree presented to a session by - fetch and subscription operations. Custom session trees for different - sessions can be configured using declarative rules maintained by the server - to meet data security, data optimisation, or personalisation and localisation - requirements. Each session can be presented with a unique session tree based - on its session properties. - - A session tree is produced by applying branch mappings to the topic - tree. Branch mappings are organised into branch mapping tables. Each - branch mapping table is assigned to a unique path – the session tree branch. - - A session tree is composed of session paths. Each session path is - mapped via the branch mapping tables to a unique topic path. - - A branch mapping table is an ordered list of (session filter, topic tree branch) - pairs. For example, the branch mapping table for the session tree branch - market/prices might be: - -
- Session filter                           Topic tree branch
- =========                                =============
- USER_TIER is '1' or $Country is 'DE'     backend/discounted_prices
- USER_TIER is '2'                         backend/standard_prices
- $Principal is ''                         backend/delayed_prices
- 
- - With this configuration, if an unauthenticated session (one that matches the - $Principal is '' session filter) subscribes to the session path - market/prices/X, and there is a topic bound to the topic path - backend/delayed_prices/X, the subscription will complete. The session - will receive a subscription notification under the session path - market/prices/X, together with the topic properties and the value of - the topic. The session is unaware that the data originates from a topic bound - to a different topic path. If no topic is bound to - backend/delayed_prices/X, the subscription will not resolve and the - session will receive no data, even if there is a topic bound to - market/prices/X. - - Session trees complement the data transformation capabilities of - {@link PTDiffusionTopicViewsFeature topic views}. In our example, the time delayed - time feed at backend/delayed_prices could be maintained by a topic - view using the delay by clause. - - Branch mappings are persisted by the server and shared across a cluster, in a - similar manner to topic views, security stores, and metric collectors. Branch - mappings are editable using this feature, and via the management console. - - For a given session and session path, at most one branch mapping applies. The - applicable branch mapping is chosen as follows: -
    -
  • Each branch mapping table with session tree branch that is a prefix of the - session path is considered. For a given table, the first branch mapping with - a condition that matches the session's properties is the one that applies. A - branch mapping table may have no applicable branch mappings for a session. -
  • If there are several such branch mapping tables with a branch mapping - that for the session, the one with the longest prefix of the session path - applies. -
  • If no branch mapping table has a branch mapping for the session, the - session path is translated to the identical topic path. -
- - ### Access control - - To subscribe to or fetch from a session path, a session must be granted the - appropriate path permission to the session path for the operation - ({@link PTDiffusionPathPermission#selectTopic SELECT_TOPIC}, or - {@link PTDiffusionPathPermission#readTopic READ_TOPIC}). The session - doesn't require any permissions to the topic path of the topic providing - the data. - - To create or replace branch mappings, a session needs the - {@link PTDiffusionPathPermission#modifyTopic MODIFY_TOPIC} path permission - for the session tree branch of the branch mapping table, - {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} path permission - for the topic tree branch of each branch mapping, and (if an existing table with - the same session tree branch is being replaced) - {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for - each branch mapping of existing table. - - To retrieve a branch mapping table, a session needs the - {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for - its session tree branch. - - ### Accessing the feature - - This feature may be obtained from a {@link PTDiffusionSession session} as follows: -
- PTDiffusionSessionTreesFeature *const sessionTrees = session.sessionTrees;
- 
- - @see PTDiffusionSession - - @since 6.7 - */ -@interface PTDiffusionSessionTreesFeature : PTDiffusionFeature - -/** - @brief Create or replace a branch mapping table. - - The server ensures that there is at most one branch mapping table for a - session tree branch. Putting a new branch mapping table will replace any previous - branch mapping table with the same session tree branch. To remove all branch - mappings for a session tree branch, put an empty branch mapping table. - - @param branchMappingTable the new table - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • InvalidBranchMappingError – if branchMappingTable or one of its - branch mappings is invalid; -
  • SessionSecurityError – if the calling - session does not have the {@link PTDiffusionPathPermission#modifyTopic - MODIFY_TOPIC} permission for the session tree branch of the branch - mapping table, {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} - permission for each branch mapping of branchMappingTable, and (if - there is an existing table for the session tree branch) - {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for - each branch mapping of existing table; -
  • ClusterRoutingError – if the operation failed due to a transient - cluster error; -
  • SessionClosedError – if the session is closed. -
- - @since 6.7 -*/ --(void) putBranchMappingTable:(PTDiffusionBranchMappingTable *)branchMappingTable - completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; - - -/** - @brief Retrieve the session tree branches of the server's branch mapping tables. - - The results will only include the session tree branches of branch mapping tables - that have at least one branch mapping and for which the calling session - has {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for - the session tree branch. - - Individual branch mapping tables can be retrieved using - {@link #getBranchMappingTableForSessionTreeBranch:completionHandler: getBranchMappingTable}. - - @param 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 the `sessionTreeBranches` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • SessionClosedError – if the session is closed. -
- - @since 6.7 -*/ --(void) getSessionTreeBranchesWithMappings:(void (^)(NSArray * _Nullable sessionTreeBranches, NSError * _Nullable error)) completionHandler; - - -/** - @brief Retrieve a branch mapping table from the server. - - If there is no branch mapping table at the given session tree branch, this - method will return an empty branch mapping table. - - @param sessionTreeBranch the session tree branch that identifies the branch mapping - table - - @param 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 the `branchMappingTable` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - These are the common reasons for failure: -
    -
  • SessionSecurityError – if the calling - session does not have the {@link PTDiffusionPathPermission#readTopic - READ_TOPIC} permission for the session tree branch; -
  • SessionClosedError – if the session is closed. -
- - @since 6.7 -*/ --(void) getBranchMappingTableForSessionTreeBranch:(NSString *)sessionTreeBranch - completionHandler:(void (^)(PTDiffusionBranchMappingTable * _Nullable branchMappingTable, NSError * _Nullable error)) completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h deleted file mode 100644 index 5b16c46..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h +++ /dev/null @@ -1,50 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result of a querying the server for the - session properties of a particular session ID or session filter - - @since 6.5 - */ -@interface PTDiffusionSetSessionPropertiesResult : NSObject - - -+(instancetype)new NS_UNAVAILABLE; - - --(instancetype)init NS_UNAVAILABLE; - - -/** - Map of the changed session properties - The contained values in this Map are the old values prior to the change - - @since 6.5 - */ -@property(nonatomic, readonly) NSDictionary * changedProperties; - - -/** - List of the added session properties - - @since 6.5 - */ -@property(nonatomic, readonly) NSArray * addedProperties; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h deleted file mode 100644 index 18a71d0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h +++ /dev/null @@ -1,43 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@protocol PTDiffusionStreamDelegate; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A stream represents an asynchronous, variable length feed of updates from the - Diffusion server. - - @see PTDiffusionTopicsFeature - @see PTDiffusionMessagingFeature - - @since 5.6 - */ -@interface PTDiffusionStream : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The delegate receiving the streaming updates for the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly, weak) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h deleted file mode 100644 index af12c1c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h +++ /dev/null @@ -1,57 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The stream delegate protocol defines the methods to be implemented by - classes wishing to receive streaming updates. - - @see PTDiffusionTopicsFeature - @see PTDiffusionMessagingFeature - - @since 5.6 - */ -@protocol PTDiffusionStreamDelegate - -/** - The stream closed prematurely. - - @param stream The stream that closed. - - @param error The reason why the stream closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - */ --(void)diffusionStream:(PTDiffusionStream *)stream - didFailWithError:(NSError *)error; - -/** - The stream closed normally. - - @param stream The stream that closed. - - @note No further messages will be sent to the delegate for this stream. - - @since 5.6 - */ --(void)diffusionDidCloseStream:(PTDiffusionStream *)stream; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h deleted file mode 100644 index a2a378f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStringFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a string fetch operation issued to the - server. - - A string fetch operation is issued using the - PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionStringFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.2 - */ -@property(nonatomic, readonly) NSArray * stringResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h deleted file mode 100644 index bda7a97..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h +++ /dev/null @@ -1,39 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a string fetch operation for a single - selected topic. - - A string fetch operation is issued using the - PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: - method. - - @since 6.2 - */ -@interface PTDiffusionStringFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the topic value, or `nil` if the topic has no value. - - @since 6.2 - */ -@property(nonatomic, readonly, nullable) NSString* string; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h deleted file mode 100644 index db83bdd..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h +++ /dev/null @@ -1,53 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRequestContext; -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling string messaging requests with a - handler registered at the server. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionStringRequestDelegate - -/** - Called when a string request has been received. - - @param registration The topic tree registration for which this handler applies. - - @param string The request that was received. - - @param context Context object that provides the session ID of the session that - sent the request along with the path and any requested session properties. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didReceiveRequestWithString:(nullable NSString *)string - context:(PTDiffusionRequestContext *)context - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h deleted file mode 100644 index 266e8ab..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h +++ /dev/null @@ -1,47 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionResponder; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling String messaging requests. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.0 - */ -@protocol PTDiffusionStringRequestStreamDelegate - -/** - Called when a string request has been received. - - @param stream The stream that received the request. - - @param string The request that was received. - - @param responder Responder object to be used for responding to the request. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveRequestWithString:(nullable NSString *)string - responder:(PTDiffusionResponder *)responder; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h deleted file mode 100644 index 7fdc28e..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h +++ /dev/null @@ -1,46 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling string messaging responses from - individual sessions. - - @see PTDiffusionPrimitive - @see PTDiffusionMessagingFeature - - @since 6.1 - */ -@protocol PTDiffusionStringSessionResponseStreamDelegate - -/** - Called when a session responds to a request with a string. - - @param stream The stream that received the response. - - @param string The response that was received. - - @param sessionId The id of the responding session. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveResponseWithString:(nullable NSString *)string - fromSessionId:(PTDiffusionSessionId *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h deleted file mode 100644 index 51fc3c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h +++ /dev/null @@ -1,34 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series whose value may be interpreted as a string. - - @since 6.0 - */ -@interface PTDiffusionStringTimeSeriesEvent : PTDiffusionTimeSeriesEvent - -/** - The string value associated with the event. - - @since 6.0 - */ -@property(nonatomic, readonly, nullable) NSString* string; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h deleted file mode 100644 index 22c4859..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h +++ /dev/null @@ -1,58 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStringTimeSeriesEvent; -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed time series events with - string values. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed time series events when updates are received from the server - with string values. - - @since 6.0 - */ -@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate - -/** - An update was received for a topic path handled by a binary value stream. - - @param stream The value stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldStringEvent The previous event. If `nil` then this is the first event. - - @param newStringEvent The new event derived from the last update received from - the server. - - @since 6.0 - */ --(void) diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTimeSeriesTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldStringEvent:(nullable PTDiffusionStringTimeSeriesEvent *)oldStringEvent - newStringEvent:(PTDiffusionStringTimeSeriesEvent *)newStringEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h deleted file mode 100644 index af93739..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h +++ /dev/null @@ -1,38 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStringTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of string time series events. - - @since 6.0 - */ -@interface PTDiffusionStringTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult - -/** - The string time series events. - - @see eventArrayStructure - - @since 6.0 - */ -@property(nonatomic, readonly) NSArray* stringEvents; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h deleted file mode 100644 index 32983b0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h +++ /dev/null @@ -1,111 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An update stream that provides the ability for updating topics with - string primitive values. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionStringUpdateStream : PTDiffusionUpdateStream - -/** - 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. - - @since 6.3 - */ -@property(nonatomic, readonly, nullable) NSString* value; - -/** - Sets the topic to a specified value or no value. - - When a `nil` value is supplied to this method for a PTDiffusionTopicType_String - topic, the topic will be updated to have no value. If a previous value was - present subscribers will receive a notification that the new value is null. New - subscribers will not receive a value notification. - - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **incompatible parent topic** if a topic could not be added because a topic - at a parent path is incompatible. - - **invalid topic path** if `path` is not a valid topic path. - - **invalid topic specification** if the specification is invalid, possibly - because mandatory properties were not supplied. - - **topic license limit** if the topic could not be added as it would breach a - licensing limit. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param value The value to set the topic to. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(BOOL) setValue:(nullable NSString *)value - completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h deleted file mode 100644 index fe42f3a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h +++ /dev/null @@ -1,60 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicSpecification; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed events for string - value topics. - - This protocol defines the methods to be implemented by classes wishing to - receive streamed events when updates are received from the server for string - topics. - - @see PTDiffusionPrimitive - - @since 6.0 - */ -@protocol PTDiffusionStringValueStreamDelegate - -/** - An update was received for a topic path handled by a string value stream. - - @param stream The topic stream that received the update. - - @param topicPath The topic path that was updated. - - @param specification The specification for the updated topic. - - @param oldString The previous value. If `nil` then this is either the first - value, or the previous value was `nil` indicating no value. - - @param newString The new value derived from the last update received from the - server, or `nil` if there is no value. - - @since 6.0 - */ --(void)diffusionStream:(PTDiffusionValueStream *)stream - didUpdateTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - oldString:(nullable NSString *)oldString - newString:(nullable NSString *)newString; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h deleted file mode 100644 index 4fed397..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h +++ /dev/null @@ -1,93 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionStream; -@class PTDiffusionTopicSpecification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed subscription events for - value topics. - - This protocol defines methods to be implemented by classes wishing to receive - streamed subscription events. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -@protocol PTDiffusionSubscriberStreamDelegate - -/** - Subscription notification. - - This method is called when a session is subscribed to a topic that matches the - stream registration. This method is also called when a stream is added, for all - of the session's subscriptions to topics that match the stream registration. - - For a given topic, this will be the initial notification, and the first - notification following an unsubscription notification if the session - re-subscribes to the topic. - - This method is also called for fallback streams that match the topic type when - the session removes the last stream that selected a subscribed topic. The - fallback stream will now receive updates for the topic, starting with an - immediate notification of the currently cached value (if any). - - @param stream The stream that received the update. - - @param topicPath The topic path to which the session has been subscribed. - - @param specification The specification for the subscribed topic. - - @since 5.9 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didSubscribeToTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification; - -/** - Unsubscription notification. - - This method is called if the session is unsubscribed from a topic that matches - the stream registration. The stream will receive no more updates for the topic - unless the session re-subscribes to the topic. - - This method is also called for fallback streams that match the topic type if - the session adds the first stream that selects a subscribed topic. For these - notifications, the reason will be - PTDiffusionTopicUnsubscriptionReason_StreamChange. The fallback stream will no - longer receive updates for the topic. - - @param stream The stream that received the update. - - @param topicPath The topic path from which the session has been unsubscribed. - - @param specification The specification for the unsubscribed topic. - - @param reason The reason for the unsubscription. - - @since 5.9 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didUnsubscribeFromTopicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification - reason:(PTDiffusionTopicUnsubscriptionReason)reason; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h deleted file mode 100644 index b6ef0a2..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h +++ /dev/null @@ -1,261 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionRegistration; -@class PTDiffusionSessionId; -@class PTDiffusionStream; - -@protocol PTDiffusionSubscriptionRoutingRequestHandler; - -/** - Values assigned to the `code` property of NSError objects generated by the - PTDiffusionSubscriptionControlFeature. - - @since 6.1 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionSubscriptionControlFeatureErrorCode) { - /** - The filter was rejected. The command was not sent to any clients. - - @see PTDiffusionUnderlyingErrorsKey - - @since 6.1 - - @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. - */ - PTDiffusionSubscriptionControlFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead") = 1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - The value assigned to the `domain` property of NSError objects generated by the - PTDiffusionSubscriptionControlFeature. - - @since 6.1 - */ -extern NSString *const PTDiffusionSubscriptionControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - @brief The Subscription Control feature allows a client session to subscribe - or unsubscribe other sessions to topics, as well as also providing a mechanism - for handling requests to subscribe to routing topics (deprecated). - - The Subscription Control feature for a session can be obtained from the - session's `PTDiffusionSession#subscriptionControl` property. - - Requests to subscribe sessions to topics can be submitted at any time even if - the topics do not exist at the server. @ref md_topic_selectors "Topic selectors" - are used on subscription to match against topics at the server. The session - will become subscribed to any topics that exist at the server that match the - selector (unless they are already subscribed, or the session has insufficient - permission). The subscription request is also retained at the server so that if - any newly created topics match the selector, the session will then become - subscribed to it (unless a subsequent unsubscription cancels it). - - Specific sessions may be subscribed/unsubscribed if the PTDiffusionSessionId is - known. - - Subscriptions may also be requested using - @ref md_session_filters "session filters", where all sessions that satisfy a - particular filter expression will be subscribed/unsubscribed. The filter is - only evaluated once against the current sessions that exist at the time - it is - not retained and applied to any sessions that are created later. In order to be - notified of new sessions as they are created a - PTDiffusionSessionPropertiesListener can be used and those sessions subscribed - as required based upon their session properties. - - A handler for routing topics belonging to a branch of the topic tree can be - added using this feature's 'add routing subscription handler' method. When - another session subscribes to one of the routing topics, the handler will be - called to determine the appropriate source topic. - - ### Access control - - To subscribe other sessions to topics, a session must have `PTDiffusionGlobalPermission#modifySession` - permission, and `PTDiffusionPathPermission#selectTopic` permission for the path prefix of the topic - selector used for subscription. The subscribed sessions will only be subscribed - to matching topics for which they have `PTDiffusionPathPermission#readTopic` permission. - - To unsubscribe other sessions, a session must have `PTDiffusionGlobalPermission#modifySession` permission. - - To register a routing subscription handler the session needs `PTDiffusionGlobalPermission#viewSession`, - `PTDiffusionGlobalPermission#modifySession` and `PTDiffusionGlobalPermission#registerHandler` permissions. - - When handling a subscription request to a routing topic via a routing handler - the target session needs `PTDiffusionPathPermission#readTopic` permission to both the routing topic - being subscribed to and the target topic that is assigned. - - @since 6.1 - */ -@interface PTDiffusionSubscriptionControlFeature : PTDiffusionFeature - -/** - Subscribe another session to topics. - - New subscriptions will be established for existing topics that match the - provided topic selector and for which the subscribed session has `PTDiffusionPathPermission#readTopic` - permission. The topic selector will be added to the topic selections of the - subscribed session, and re-evaluated when new topics are added or the session's - security roles change. - - A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot - subscribe directly, but can be subscribed indirectly using this method. - - @param sessionId Identifies the session to subscribe. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to subscribe to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.1 - */ --(void) subscribeSessionId:(PTDiffusionSessionId *)sessionId - withTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Unsubscribe another session from topics. - - @param sessionId Identifies the session to unsubscribe. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to unsubscribe from. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.1 - */ --(void) unsubscribeSessionId:(PTDiffusionSessionId *)sessionId - withTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Subscribe sessions that satisfy a given session filter to topics. - - For each session that matches the filter, new subscriptions will be established - for existing topics that match the provided topic selector and for which the - sessions has `PTDiffusionPathPermission#readTopic` permission. The topic selector will be added to the - topic selections of the subscribed session, and re-evaluated when new topics - are added or the session's security roles change. - - A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot - subscribe directly, but can be subscribed indirectly using this method. - - @param filter The @ref md_session_filters "session filter" expression. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to subscribe to. - - @param 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 the `count` argument indicates the number of clients - that satisfied the filter and qualified for subscription. On failure the - `error` argument passed to the block will not be `nil` and the `count` argument - will be zero. The completion handler will be called asynchronously on the main - dispatch queue. - - @note The completion handler block will be invoked with a `nil` for the `error` - argument and zero for the `count` argument if no client sessions satisified the - filter. - - @exception NSInvalidArgumentException If any arguments are `nil`. - - @since 6.1 - */ --(void) subscribeWithFilter:(NSString *)filter - topicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; - -/** - Unsubscribe sessions that satisfy a given session filter from topics. - - @param filter The @ref md_session_filters "session filter" expression. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server, identifying the topics to unsubscribe from. - - @param 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 the `count` argument indicates the number of clients - that satisfied the filter and qualified for unsubscription. On failure the - `error` argument passed to the block will not be `nil` and the `count` argument - will be zero. The completion handler will be called asynchronously on the main - dispatch queue. - - @note The completion handler block will be invoked with a `nil` for the `error` - argument and zero for the `count` argument if no client sessions satisified the - filter. - - @exception NSInvalidArgumentException If any arguments are `nil`. - - @since 6.1 - */ --(void)unsubscribeWithFilter:(NSString *)filter - topicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; - -/** - Adds a handler for routing topics that belong to a branch of the topic tree. - When another session subscribes to one of the routing topics, the handler will - be called to determine the appropriate source topic. - - For each subscription to the routing topic, the server will select a handler - registered for the most specific branch. If multiple handlers are registered - for the same branch, the server will select one of them arbitrarily. - - @param handler The object which will handle the incoming subscription routing - requests. It will be sent messages asynchronously on the main dispatch queue. - A weak reference is maintained to this object. - - @param topicPath Identifies the branch of the topic tree to associate the - handler with. - - @param 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 the `registration` argument will point to a - registration object which can be used to manage the registration. The - completion handler will be called asynchronously on the main dispatch queue. - - @return Stream resulting from the registration of the given routing request handler - for the given topic path. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - - @deprecated since 6.7 Routing Topics are deprecated. The more powerful - {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. - */ --(PTDiffusionStream *)addRoutingRequestHandler:(id)handler - forTopicPath:(NSString *)topicPath - completionHandler:(void (^)(PTDiffusionRegistration * _Nullable registration, NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h deleted file mode 100644 index fc872e7..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h +++ /dev/null @@ -1,103 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionSessionId; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A single request from a session to subscribe to a routing topic. - - Each request received by a handler must either be routed or deferred. - - @since 6.1 - */ -@interface PTDiffusionSubscriptionRoutingRequest : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Identifies the session making the subscription request. - - @since 6.1 - */ -@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; - -/** - Identifies the subscribed routing topic. - - @since 6.1 - */ -@property(nonatomic, readonly) NSString* topicPath; - -/** - Defer the handling of this subscription request. - - * When a request is deferred, the server will discard the request, and the - requesting session will not receive a subscription notification. - - An implementation can retain the requesting PTDiffusionSessionId and the - routing topic's path so a routing subscription can be established at a later - time using the PTDiffusionSubscriptionControlFeature. - - Each instance of this class can be used once. If route or defer has already - been called for this instance, calling this method will cause a warning to be - logged by the server, but otherwise have no effect. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if completionHandler is `nil`. - - @since 6.1 - */ --(void)deferWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Resolve a subscription request by providing the path of a source topic to which - the requesting session will be subscribed via the routing topic. - - The requesting session will receive a subscription notification with the - routing topic's path and the topic specification of the source topic. If the - source topic is stateful, the requesting session will also be sent an update - for the routing topic path with the current value of the source topic. The - existence of the source topic is hidden from the requesting session. Updates to - the source topic are forwarded to the session as if they came from the routing - topic. - - A session that does not have `SELECT_TOPIC` or `READ_TOPIC` permission for the - source topic cannot subscribe directly, but can be subscribed indirectly using - this method. - - @param topicPath The topic path of the source topic to route to. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.1 - */ --(void)routeToSourceTopicPath:(NSString *)topicPath - withCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h deleted file mode 100644 index d7bae1a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h +++ /dev/null @@ -1,47 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionSubscriptionRoutingRequest; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed subscription routing - requests. - - This protocol defines methods to be implemented by classes wishing to provide - routing functionality. - - @see PTDiffusionSubscriptionControlFeature - - @since 6.1 - */ -@protocol PTDiffusionSubscriptionRoutingRequestHandler - -/** - Notification of a request to subscribe to a specific routing topic. - - @param stream The stream that received the update. - - @param request The request, which must be replied to or deferred. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveSubscriptionRoutingRequest:(PTDiffusionSubscriptionRoutingRequest *)request; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h deleted file mode 100644 index 6231157..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h +++ /dev/null @@ -1,110 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionBytes; -@class PTDiffusionTimeSeriesFetchResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief An event in a time series. - - Two instances are equal if and only if they have identical attributes. - Typically two instances that have the same sequence number will be equal, but - this may not be true if the event has changed on the server. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesEvent : PTDiffusionTimeSeriesEventMetadata - -/** - If this is an edit event, returns the metadata of the original event that this - event replaces; otherwise returns this event. - - The result is always the metadata of an original event, never that of an edit - event. - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionTimeSeriesEventMetadata* originalEvent; - -/** - If this is an edit event then `YES`, otherwise `NO` indicating that this is an - original event. - - @since 6.0 - */ -@property(nonatomic, readonly, getter=isEditEvent) BOOL editEvent; - -/** - The value associated with the event. - - @since 6.3 - */ -@property(nonatomic, readonly) PTDiffusionBytes* bytes; - -/** - Compares the receiver to the given time series event. - - @param timeSeriesEvent The time series event object with which to compare the - receiver. - - @return `YES` if it is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesEvent:(nullable PTDiffusionTimeSeriesEvent *)timeSeriesEvent; - -@end - -/** - @brief Extension adding support to Topics feature fetch requests allowing them - to be constrained to only those topics with a data type compatible with time - series events. - - @since 6.3 - */ -@interface PTDiffusionFetchRequest (PTDiffusionTimeSeriesEvent) - -/** - Sends a fetch request to the server, specifying that values should be returned - for selected topics, constraining the selection to time series topics. Any - topic types specified in a previous call to PTDiffusionFetchRequest#topicTypes: - that cannot be read as a time series will be removed from the list of topic types. - - Results are returned for all topics matching the selector that satisfy the - request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / - PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / - PTDiffusionFetchRequest#beforeTopicPath: - - @param expression Specifies a @ref md_topic_selectors "topic selector", - evaluated at the server, which selects the topics to be fetched. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.3 - */ --(void)fetchTimeSeriesEventsWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionTimeSeriesFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h deleted file mode 100644 index b994743..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h +++ /dev/null @@ -1,87 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Metadata associated with a time series event. - - @see PTDiffusionTimeSeriesEvent - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesEventMetadata : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Sequence number identifying this event within its time series. - Assigned by the server when the event is created. - - Sequence numbers are unique within a time series. Each event appended to a - time series is assigned a sequence number that is equal to the sequence - number of the preceding event plus one. - - @return The sequence number; never higher than `INT64_MAX`. - - @since 6.0 - */ -@property(nonatomic, readonly) UInt64 sequence; - -/** - Event timestamp. Assigned by the server when the event is created. - - Events do not have unique timestamps. Events with different sequence numbers - may have the same timestamp. - - Subsequent events in a time series usually have timestamps that are greater or - equal to the timestamps of earlier events, but this is not guaranteed due to - changes to the time source used by the server. - - @return The difference, measured in milliseconds, between the time the server - added the event to the time series and midnight, January 1, 1970 UTC. - - @since 6.0 - */ -@property(nonatomic, readonly) SInt64 timestamp; - -/** - Server-authenticated identity of the session that created the event. - - @return The principal that created the event, or - [PTDiffusionSession anonymousPrincipal] if the session that created the event - was not authenticated - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* author; - -/** - Compares the receiver to the given time series event metadata. - - @param timeSeriesEventMetadata The time series event metadata object with which - to compare the receiver. - - @return `YES` if it matches the receiver for just metadata elements (sequence, - timestamp and author), otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesEventMetadata:(nullable PTDiffusionTimeSeriesEventMetadata *)timeSeriesEventMetadata; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h deleted file mode 100644 index 50f5705..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h +++ /dev/null @@ -1,320 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a session to update and query time series topics. - - ## Time series topics - - A time series is a sequence of events. Each event contains a value - and has server-assigned metadata comprised of a sequence number, timestamp, - and author. Events in a time series are ordered by increasing sequence - number. Sequence numbers have values between `0` and `NSIntegerMax` - and are contiguous: an event with sequence number - `n` will be followed by one with sequence number `n + 1`. Two - events with the same sequence number will be equal – having the same - timestamp, author, and value. - - A time series topic allows sessions to access a time series that is - maintained by the server. A time series topic has an associated - {@link PTDiffusionDataType event data type}, such as `PTDiffusionBinary`, - `PTDiffusionPrimitive `, or `PTDiffusionJSON`, that determines the type of value - associated with each event. - - This feature provides a historic query API for time series topics, allowing a - session to query arbitrary sub-sequences of a time series. The - {@link PTDiffusionTopicControlFeature topic control} and {@link PTDiffusionTopicsFeature topics} - features complete the API, providing ways to create and subscribe to a - time series topic. - - The API presents a time series as an append-only data structure of immutable - events that is only changed by adding new events. - - ### Edit events - - Although a time series is append-only, an event can be overridden by - appending an edit event. An edit event is a special type of event - that overrides an earlier event in the time series (referred to as the - original event) with a new value. When an edit event is added to a - time series, the server retains both the original event and the edit event, - allowing subscription and query results to reflect the edit. - - For example, suppose a time series has two events with the values `A` - and `B`, and the first event has been overridden by a later edit event - that provides a new value of `X`. The server has the following - information about the time series. - - - - - - - - - - - - - - - - - - - - - - -
SequenceValueType
0Aoriginal event
1Boriginal event
2Xedit of sequence 0
- - The current value of the event with sequence number 0 is `X`. - - If an original event has several edit events, the latest edit event (the one - with the highest sequence number) determines its current value. Each edit - event refers to an original event, never to another edit event. - - Extending the example by appending a further edit event to the time series: - - - - - - - - - - - - -
SequenceValueType
3Ysecond edit of sequence 0
- - The current value of the event with sequence number 0 is now `Y`. - - - ### Retained range - - A time series topic retains a range of the most recent events. When a new - event is added to the time series, older events that fall outside of the - range are discarded. By default, this range includes the ten most recent - events. A different range can be configured by setting the - {@link PTDiffusionTopicSpecification#timeSeriesRetainedRangePropertyKey - timeSeriesRetainedRange} property. - - ## Subscribing to a time series topic - - A session can {@link PTDiffusionTopicsFeature#subscribeWithTopicSelectorExpression:completionHandler: - subscribe} to a time series topic and add a value stream to receive updates - about events appended to the time series. Events are represented by - {@link PTDiffusionTimeSeriesEvent event} instances. Each event has a value and - {@link PTDiffusionTimeSeriesEventMetadata metadata}. An edit event has two sets of - metadata – its own metadata and that of the original event that it - replaces. - - ### Subscription range - - New subscribers are sent a range of events from the end of the time series. - This is known as the subscription range. Configuring a subscription - range is a convenient way to provide new subscribers with an appropriate - subset of the latest events. - - The default subscription range depends on whether the topic is configured to - publish delta streams. If delta streams are enabled, new subscribers are sent - the latest event if one exists. If delta streams are disabled, new - subscribers are sent no events. Delta streams are enabled by default and can - be disabled by setting the {@link PTDiffusionTopicSpecification#publishValuesOnlyPropertyKey - publishValuesOnly} property to `true`. - - A larger subscription range can be configured by setting the - {@link PTDiffusionTopicSpecification#timeSeriesSubscriptionRangePropertyKey - timeSeriesSubscriptionRange} property. Regardless of the - `timeSeriesSubscriptionRange` property, if delta streams are - enabled, new subscribers will be sent at least the latest event if one - exists. - - If the range of events is insufficient, the subscribing session can use a - {@link PTDiffusionTimeSeriesRangeQuery range query} to retrieve older events. - - When configuring a non-default subscription range for a time series topic, - register value streams before subscribing to the topic. The session only - maintains a local cache of the latest value received for a topic, not the - full subscription range. If a value stream is added after a session has - subscribed to a matching time series topic, the new stream will only be - notified of the latest value. - - ## Updating a time series topic - - A session can use `appendToTopicPath:value:completionHandler` to submit a value to be added to a - time series. The server will add an event to the end of the time series based - on the supplied value, with a new sequence number, timestamp, and the author - set to the authenticated principal of the session. - - Using `appendToTopicPath:value:timestamp:completionHandler` allows a session - to submit a value and supplied timestamp. - This provides control over the timestamp of the event. - The supplied instant must not be before the latest event stored by the time - series topic. There are no other restrictions. - - A session can use `editAtTopicPath:originalSequence:value:completionHandler:` - to submit an edit to an original time series event, identified by its sequence number. - The server will add an edit event to the end of the time series based on the - supplied value, with a new sequence number, timestamp, and the author set to - the authenticated principal of the session. - - Time series topics can also be updated using the functionality provided by - the {@link PTDiffusionTopicUpdateFeature topic update} feature. This includes - `setWithPath:toValue:completionHandler:`, `addWithPath:specification:andSetToJSONValue:completionHandler:` - and {@link PTDiffusionUpdateStream update streams}. This usage performs - an append operation with the added benefits of {@link PTDiffusionUpdateConstraint update constraints}, - topic creation when updating (upsert), and delta streams. When using methods - from {@link PTDiffusionTopicUpdateFeature topic update} the sequence number, timestamp and author metadata - will be generated using the same rules as - `appendToTopicPath:value:timestamp:completionHandler` but the associated - {@link PTDiffusionTimeSeriesEventMetadata event metadata} will not be returned to the caller. - - ## Querying a time series topic - - {@link PTDiffusionTimeSeriesRangeQuery} is a builder for configuring a query that selects a range - of a time series. There are two types of range query that differ in how edits - are processed – value range queries and edit range queries. - - ### Value range queries - - A value range query returns a merged view of part of a time series. This is - the most common time series query and appropriate for most applications. - - The result of a value range query reflects the latest available edits and the - {@link PTDiffusionTimeSeriesQueryResultEventArrayStructure#valueEventStream - query result stream} is ordered by the original - event sequence number, presenting edit events instead of the original events - they replace. Original events that have no edit events are included verbatim. - Original events that have edit events are replaced by the latest edit event. - - A value range query of the example time series, with no range constraints so - the entire time series is selected, returns two events: - -
-    sequence=3, value=Y; original event sequence=0
-    sequence=1, value=B
- 
- - The original value of the first event is not provided. It's apparent that the - first event is an edit event because it provides the metadata of the original - event it replaces. - - ### Edit range queries - - Applications with auditing and other administrative requirements can access - original event values using an edit range query. An edit range query returns - an unmerged view of a time series that can include both original events and - the edit events that replace them. Edit range queries are rarely needed - – value range queries satisfy most use cases. - - Edit range queries provide a detailed view of a time series. Because this is - potentially sensitive information, an edit range query can only be performed - by a session that has the {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents - queryObsoleteTimeSeriesEvents} permission for the target topic. - - There are two sub-types of edit range query. - - A full audit trail of edit events can be obtained using an all edits - edit range query. The result contains all original events selected by the - query, together with all subsequent edit events that affect the original - events. The query result stream provides events in time series order. An all - edits query of the example time series, with no range constraints so the - entire time series is selected, returns four events: - -
-    sequence=0; value=A
-    sequence=1; value=B
-    sequence=2; value=X; original event sequence=0
-    sequence=3; value=Y; original event sequence=0
- 
- - A latest edits edit range query returns a query result stream in - time series order that contains all original events selected by the query, - together with the latest edit events that affect the original events. A - latest edits query of the example time series, with no range constraints so - the entire time series is selected, returns three events: - -
-    sequence=0; value=A
-    sequence=1; value=B
-    sequence=3; value=Y; original event sequence=0
- 
- - The initial range of events delivered for a subscription to a time series - topic is derived from a latest edits edit range query. See - Subscription Range. - - When evaluated for a time series that has no edit events, an edit range query - will return the same results as a similarly configured value range query. - - ## Changes to a time series made outside the API - - The API presents a time series as an append-only data structure of immutable - events that is only changed by adding new events. The API does not allow - events to be deleted or edited. - - There are circumstances in which events can be removed from a time series by - server operations outside the API. For example, a time series topic can be - configured to discard or archive older events to save storage space; or the - time series may be held in memory and lost if the server restarts. Subscribed - sessions are not notified when events are removed in this way, but a session - can infer the removal of events that are no longer included in query results. - Similarly, an event's value can be changed on the server. For example, if an - administrator changes its value to redact sensitive data. Again, subscribed - sessions are not notified when events are modified, but a session can infer - this has happened from query results. - - Whether such changes can happen for a particular time series topic depends on - the topic specification, and the administrative actions that are allowed. To - write a robust application, do not rely on two Event instances with the same - sequence number but obtained though different API calls, being equal; nor - that there are no sequence number gaps between events in query results. - - ## Access control - - The session must have the {@link PTDiffusionPathPermission#readTopic readTopic} - permission for a topic to query a time series topic. The - {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents - queryObsoleteTimeSeriesEvents} permission is additionally required - to evaluate an {@link PTDiffusionTimeSeriesRangeQuery#forEdits edit range} query, or a - {@link PTDiffusionTimeSeriesRangeQuery#forValues value range query} with an - {@link PTDiffusionTimeSeriesRangeQuery#editRange edit range}. - - The session must have the {@link PTDiffusionPathPermission#updateTopic updateTopic} - permission for a topic to `appendToTopicPath:value:completionHandler:` - a new event to a time series topic. The - {@link PTDiffusionPathPermission#editTimeSeriesEvents editTimeSeriesEvents} - permission is additionally required to submit an edit via - `editAtTopicPath:originalSequence:value:completionHandler:` to any time series - topic event. The more restrictive - {@link PTDiffusionPathPermission#editOwnTimeSeriesEvents editOwnTimeSeriesEvents} - permission allows a session to submit edits to time series topic - events that are authored by the principal of the calling session. - - The Time Series feature for a session can be obtained from the session's - {@link PTDiffusionSession#timeSeries timeSeries} property. - - @see PTDiffusionSession - @since 6.0 - */ -@interface PTDiffusionTimeSeriesFeature : PTDiffusionFeature - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h deleted file mode 100644 index 14aaf1f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h +++ /dev/null @@ -1,42 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTimeSeriesFetchTopicResult; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the results from a time series fetch operation issued to - the server. - - A time series fetch operation is issued using the - PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: - method. - - @since 6.3 - */ -@interface PTDiffusionTimeSeriesFetchResult : PTDiffusionFetchResult - -/** - The results from the fetch operation, in path order, each representing a single - topic selected by the fetch operation. - - @since 6.3 - */ -@property(nonatomic, readonly) NSArray * timeSeriesResults; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h deleted file mode 100644 index 7f3ff85..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTimeSeriesEvent; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Encapsulates the result from a time series fetch operation for a single - selected topic. - - A time series fetch operation is issued using the - PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: - method. - - @since 6.3 - */ -@interface PTDiffusionTimeSeriesFetchTopicResult : PTDiffusionFetchTopicResult - -/** - Returns the latest event, or `nil` if the topic has no events. - - @since 6.3 - */ -@property(nonatomic, readonly, nullable) PTDiffusionTimeSeriesEvent* event; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h deleted file mode 100644 index 89f595f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h +++ /dev/null @@ -1,76 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTimeSeriesEvent; -@class PTDiffusionTimeSeriesQueryResultEventArrayStructure; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Query result providing an array of time series events. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesQueryResult : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - If this result includes all events selected by the query then `YES`. - - When this property returns `YES` then the value returned by the selectedCount - property will be the same as the count of the array returned by the events - property. - - @since 6.0 - */ -@property(nonatomic, readonly, getter=isComplete) BOOL complete; - -/** - The number of events selected by the query. - - This number may be greater than the count of the array returned by the events - property due to a policy of the time series topic to limit the number of - returned results, or the use a limit on the range query. - - @since 6.0 - */ -@property(nonatomic, readonly) UInt64 selectedCount; - -/** - The structural properties of the events array. - - @see events - - @since 6.0 - */ -@property(nonatomic, readonly) PTDiffusionTimeSeriesQueryResultEventArrayStructure* eventArrayStructure; - -/** - Compares the receiver to the given time series query result. - - @param timeSeriesQueryResult The time series query result object with which - to compare the receiver. - - @return `YES` if it is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesQueryResult:(nullable PTDiffusionTimeSeriesQueryResult *)timeSeriesQueryResult; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h deleted file mode 100644 index 82a403d..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h +++ /dev/null @@ -1,69 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Describes the structural properties of the array of events presented - by a time series query result. - - @see PTDiffusionTimeSeriesQueryResult - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesQueryResultEventArrayStructure : PTDiffusionEnumeration - -/** - The array is presented in time series order, with the following properties: - - - The sequence of each event in the array is unique. - - The array is ordered by sequence. The sequence of each subsequent event - in the stream is greater than its predecessor. - - Edit event timestamps may lie outside the query range. - - The array can have multiple edit events for the same original event. - - @return Instance indicating the array is presented in time series order. - - @since 6.0 - */ -+(instancetype)editEventStream; - -/** - The array is ordered by the original event sequence number, presenting edit - events instead of the original events they replace. - - The array has the following properties: - - - The sequence of each event in the stream is unique. - - The original event sequence of each event in the stream is unique. - - The stream is ordered by original event sequence. The original event sequence - of each subsequent event in the stream is greater than its predecessor. - - If no events have been removed from the time series, the original event - sequence of each subsequent event is one greater than its predecessor. - - If an event is an original event, the query found no corresponding edit - events. - - If an event is an edit event, its timestamp attribute may lie outside the - query range. Consequentially, the sequence and timestamp attributes of the - events may be non-sequential. - - @return Instance indicating array is ordered by the original event sequence number. - - @since 6.0 - */ -+(instancetype)valueEventStream; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h deleted file mode 100644 index 9c97336..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h +++ /dev/null @@ -1,379 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Builder for queries that select a range of events from a time series. - - @since 6.0 - */ -@interface PTDiffusionTimeSeriesRangeQuery : NSObject - -/** - Return a copy of the receiver configured to perform a value range query with - the view range set to the entire time series. - - Operator type: value range. - - @return a copy of the receiver configured to perform a view range query with a - new view range that selects the entire time series. - - @since 6.0 - */ --(instancetype)forValues; - -/** - Return a copy of the receiver configured to perform an edit range query with - the view range set to the entire time series. - - Operator type: value range. - - @return a copy of the receiver configured to perform an edit range query with a - new view range that selects the entire time series. - - @since 6.0 - */ --(instancetype)forEdits; - -/** - Return a copy of the receiver configured to perform a value range query with - the edit range set to the entire time series. - - This operator can only be applied to value range queries. Newly initialised - range query instances are value range queries. The @ref forValues operator can - be used to create a value range query from an edit range query. - - Operator type: edit range. - - @return a copy of the receiver configured to perform a view range query with a - new edit range that selects the entire time series, or `nil` if this is not a - value range query. - - @since 6.0 - */ --(nullable instancetype)editRange; - -/** - Return a copy of the receiver configured to perform an edit range query with - the edit range that selects all edits in the entire time series. - - This operator can only be applied to edit range queries. Newly initialised - range query instances are value range queries. The @ref forEdits operator can - be used to create an edit range query from a value range query. - - Operator type: edit range. - - @return a copy of the receiver configured to perform an edit range query with a - new edit range that selects all edits in the entire time series, or `nil` if - this is not an edit range query. - - @since 6.0 - */ --(nullable instancetype)allEdits; - -/** - Return a copy of the receiver configured to perform an edit range query with - the edit range that selects latest edits in the entire time series. - - This operator can only be applied to edit range queries. Newly initialised - range query instances are value range queries. The @ref forEdits operator can - be used to create an edit range query from a value range query. - - Operator type: edit range. - - @return a copy of the receiver configured to perform an edit range query with a - new edit range that selects the latest edits in the entire time series, or - `nil` if this is not an edit range query. - - @since 6.0 - */ --(nullable instancetype)latestEdits; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be an absolute sequence number. - - Operator type: anchor. - - @param sequence absolute sequence number specifying the anchor of the returned - range. - - @return a copy of the receiver with a new anchor. - - @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)fromSequence:(UInt64)sequence; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be the start of the time series. - - There is a difference between `fromStart` and `fromSequence:0` if the range - also ends before the first event of the time series. For example, - `[[query fromStart] toStart]` is always empty, but - `[[query fromSequence:0] toStart]` includes the event with sequence number `0`. - - Operator type: anchor. - - @return a copy of the receiver with a new anchor. - - @since 6.0 - */ --(instancetype)fromStart; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be an absolute time. - - Operator type: anchor. - - @param date absolute time specifying the anchor of range. - - @return a copy of the receiver with a new anchor. - - @since 6.0 - */ --(instancetype)fromDate:(NSDate *)date; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be a relative offset before the end of the time series. - - Operator type: anchor. - - @param count specifies the anchor as a number of events before the end of the - time series. For value range queries, count is the number of original events. - For edit range queries, count is the number of events of any type. - - @return a copy of the receiver with a new anchor. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)fromLastWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the anchor of the current range configured - to be a relative time from the timestamp of the last event in the time series. - - Operator type: anchor. - - @param timeInterval specifies anchor relative to the timestamp of the latest - event in the time series. - - @return a copy of the receiver with a new anchor. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)fromLastWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver with the span of the current range configured to - end at an absolute sequence number. - - Operator type: span. - - @param sequence absolute sequence number specifying the end of the returned - range. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)toSequence:(UInt64)sequence; - -/** - Return a copy of the receiver with the span of the current range configured to - end at the start of the time series. - - There is a difference between `toStart` and `toSequence:0` if the range also - starts before the first event of the time series. For example, - `[[query fromStart] toStart]` is always empty, but - `[[query fromStart] toSequence:0]` includes the event with sequence number `0`. - - Operator type: span. - - @return a copy of the receiver with a new span. - - @since 6.0 - */ --(instancetype)toStart; - -/** - Return a copy of the receiver with the span of the current range configured to - end at an absolute time. - - Operator type: span. - - @param date absolute time specifying the end of the range. - - @return a copy of the receiver with a new span. - - @since 6.0 - */ --(instancetype)toDate:(NSDate *)date; - -/** - Return a copy of the receiver with the span of the current range configured to - select a range of events following the anchor. - - Operator type: span. - - @param count specifies the end of the range of events to select following the - anchor. For value range queries, count is the number of original events. For - edit range queries, count is the number of events of any type. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)nextWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the span of the current range configured to - select a temporal range of events following the anchor. - - Operator type: span. - - @param timeInterval the time span of events following the anchor to select. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)nextWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver with the span of the current range configured to - select a range of events preceding the anchor. - - Operator type: span. - - @param count specifies the end of the range of events to select preceding the - anchor. For value range queries, count is the number of original events. For - edit range queries, count is the number of events of any type. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)previousWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the span of the current range configured to - select a temporal range of events preceding the anchor. - - Operator type: span. - - @param timeInterval the time span of events preceding the anchor to select. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)previousWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver with the span of the current range configured to - end a number of events before the end of the time series. - - Operator type: span. - - @param count specifies the end of the range of events to select as a number of - events before the end of the time series. For value range queries, count is the - number of original events. For edit range queries, count is the number of - events of any type. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)untilLastWithCount:(UInt64)count; - -/** - Return a copy of the receiver with the span of the current range configured to - end at a relative time from the timestamp of the last event in the time series. - - - Operator type: span. - - @param timeInterval specifies the end of the range of events to select relative - to the timestamp of the latest event in the time series. - - @return a copy of the receiver with a new span. - - @exception NSInvalidArgumentException if timeInterval is negative. - - @since 6.0 - */ --(instancetype)untilLastWithTimeInterval:(NSTimeInterval)timeInterval; - -/** - Return a copy of the receiver that returns at most count events. - - If the query would otherwise select more than count events, only the latest - count values (those with the highest sequence numbers) are returned. - - This is most useful when a temporal span has been configured with - @ref nextWithTimeInterval: or @ref previousWithTimeInterval: where the potential - number of returned events is unknown. - - PTDiffusionTimeSeriesQueryResult::complete can be used to determine whether - a query has returned an incomplete result. - - Operator type: limit. - - @param count the maximum number of events to return. - - @return a copy of the receiver with a new limit. - - @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. - - @since 6.0 - */ --(instancetype)limitWithCount:(UInt64)count; - -/** - Compares the receiver to the given time series range query. - - @param timeSeriesRangeQuery The time series range query object with which - to compare the receiver. - - @return `YES` if it is identical to the receiver, otherwise `NO`. - - @since 6.0 - */ --(BOOL)isEqualToTimeSeriesRangeQuery:(nullable PTDiffusionTimeSeriesRangeQuery *)timeSeriesRangeQuery; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h deleted file mode 100644 index 64be027..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h +++ /dev/null @@ -1,322 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionAddTopicResult; -@class PTDiffusionBytes; -@class PTDiffusionMissingTopicNotification; -@class PTDiffusionTopicSpecification; -@class PTDiffusionTopicTreeRegistration; -@class PTDiffusionTopicRemovalResult; - -@protocol PTDiffusionMissingTopicHandler; - -typedef NS_ENUM(NSInteger, PTDiffusionTopicControlFeatureErrorCode) { - /** - @deprecated since 6.7 Enumeration is unused. - */ - PTDiffusionTopicControlFeatureErrorCode_ServerFailedToAddTopic __deprecated_enum_msg("Enumeration is unused.") = 1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - @since 5.7 - */ -extern NSString *const PTDiffusionTopicControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); - -/** - @brief The Topic Control feature provides a client session with the ability to - manage topics. - - This feature allows a session to manage topics. It provides the following - capabilities: - - 1. Adding and removing topics. - 2. Missing topic notifications — listening for requests to subscribe to - topics that do not exist thus allowing dynamic topic creation on demand. - - ### Topics - - The Diffusion server stores data in topics. Each topic is bound to a topic - path in the topic tree, and may have a current value. Sessions can subscribe - to topics. Updates to topic values are broadcast to subscribing sessions. - There are several types of topic. The {@link PTDiffusionTopicType topic type} determines - the type of the data values a topic publishes to subscribers. - - ### Adding topics - - #### Creating topics - - The simplest way to create a topic is to call - `#addTopicWithPath:type:completionHandler:`, supplying a topic type. For example, to - create a {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo`: - -
-
-    [topicControl addTopicWithPath:\@"foo"
-                            type:PTDiffusionTopicType_JSON
-                completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
-    {
-        ...
-    }];
-
- 
- - Success or failure is reported asynchronously through the `completionHandler` - arguments. - - The nature of a topic depends primarily on its topic type, but can be - customized using topic properties. Some types of topic cannot be created - without supplying mandatory topic properties. Topic properties can be - supplied in a {@link PTDiffusionTopicSpecification topic specification} using - {@link #addTopicWithPath:specification:completionHandler:}. Topic - specifications can be created using `PTDiffusionTopicSpecification#initWithType:} and - further customized with builder methods. For example, to create a - {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo` with - the {@link PTDiffusionTopicSpecification#validateValuesPropertyKey validate values} property set - to `true`: - -
- 
-    PTDiffusionTopicSpecification *topicSpecification =
-        [PTDiffusionTopicSpecification alloc] initWithType:PTDiffusionTopicType_JSON
-                                                properties:\@{PTDiffusionTopicSpecification.validateValuesPropertyKey : PTDiffusionTopicSpecification.truePropertyValue}];
-    [topicControl addTopicWithPath:\@"foo"
-                     specification:topicSpecification
-                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
-    {
-        ...
-    }];
- 
- 
- - See {@link PTDiffusionTopicSpecification} for details of the available topic properties - and their effects on the different types of topic. - - Topic creation is idempotent. If {@link #addTopicWithPath:specification:completionHandler:} - is called and there is already a topic bound - to `path` with a topic specification equal to `specification`, - the call will complete normally with an `PTDiffusionAddTopicResult#exists` result. - However, if there is a topic bound to `path` with a different topic - specification, the completionHandler will return an error. - - ### Removing topics - - Topics can be removed using {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: - removeTopicsWithTopicSelectorExpression}. - Only those selected topics that the caller has `PTDiffusionPathPermission#modifyTopic` - permission to will be removed, any others will remain. - - Topics can also be automatically removed according to a removal criteria - specified using the `PTDiffusionTopicSpecification#removalPropertyKey` topic - property. - - ### Managing topic tree hierarchies - - A topic can be bound to any path in the topic tree namespace. The only - restriction is that two topics can not have the same path. - - In the following example a topic can be created with the path `A/B/foo` - even though there are no topics with path `A` or `A/B`: - -
- 
-    [topicControl addTopicWithPath:\@"A/B/foo"
-                              type:PTDiffusionTopicType_JSON
-                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
-    {
-        ...
-    }];
- 
- 
- - Topics bound to the paths `A` or `A/B` can be created later. - - Topics can be removed without affecting the topics subordinate to them in the - topic tree using {@link #removeDiscreteWithTopicSelectorExpression:completionHandler:} - providing a path topic selector. By using the `//` topic selector qualifier it - is possible to remove a topic and all of its descendant topics, that is to - remove whole topic tree branches. - - ### Access control - - To add or remove a topic, a session needs `PTDiffusionPathPermission#modifyTopic` - permission for the topic path. When removing topics with a topic selector that - matches more than one topic, only topics with paths for which the session has - `PTDiffusionPathPermission#modifyTopic` permission will be removed. - - To successfully register a missing topic handler using - `#addMissingTopicHandler:forTopicPath:completionHandler:`, the session needs - `PTDiffusionGlobalPermission#registerHandler` permission. - - ### Accessing the feature - - The Topic Control feature for a session can be obtained from the session's - `PTDiffusionSession#topicControl` property. - - @see PTDiffusionSession - - @since 5.7 - */ -@interface PTDiffusionTopicControlFeature : PTDiffusionFeature - -/** - Register a handler of requests for a branch of the topic tree. - - The provided handler is called when a client subscribes using a - topic selector that matches no existing topics. This allows a control client - session to be notified when another session requests a topic that does - not exist. - - A session can register multiple handlers, but may only register a single - handler for a given topic path. - A handler will only be called for topic selectors with a path prefix that starts - with or is equal to topicPath. If the path prefix matches multiple handlers, - the one registered for the most specific (longest) topic path will be called. - - @param handler The handler to use for notifying topics at or below the `topicPath` - (unless there is a handler registered for a more specific branch). - - @param topicPath Identifies a branch of the topic tree. - - @param 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 the `registration` argument will not be `nil`. - The completion handler will be called asynchronously on the main dispatch queue. - - @note If the session is closing or closed when this method is called, the - completion handler block will be called with an error, while the missing topic - handler will receive no messages. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 5.7 - */ --(void)addMissingTopicHandler:(id)handler - forTopicPath:(NSString *)topicPath - completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -/** - Send a request to the server to add a topic. - - This is a convenience method which creates the topic with default details for - the given type. - - @param path The full path of the topic to be created. - - @param type The type of topic to be created. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or value has been - supplied for a topic type that is not stateful. - - @since 6.1 - */ --(void)addTopicWithPath:(NSString *)path - type:(PTDiffusionTopicType)type - completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Send a request to the server to add a topic. - - The topic will be initialized with the given value, if specified non-`nil`, - during creation and therefore the value must be compatible with the topic type. - - @param path The full path of the topic to be created. - - @param specification Defines the topic to be created. - - @param 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. - - @exception NSInvalidArgumentException If any argument is `nil` or value has been - supplied for a topic type that is not stateful. - - @since 6.1 - */ --(void)addTopicWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification - completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; - -/** - Send a request to remove one or more topics. - - All topics that match the provided topic selector that the caller has - permission to remove will be removed. - - The selector's descendant pattern qualifier (a trailing `/` or `//`), can be - used to remove descendant topics. If a single `/` qualifier is specified, all - descendants of the matched topic paths will be removed. If `//` is specified, - the matched paths and all descendants of the matched paths (complete branches) - will be removed. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 5.9 - - @deprecated since 6.6. Use {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: - removeTopicsWithTopicSelectorExpression} instead. - */ --(void)removeDiscreteWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler -__deprecated_msg("Will be removed in a future release"); - - -/** - Send a request to remove one or more topics. - - All topics that match the provided topic selector that the caller has - permission to remove will be removed. - - The selector's descendant pattern qualifier (a trailing `/` or `//`), can be - used to remove descendant topics. If a single `/` qualifier is specified, all - descendants of the matched topic paths will be removed. If `//` is specified, - the matched paths and all descendants of the matched paths (complete branches) - will be removed. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. `result` provides the number of topics - removed via {@link PTDiffusionTopicRemovalResult#removedCount removedCount}. - - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.6 - */ --(void)removeTopicsWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(PTDiffusionTopicRemovalResult * _Nullable result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h deleted file mode 100644 index 4a92cda..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h +++ /dev/null @@ -1,49 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Indicates whether the operation caused a topic to be created or if it - already existed. - - @see PTDiffusionTopicUpdateFeature - @see PTDiffusionUpdateStream - - @since 6.3 - */ -@interface PTDiffusionTopicCreationResult : PTDiffusionEnumeration - -/** - A new topic was created. - - @return Instance indicating a new topic was created. - - @since 6.3 - */ -+(instancetype)created; - -/** - A topic with the same specification already exists. - - @return Instance indicating a topic with the same specification already exists. - - @since 6.3 - */ -+(instancetype)exists; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h deleted file mode 100644 index dfcf998..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h +++ /dev/null @@ -1,62 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The definition of a topic metric collector. - - These can be configured to record metric data for a subset of all - topics, specified with a topic selector. - - @since 6.7 - */ -@interface PTDiffusionTopicMetricCollector : PTDiffusionMetricCollector - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - The topic selector. - - @since 6.7 - */ -@property(nonatomic, readonly) NSString *topicSelector; - - -/** - Indicates whether the collector groups by topic type. - - @since 6.7 - */ -@property(nonatomic, readonly) BOOL groupsByTopicType; - - -/** - @brief The number of leading parts of the topic path to group by. - - The number of leading parts of the topic pathh to group by, - or 0 if the collector does not group by path prefix. - - @since 6.8 - */ -@property(nonatomic, readonly) NSInteger groupByPathPrefixParts; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h deleted file mode 100644 index 1bda0f7..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h +++ /dev/null @@ -1,81 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicMetricCollector; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A topic metric collector builder. - - @since 6.7 - */ -@interface PTDiffusionTopicMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder - - -/** - Specifies whether the metric collector should group by topic - type. - - By default, a topic metric collector does not group by topic type. - - @param groupByTopicType true to indicate that the collector - should group by topic type - - @return the builder - - @since 6.7 - */ --(instancetype)groupByTopicType:(BOOL)groupByTopicType; - - -/** - Specified the number of leading parts of the topic path the - metric collector should use to group results. - - By default a topic metric collector does not group by the topic - path prefix. If a positive number of parts is specified, it - will enable grouping. - - @param parts the number of leading parts of the topic path to - group by; set to 0 to disable grouping by path - - @return the builder - - @since 6.8 - */ --(instancetype)groupByPathPrefixParts:(NSInteger)parts; - - -/** - @brief Create a new {@link PTDiffusionTopicMetricCollector} using the values - currently known to this builder. - - @param name the name of the {@link PTDiffusionTopicMetricCollector} - - @param topicSelector the selector pattern that specifies the topics for which - metrics are to be collected. - - @return a new {@link PTDiffusionTopicMetricCollector} with all of the - current settings of this builder. - - @since 6.7 - */ --(PTDiffusionTopicMetricCollector *) createCollectorWithName:(NSString *const)name - andTopicSelector:(NSString *const)topicSelector; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h deleted file mode 100644 index 8968a6f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h +++ /dev/null @@ -1,71 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicNotificationType; -@class PTDiffusionTopicSpecification; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Methods implemented by classes handling streamed topic notifications. - - This protocol defines methods to be implemented by classes wishing to receive - streamed topic notifications. - - @see PTDiffusionTopicNotificationsFeature - - @since 6.1 - */ -@protocol PTDiffusionTopicNotificationListener - -/** - Notification for an immediate descendant of a selected topic path. - This notifies the presence or absence of a descendant topic that may - subsequently be explicitly selected. - - @param stream The stream that received the update. - - @param type The type of notification. - - @param topicPath The path of the immediate descendant that is not selected. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveDescendantNotificationWithType:(PTDiffusionTopicNotificationType *)type - topicPath:(NSString *)topicPath; - -/** - Notification for a selected topic. - - @param stream The stream that received the update. - - @param type The type of notification. - - @param topicPath The path of the topic that this notification is for. - - @param specification The specification of the topic that this notification is - for. - - @since 6.1 - */ --(void) diffusionStream:(PTDiffusionStream *)stream - didReceiveNotificationWithType:(PTDiffusionTopicNotificationType *)type - topicPath:(NSString *)topicPath - specification:(PTDiffusionTopicSpecification *)specification; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h deleted file mode 100644 index e3b3341..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h +++ /dev/null @@ -1,69 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The registration state of the associated topic notification listener - on the server. - - Provides operations to control which topic paths the listener will receive - notifications for. - - @since 6.1 - */ -@interface PTDiffusionTopicNotificationRegistration : PTDiffusionRegistration - -/** - Request to receive notifications for all topics matched by the provided topic - selector. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - */ --(void)selectWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Request to stop receiving notifications for all topics matched by the provided - topic selector. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - */ --(void)deselectWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h deleted file mode 100644 index c2a0ced..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h +++ /dev/null @@ -1,67 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The type of topic notification received. - - @see PTDiffusionTopicNotificationListener - - @since 6.1 - */ -@interface PTDiffusionTopicNotificationType : PTDiffusionEnumeration - -/** - The topic has been added. - - @return Instance indicating a topic has been added. - - @since 6.1 - */ -+(instancetype)added; - -/** - The topic has been removed. - - @return Instance indicating a topic has been removed. - - @since 6.1 - */ -+(instancetype)removed; - -/** - The topic existed at the time of the selector registration. - - @return Instance indicating a topic existed at the time of - the selector registration. - - @since 6.1 - */ -+(instancetype)selected; - -/** - The topic is no longer selected due to the removal of a selector. - - @return Instance indicating a topic is no longer selected due to - the removal of a selector. - - @since 6.1 - */ -+(instancetype)deselected; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h deleted file mode 100644 index 91ce757..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h +++ /dev/null @@ -1,130 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionStream; -@class PTDiffusionTopicNotificationRegistration; - -@protocol PTDiffusionTopicNotificationListener; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Topic Notifications feature allows a client session to receive - notifications about changes to selected topics. - - The Topic Notifications feature for a session can be obtained from the - session's `PTDiffusionSession#topicNotifications` property. - - ### Notifications - - Sessions receive notifications by implementing a - PTDiffusionTopicNotificationListener. The listener will be provided with a - PTDiffusionTopicSpecification for all topics bound to paths that match - registered selectors, and any subsequent notifications for the selected - topics on those paths. Notifications will only be emitted for paths where a - topic is bound. - - For example, with a registered selector `"?a//"`, if a topic is added at path - `a/b/c/d` with no topics bound to paths higher in the hierarchy - `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveNotificationWithType:topicPath:specification:` - will be called once with a topic path of `"a/b/c/d"`, a notification type of - PTDiffusionTopicNotificationType::added, and the topic's associated - PTDiffusionTopicSpecification. - - The nature of the notification is provided by the - PTDiffusionTopicNotificationType enum. PTDiffusionTopicNotificationType::added - and PTDiffusionTopicNotificationType::removed represent structural changes to - the topic tree; PTDiffusionTopicNotificationType::selected indicates that a - pre-existing topic has been selected by a new registered selector, and - similarly PTDiffusionTopicNotificationType::deselected indicates that a topic - is no longer selected because of changes to the set of registered selectors for - the listener. - - ### Selection and deselection - - Registered PTDiffusionTopicNotificationListener implementations will receive - notifications for all topics matching registered selections. Selection of - topics using @ref md_topic_selectors "topic selector" expressions is provided - via the PTDiffusionTopicNotificationRegistration associated for a specific - listener. - - A session can request selections at any time, even if the topics do not exist - at the server. Selections are stored on the server and any subsequently added - topics that match registered selectors will generate notifications. - - ### Immediate descendant notifications - - Listeners will be informed about the presence or absence of unselected - immediate descendants via - `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveDescendantNotificationWithType:topicPath:`. - This allows listeners to determine whether to select deeper topic paths in - order towalk the topic tree. An immediate descendant is defined as the - first bound topic on any branch below a given topic path. - - For example, for topics at `"a/b", "a/c", "a/c/d", "a/e/f/g"`, the immediate - descendants of `"a"` would be `"a/b", "a/c", "a/e/f/g"`. - - Immediate descendant notifications provide a PTDiffusionTopicNotificationType - to indicate the reason for the notification in the same manner as for - topic notifications. - - For example, with a registered selector `">a"`, if a topic is added at path - `"a/b"` then a descendant notification will be received with a topic path of - `"a/b"` and a notification type of PTDiffusionTopicNotificationType::added - If a topic was subsequently added at path `"a/b/c"`, no further notifications - will be received until - PTDiffusionTopicNotificationRegistration::selectWithTopicSelectorExpression:completionHandler: - was used to select the deeper topic path `">a/b"`. - - ### Access control - - A listener will only be notified about topics for which the session has - `PTDiffusionPathPermission#selectTopic` and `PTDiffusionPathPermission#readTopic` - permissions. - `PTDiffusionPathPermission#selectTopic` determines which selectors a listener may register; - `PTDiffusionPathPermission#readTopic` determines which selected topics the client may receive - notifications for. - - @see PTDiffusionSession - - @since 6.1 - */ -@interface PTDiffusionTopicNotificationsFeature : PTDiffusionFeature - -/** - Register a listener to receive topic notifications. - - @param listener The object which will handle the incoming notifications. It - will be sent messages asynchronously on the main dispatch queue. A weak - reference is maintained to this object. - - @param 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 the `registration` argument will point to a - registration object which can be used to manage the registration. The - completion handler will be called asynchronously on the main dispatch queue. - - @return The stream resulting from the listener registration. - - @exception NSInvalidArgumentException Raised if any arguments are `nil`. - - @since 6.1 - */ --(PTDiffusionStream *)addListener:(id)listener - completionHandler:(void (^)(PTDiffusionTopicNotificationRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h deleted file mode 100644 index 336f2c0..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h +++ /dev/null @@ -1,192 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Permissions protecting access-controlled operations that are evaluated - for a specific topic path. - - @see PTDiffusionGlobalPermission - - @since 6.3 - - @deprecated since 6.5. Replaced by the equivalent {@link PTDiffusionPathPermission}. - In previous releases, the path-scoped permissions were called "topic permissions". - This was a source of confusion since some of the permissions apply to message paths or - to session lock names, both of which are hierarchical but have nothing to do with topics in - the topic tree. - The term "topic permission" has been renamed "path permission" throughout the API. - Additional methods have been added to reflect this renaming. - The old methods are deprecated and will be removed in a future release. - */ - -__deprecated_msg("Will be removed in a future release.") -@interface PTDiffusionTopicPermission : PTDiffusionEnumeration - -/** - Required to receive information from a topic. - - If a session does not have read_topic permission for a topic, the topic will be - excluded from the results of subscription or fetch operations for the session, - and the topic's details cannot be retrieved by the session. - - @return Instance representing the permission to receive information - from a topic. - - @see #selectTopic - - @since 6.3 - */ -+(instancetype)readTopic; - -/** - Permission to update a topic. - - @return Instance representing the permission to update a topic. - - @since 6.3 - */ -+(instancetype)updateTopic; - -/** - Permission to add a topic or remove a topic. - - @return Instance representing the permission to add or remove - a topic. - - @since 6.3 - */ -+(instancetype)modifyTopic; - -/** - Permission to send a message to a handler registered with the server. - - @return Instance representing the permission to send a message to - a handler registered with the server. - - @since 6.3 - */ -+(instancetype)sendToMessageHandler; - -/** - Permission to send a message to a client session. - - @return Instance representing the permission to send a message to - a client session. - - @since 6.3 - */ -+(instancetype)sendToSession; - -/** - Permission to use a topic selector that selects the topic path. - - A session must have this permission for the path prefix of any topic selector - used to subscribe or fetch. - - When the subscription or fetch request completes, the resulting topics are - further filtered based on the #readTopic permission. - - A session that has #readTopic but not #selectTopic for a particular topic path - cannot subscribe directly to topics belonging to the path. However, the session - can be independently subscribed by a control session that has PTDiffusionGlobalPermission#modifySession - permission in addition to the appropriate #selectTopic permission. - - @return Instance representing the permission to use a topic selector that selects - a topic path - - @since 6.3 - */ -+(instancetype)selectTopic; - -/** - Permission to evaluate queries that return a non-current view of a time series topic. - - The #readTopic permission is required to evaluate any type of query for a time - series topic. This permission is additionally required for queries that - potentially return a non-current view of all or part of a time series. Such - queries include value range queries that specify an edit range, and all types - of edit range query. - - @return Instance representing the permission to evaluate queries that return a non-current - view of a time series topic. - - @see PTDiffusionTimeSeriesFeature - - @since 6.3 - */ -+(instancetype)queryObsoleteTimeSeriesEvents; - -/** - Permission to submit edits to time series topic events. - - The #updateTopic permission is required to update a time series topic. This - permission is additionally required to submit edits to a time series topic. - - @return Instance representing the permission to submit edits to time series - topic events. - - @see PTDiffusionTimeSeriesFeature - @see #editOwnTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editTimeSeriesEvents; - -/** - Permission to submit edits to time series topic events which have an author - which is the same as the principal of the calling session. - - This permission is a more restrictive alternative to #editTimeSeriesEvents. - - The #updateTopic permission is required to update a time series topic. This - permission is additionally required to submit edits to a time series topic - where the event author is the same as the principal of the calling session. - - @return The instance representing the permission to submit edits to time series - topic events which have an author identical to the principal of the - calling session. - - @see PTDiffusionTimeSeriesFeature - @see #editTimeSeriesEvents - - @since 6.3 - */ -+(instancetype)editOwnTimeSeriesEvents; - -/** - Permission to acquire a session lock. - - @return The instance representing the permission to acquire a session lock. - - @see PTDiffusionSessionLock - - @since 6.3 - */ -+(instancetype)acquireLock; - -/** - Permission that is unsupported by the session. - - @return The instance representing an unsupported permission by the session. - - @since 6.3 - */ -+(instancetype)unknownTopicPermission; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h deleted file mode 100644 index 90779f5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h +++ /dev/null @@ -1,41 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Reports the number of topics removed by a call to - {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: - removeTopicsWithTopicSelectorExpression} - - @since 6.6 - */ -@interface PTDiffusionTopicRemovalResult : NSObject - - -+(instancetype)new NS_UNAVAILABLE; - - --(instancetype)init NS_UNAVAILABLE; - -/** - The integer returned represents the number of topics removed by the - operation. This does not include any derived topics created by a - topic view which were removed as a side effect of this action. - */ -@property (nonatomic, readonly) NSUInteger removedCount; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h deleted file mode 100644 index 5e1c546..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h +++ /dev/null @@ -1,118 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A topic selector identifies one or more topics. - - Topic selector objects are only used by the local client library and are immutable. - - For more information on topic selector evaluation see the - @ref md_topic_selectors "Topic Selectors" guide. - - @see PTDiffusionMessagingFeature - @see PTDiffusionTopicsFeature - - @since 5.6 - */ -@interface PTDiffusionTopicSelector : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Return a topic selector object initialized with the given expression. - - @param expression The expression to be used for evalutating topic paths. - - @return Topic selector instance initialised with the given expression. - - @since 5.6 - */ -+(instancetype)topicSelectorWithExpression:(NSString *)expression; - -/** - The expression association with the receiver. - - @since 5.6 - */ -@property(nonatomic, readonly) NSString* expression; - -/** - The topic path prefix from this selector pattern. - - Returns the largest fixed topic path that begins the selector expression. - For path selectors, this is the entire path. For split pattern or full pattern - selectors, this is a topic path up to, but not including, the first part of the - path that contains a regular expression. - - For selector sets, this method will return the largest prefix that is common to - all included selectors. - - If there is no common prefix, an empty string will be returned. - - @since 6.1 - */ -@property(nonatomic, readonly) NSString* pathPrefix; - -/** - Evaluate this receiver against a topic path. - - @param topicPath The topic path to evaluate against. - May be `nil` or an empty string, in which case this method returns `NO`. - - @return `YES` if the receiver selects the topicPath. - - @since 5.6 - */ --(BOOL)selectsTopicPath:(nullable NSString *)topicPath; - -/** - Compares the receiver to the given topic selector. - - @param topicSelector The topic selector object with which to compare the receiver. - - @return `YES` if the topic selector is equal to the receiver, otherwise `NO`. - - @since 5.6 - */ --(BOOL)isEqualToTopicSelector:(nullable PTDiffusionTopicSelector *)topicSelector; - -/** - Create a selector that matches if any of the provided selectors match. - - @param selectors The selectors - - @return A selector which matches if any of selectors do. - - @since 5.9 - */ -+(instancetype)topicSelectorWithAnyOf:(NSArray*)selectors; - -/** - A convenience wrapper around `topicSelectorWithAnyOf:`. - - @param expressions The selector expressions. - - @return A selector which matches if any of `expressions` do - - @since 5.9 - */ -+(instancetype)topicSelectorWithAnyExpression:(NSArray*)expressions; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h deleted file mode 100644 index a2ee381..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h +++ /dev/null @@ -1,984 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Topic specifications provide the information required to create a topic. - - Topics can be created from a topic specification using - `[PTDiffusionTopicControlFeature addTopicWithPath:specification:completionHandler:]`. - - Topic specifications allow an application to introspect the type and - capabilities of a topic. Topic specifications are provided to - value streams and topic notification listeners. - - A topic specification has a topic type and a map of - property settings which define the behavior of the topic. A default topic - specification for a topic type can be created using - `[PTDiffusionTopicSpecification initWithType:]`. Topic specifications with - different properties can be derived from a default instance using the - `[PTdiffusionTopicSpecification initWithType:properties:]` builder method. - - ###Topic Properties - - Depending on the topic type, some properties must be included in the - specification when creating a topic and some properties have no effect. The - required and optional properties for each the topic type are set out in the - following table. Properties unsupported by the topic type are ignored. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Default when optionalString
- JSON
- Binary
-
Double
- Int64
RecordV2TimeSeriesRouting
COMPRESSIONlowOptional—OptionalOptionalOptional
CONFLATION`conflate`OptionalOptionalOptionalOptional †Optional
DONT_RETAIN_VALUE`false`OptionalOptionalOptional—— ‡
OWNEROptionalOptionalOptionalOptionalOptional
PERSISTENT`true`OptionalOptionalOptionalOptionalOptional
PRIORITY`default`OptionalOptionalOptionalOptionalOptional
PUBLISH_VALUES_ONLY`false`Optional—OptionalOptional— ‡
REMOVALOptionalOptionalOptionalOptionalOptional
SCHEMA——Optional——
TIDY_ON_UNSUBSCRIBE`false`OptionalOptionalOptionalOptionalOptional
TIME_SERIES_EVENT_VALUE_TYPE———Required—
TIME_SERIES_RETAINED_RANGE`limit 10`———Optional—
TIME_SERIES_SUBSCRIPTION_RANGEas documented———Optional—
VALIDATE_VALUES`false`OptionalOptionalOptionalOptional— ‡ -
- -
-
† -
`TIME_SERIES` topics have restricted values for the - `CONFLATION` property. They are only allowed to have the values - `off` or `unsubscribe`. -
‡ -
`ROUTING` topics (deprecated) are references to other topics, and have no value - of their own. Instead, they reflect the value of the appropriate source - topic. Observed behavior depends on the values of the - `DONT_RETAIN_VALUE`, `PUBLISH_VALUES_ONLY`, and - `VALIDATE_VALUES` properties that are set on the source topic. -
- - @since 5.9 - */ -@interface PTDiffusionTopicSpecification : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Initializer for the topic specification object with a given topic type and - an empty properties dictionary. - - @param type the topic type - - @return a topic specification object initialized with the given topic type and - an empty properties dictionary. - - @since 6.0 - */ --(instancetype)initWithType:(PTDiffusionTopicType)type; - -/** - Initializer for the topic specification object with a give topic type and - properties dictionary. - - @param type the topic type - - @param properties the topic properties dictionary - - @return topic specification object initialized with the given topic type and - properties dictionary. - - @exception NSInvalidArgumentException If properties is `nil`. - - @since 6.0 - */ --(instancetype)initWithType:(PTDiffusionTopicType)type - properties:(NSDictionary *)properties NS_DESIGNATED_INITIALIZER; - -/** - The type of topic. - - @since 5.9 - */ -@property(nonatomic, readonly) PTDiffusionTopicType type; - -/** - The topic properties. May be empty. - - @since 5.9 - */ -@property(nonatomic, readonly) NSDictionary* properties; - -/** - Compares the receiver to the given topic specification. - - @param topicSpecification The topic specification object with which to compare the receiver. - - @return `YES` if the topic specification is equal to the receiver, otherwise `NO`. - - @since 5.9 - */ --(BOOL)isEqualToTopicSpecification:(nullable PTDiffusionTopicSpecification *)topicSpecification; - -/** - Key of boolean topic property indicating whether a topic should publish only - values. - - By default, a topic that supports delta streams will publish the - difference between two values (a delta) when doing so is more efficient - than publishing the complete new value. Subscribing sessions can use a - value stream to automatically apply the delta to a - local copy of the topic value to calculate the new value. - - Setting this property to `true` disables this behavior so that deltas are never - published. Doing so is usually not recommended because it will result in more - data being transmitted, less efficient use of network resources, and increased - transmission latency. On the other hand, calculating deltas can require - significant CPU from the server or, if update streams are used, from the - updating client. The CPU cost will be higher if there are many differences - between successive values, in which case delta streams confer fewer benefits. - If successive values are unrelated to each other, consider setting this - property to `true`. Also consider setting this property to `true` if the - network capacity is high and the bandwidth savings of deltas are not required. - - @return string representing the key of boolean topic property indicating whether - a topic should publish only values. - - @since 5.9 - @see #dontRetainValuePropertyKey - */ -+(NSString *)publishValuesOnlyPropertyKey; - -/** - Key of boolean topic property indicating whether a topic should validate - inbound values. - - By default, the server does not validate received values before sending them on - to clients. Invalid or corrupt values will be stored in the topic and passed on - to clients. If this property is set to `true`, the server will perform - additional validation on values to check that it is a valid instance of the - data type, and if it is not then it will return an error to the updater and not - update the topic. - - If this value is not set (or set to something other than `true`), no server - validation of inbound values is performed. This is the recommended setting as - there is a performance overhead to validation and a client using a value - updater could not send invalid values anyway. - - @return string representing the key of boolean topic property indicating whether - a topic should validate inbound values. - - @since 5.9 - */ -+(NSString *)validateValuesPropertyKey; - -/** - Key of boolean topic property that sets the 'tidy on unsubscribe' option for a - topic. - - By default, if a session unsubscribes from a topic, it will receive any updates - for that topic that were previously queued but not sent. - - If this property is set to `true`, when a client session unsubscribes from the - topic, any updates for the topic that are still queued for the session are - removed. There is a performance overhead to using this option as the client - queue must be scanned to find topic updates to remove, however it may prove - useful for preventing unwanted data being sent to client sessions. - - @return string representing the key of boolean topic property that sets the - 'tidy on unsubscribe' option for a topic. - - @since 6.0 - */ -+(NSString *)tidyOnSubscribePropertyKey; - -/** - Key of the string topic property that specifies the event data type for a time - series topic. - - The value is the type name of a data type. - - @return string representing the key of the string topic property that specifies - the event data type for a time series topic. - - @see PTDiffusionDataType - - @since 6.0 - */ -+(NSString *)timeSeriesEventValueTypePropertyKey; - -/** - Key of the string topic property that specifies the range of events retained by - a time series topic, as a time series range expression. - - When a new event is added to the time series, older events that fall outside of - the range are discarded. - - If this property is not specified, a time series topic will retain the ten most - recent events. - - The value of this property is a time series range expression string composed of - one or more constraint clauses. Constraints are combined to provide a range of - events from the end of the time series. - -
-
limit constraint
-
A limit constraint specifies the maximum number of events from the - end of the time series.
-
last clause
-
A last constraint specifies the maximum duration of events from the - end of the time series. The duration is expressed as an integer followed - by one of the following time units: -
    -
  • `MS` – milliseconds
  • -
  • `S` – seconds;
  • -
  • `H` – hours.
  • -
-
-
- - If a range expression contains multiple constraints, the constraint that - selects the smallest range is used. - - - - - - - - - - - - - - - - - - -
Property valueMeaning
`limit 5`The five most recent events
`last 10s`All events that are no more than ten seconds older than the latest - event
`last 10s limit 5`The five most recent events that are no more than ten seconds older - than the latest event
- - Range expressions are not case sensitive: `limit 5 last 10s` is equivalent to - `LIMIT 5 LAST 10S`. - - @return string representing the key of the string topic property that specifies - the range of events retained by a time series topic, as a time series - range expression. - - @since 6.0 - */ -+(NSString *)timeSeriesRetainedRangePropertyKey; - -/** - Key of the string topic property that specifies the range of time series topic - events to send to new subscribers, as a time series range expression. - - This property value is a time series range expression, following the format - used for #timeSeriesEventValueTypePropertyKey. - - If this property is not specified, new subscribers will be sent the latest - event if delta streams are enabled and no events if delta streams are disabled. - - @return string representing the key of the string topic property that specifies - the range of time series topic events to send to new subscribers, as a - time series range expression. - - @since 6.0 - */ -+(NSString *)timeSeriesSubscriptionRangePropertyKey; - -/** - Key of the string topic property that specifies a schema which constrains topic - values. - - This property is only used by Diffusion recordV2 topics. - The property value can be generated using the - PTDiffusionRecordV2Schema#JSONData property of a schema created using a - PTDiffusionRecordV2SchemaBuilder. - - @return string representing the key of the string topic property that specifies - a schema which constrains topic values. - - @since 6.0 - */ -+(NSString *)schemaPropertyKey; - -/** - Key of boolean topic property that specifies a topic should not retain - its last value. - - By default, a topic (other than a `ROUTING`) will retain its - latest value. The latest value will be sent to new subscribers. Setting - this property to `true` disables this behavior. New subscribers - will not be sent an initial value. No value will be returned for fetch - operations that select the topic. This is useful for data streams where - the values are only transiently valid. - - Setting this property to `true` also disables delta streams, regardless of the - #publishValuesOnlyPropertyKey value. If subsequent values are likely to be - related, delta streams usually provide performance benefits (see - #publishValuesOnlyPropertyKey). Consider leaving this property set to `false` - to benefit from delta streams, even if there is no other requirement to retain - the last value. - - Bearing in mind the performance trade-offs of disabling delta streams, there - are two reasons to consider setting this property to `true`. First, it stops - the server and each subscribed client from keeping a copy of the value, - reducing their memory requirements. Second, when a topic has a high update rate - and is replicated across a cluster, it can significantly improve throughput - because the values need not be persisted to the cluster. - - Time series topics ignore this property and always retain the latest value. - - @return string representing the key of boolean topic property that specifies - a topic should not retain its last value. - - @since 6.0 - */ -+(NSString *)dontRetainValuePropertyKey; - -/** - Key of the topic property that can be used to prevent a topic from being - persisted when the server is configured to enable persistence. - - By default, a topic will be persisted if persistence is enabled at the server - and the topic type supports persistence. - - Setting to `false` will prevent the topic from being persisted. - - @return string representing the key of the topic property that can be used to - prevent a topic from being persisted when the server is configured to - enable persistence. - - @since 6.1 - */ -+(NSString *)persistentPropertyKey; - -/** - Key of the topic property that specifies a removal policy for automatic - removal of the topic (and/or other topics). - - This property is specified as an expression which defines one or more - conditions that are to be satisfied before automatic removal occurs. - - The expression takes the form: - - when [remove ""] - - At least one *condition* must be supplied. If more than one is supplied, they - must be separated by logical operators (`and` or `or`). The natural evaluation - order of the operators may be changed by surrounding with parentheses (e.g. - (*condition* `and` *condition*)). - - The `remove` clause is optional. It provides a - @ref md_topic_selectors "topic selector" expression to be evaluated by the - server, representing the topics to be removed. If a `remove` clause is - specified, the topic with the removal policy will only be removed if its path - matches the selector expression. The selector must be surrounded by either - double or single quotes. - - When many topics have the same removal policy, it is better to - set the `REMOVAL` property for one of them, using a `remove` - clause that selects all of the topics. This is more efficient because it - allows the server to avoid evaluating the same condition many times. - - The permissions that are applied at the time of removal are those defined by - the roles of the principal that created the topic at the time of creation. The - roles of that principal may therefore change before the removal with no effect, - but if the permissions given to the roles change it may have an effect upon the - final removal. - - Only one occurrence of each of the following condition types may be included - within the expression: - - - - - - - - - - - - - - - - - - - - - - -
Condition TypeFormatUsage
time aftertime after absoluteTimeRemoval should occur after a specified absolute time. Absolute time may be - specified as a number of milliseconds since the epoch (00:00:00 on 1 January - 1970) **or** as a quoted date and time formatted in - RFC_1123 - date time format. Either single or double quotes may be used.
subscriptions less than[local] subscriptions < n for forPeriod [after afterPeriod]Removal should occur when the topic has had less than the specified number - (*n*) of subscriptions for a given period (*forPeriod*) of time. Optionally, an - initial period (*afterPeriod*) may be specified by which to delay the initial - checking of this condition. See below for period formats. -

The optional local keyword restricts evaluation to only count - subscriptions from sessions belonging to the local server or cluster, - ignoring subscriptions from sessions belonging to downstream remote servers that - host fanout replicas of the topic.

no updates forno updates for forPeriod [after afterPeriod]Removal should occur when the topic has had no updates for a given period - (*forPeriod*) of time. Optionally, an initial period (*afterPeriod*) may be - specified by which to delay the initial checking of this condition. See below - for period formats.
- - Multiple occurrences of the following condition types may be included - within the expression: - - - - - - - - - - - - - - - - - -
Condition TypeFormatUsage
no session hasno [local] session has "criteria" [for forPeriod] [after afterPeriod]Removal should occur when no sessions satisfy certain *criteria*. - Optionally, the criteria can be required to be satisfied for a period of time - (*forPeriod*). Optionally, an initial period (*afterPeriod*) can be specified - to delay the initial check of the criteria. Session selection criteria are - specified as defined in @ref md_session_filters "session filters" and must be - surrounded by single or double quotes. See below for period formats. -

The optional local keyword restricts evaluation to sessions - belonging to the local server or cluster, ignoring sessions belonging to - downstream remote servers that host fanout replicas of the topic.

this session closesThis is a shorthand form of `no local session has` that may be used to - indicate that the topic is to be removed when the session that created it - closes.
- - Time periods are specified as a number followed (with no intermediate space) by - a single letter representing the time unit. The time unit may be `s` (seconds), - `m` (minutes), `h` (hours) or `d` (days). For example, 10 minutes would be - specified as `10m`. - - If quotes or backslashes (`\`) are required within quoted values such as - selectors or session criteria then they may be escaped by preceding with `\`. - The convenience method `PTDiffusionEscape` is provided to escape such - characters in a value. - - The expression is validated only by the server and therefore if an invalid - expression is specified it will be reported asynchronously as an error. - - ### Examples - - when time after 1518780068112 - - The topic will be removed when the date and time indicated by the specified - number of milliseconds since the epoch has passed. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" - - The topic will be removed when the specified date and time has passed. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" remove "*alpha/beta//" - - The topic alpha/beta and all topics subordinate to it will be removed when the - specified date and time has passed. - - when subscriptions < 1 for 20m - - The topic will be removed when it has had no subscriptions for a continuous - period of 20 minutes. - - when subscriptions < 2 for 20m after 1h - - The topic will be removed when it has had less than 2 subscriptions for a - continuous period of 20 minutes after one hour has passed since its creation. - - when no updates for 3h - - The topic will be removed when it has had no updates for a continuous period of - 3 hours. - - when no updates for 15m after 1d - - The topic will be removed when it has had no updates for a continuous period of - 15 minutes after one day has passed since its creation. - - when this session closes - - The topic will be removed when the session that created it is closed. - - when no session has '$Principal is "Alice"' - - The topic will be removed when there is no session with the principal 'Alice'. - - when no session has '$Principal is "Alice"' for 10m - - The topic will be removed when there have been no sessions with the principal - 'Alice' for a continuous period of 10 minutes. - - when no session has 'Department is "Accounts"' for 30m after 2h - - The topic will be removed when there have been no sessions from the Accounts - department for a continuous period of 30 minutes after 2 hours have passed - since its creation. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 1 for 30m - - The topic will be removed when the specified date and time has passed and the - topic has had no subscriptions for a continuous period of 30 minutes after that - time. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 2 for 10m after 1h - - The topic will be removed when the specified date and time has passed and the - topic has had less than 2 subscriptions for a continuous period of 10 minutes - after that time plus one hour. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" or subscriptions < 2 for 10m after 1h - - The topic will be removed when the specified date and time has passed or the - topic has had less than 2 subscriptions for a continuous period of 10 minutes - after one hour from its creation. - - when time after "Tue, 3 Jun 2018 11:05:30 GMT" and (subscriptions < 2 for 10m after 1h or no updates for 20m) - - The topic will be removed when the specified date and time has passed and - either the topic has had less than 2 subscriptions for a continuous period of - 10 minutes after that time plus one hour or it has had no updates for a - continuous period of 20 minutes. Note that the parentheses are significant here - as without them the topic would be removed if it had had no updates for 20 - minutes regardless of the time and subscriptions clause. - - ### Notes and restrictions on use - - The `after` time periods refer to the period since the topic was created or - restored from persistence store after a server is restarted. They are designed - as a 'grace' period after the topic comes into existence before the related - condition starts to be evaluated. When not specified the conditions start to be - evaluated as soon as the topic is created or restored. - - The server will evaluate conditions on a periodic basis (every few seconds) so - the exact removal time will not be precise for low periodic granularity. - - The meaning of the `for` period in a `no session has` condition is subtly - different from its use in other conditions. It does not guarantee that there - has been no session satisfying the condition at some point between evaluations, - only that when evaluated the given period of time has passed since it was last - evaluated and found to have no matching sessions. - - Subscriptions is the number of subscriptions to a topic, including those that - occur through routing topics. When monitoring across a cluster the - `subscriptions less than` condition is first checked on the server that owns - the topic and if satisfied there then each cluster member is queried to check - if the condition has also been satisfied there. The topic will only be removed - if the total number of subscriptions across the cluster is less than that - specified in the condition. - - Automatic topic removal is supported for a topic that is replicated - across the local cluster, and for a topic with with fanout replicas on - downstream remote servers. A `subscriptions less than` condition will be evaluated - against the total number of subscriptions across the cluster and on all - fanout replicas on downstream remote servers. A `no session has` - condition will consider all sessions hosted across the cluster and all - sessions hosted by downstream remote servers that have a fanout replica - of the topic. The `local` keyword can be used to restrict evaluation to - the local cluster, ignoring fanout replicas. - - @return string representing the key of the topic property that specifies a removal policy for automatic - removal of the topic (and/or other topics). - - @since 6.1 - */ -+(NSString *)removalPropertyKey; - -/** - Key of the topic property that specifies the conflation policy of the - topic. The policy specifies how the server manages queued topic updates. - Conflation is applied individually to each session queue. - - Conflation is the process of merging or discarding topic updates queued - for a session to reduce the server memory footprint and network data. The - server will conflate sessions that have a large number of queued messages - to meet configured queue size targets. The sessions with the largest - queues are typically slow consumers or have been disconnected – both will - benefit from conflation. This property allows conflation behavior to be - tuned on a topic-by-topic basis. - - The supported policies are: -
    -
  • `off` -
  • `conflate` -
  • `unsubscribe` -
  • `always` -
- - The default policy used when the property is not specified and the - topic type is not time series is `conflate`. The default policy - used when the property is not specified and the topic type is time - series is `off`. - - The policy `off` disables conflation for the topic. This policy - disables all conflation for the topic, so topic updates will never be - merged or discarded. - - The policy `conflate` automatically conflates topic updates when - back pressure is detected by the server. - - The policy `unsubscribe` automatically unsubscribes the topic when - back pressure is detected by the server. The unsubscription is not - persisted to the cluster. If a session fails over to a different server - it will be resubscribed to the topic. - - The policy `always` automatically conflates topic updates as they - are queued for the session. This is an eager policy that ensures only the - latest update is queued for the topic, minimising the server memory and - network bandwidth used by the session. - - The `conflate` and `unsubscribe` policies are applied when - the server detects back pressure for a session. The server configuration - places limits on the data queued for each session. If these limits are - breached, the server will conflate the session queue to attempt to reduce - its size. If the session queue still exceeds the limits after conflation, - the session will be terminated. - - Conflation can be disabled on a session-by-session basis. If conflation is disabled for a - session the policy will not be applied to topic updates queued for the - session but will be for other sessions that have conflation enabled. - - The policies `conflate` and `always` are not supported for - time series topics as they would cause missing events. Attempts to enable - these policies with time series topics will cause the creation of the - topic to fail, reporting that the specification is invalid. - - @return string representing the key of the topic property that describes - the conflation policy of the topic. - - @since 6.1 - */ -+(NSString *)conflationPropertyKey; - -/** - Key of the topic property that allows the creator of a topic to extend - `PTDiffusionPathPermission#readTopic`, `PTDiffusionPathPermission#modifyTopic` - and `PTDiffusionPathPermission#updateTopic` permissions to a specific - principal, in addition to the permissions granted by the authorisation rules in - the security store. - - A session that has authenticated using the principal can update and remove the - topic, so the principal can be considered the topic owner. To fetch or - subscribe to the topic, the principal must also be granted the `SELECT_TOPIC` - permission by the security store rules. - - This may be used in the following cases: - - 1. A session creates a topic and makes its own principal the owner. - 2. A session creates a topic and makes another principal the owner. - - The format of the property value is: - - $Principal is "" - - where *name* is the name of the principal. Single quotes may be used instead of - double quotes and special characters must be escaped. The convenience method - `PTDiffusionEscape` is provided to escape such characters in a value. - - The purpose of this property is to allow a client to create topics on behalf of - other users. This can be used in conjunction with #removalPropertyKey so that - such topics are removed when there are no longer any sessions for the named - principal. - - For example: - - PTDiffusionTopicSpecification *const specification = - [[PTDiffusionTopicSpecification alloc] initWithType:topicType - properties:@ { - [PTDiffusionTopicSpecification ownerPropertyKey] : - @"$Principal is 'myPrincipal'", - [PTDiffusionTopicSpecification removalPropertyKey] : - @"when no session has '$Principal is \"myPrincipal\"' for 5s" - }]; - - @return string representing the key of the topic property that allows to - extend permissions to a specific principal - - @since 6.1 - */ -+(NSString *)ownerPropertyKey; - -/** - Key of the topic property that allows the compression policy to be set - on a per-topic basis. - - Compression reduces the bandwidth required to broadcast topic updates to - subscribed sessions, at the cost of increased server CPU. - - Changes to a topic's value are published to each subscribed session as a - sequence of topic messages. A topic message can carry the latest value or - the difference between the latest value and the previous value (a delta). - The compression policy determines if and how published topic messages - are compressed. Topic messages are not exposed through the client API; - the client library handles decompression and decodes deltas - automatically, passing reconstructed values to the application. - - The compression policy for a topic is specified by setting this property - to one of several values: - - - `off` - - `low` - - `medium` - - `high` - - The policies are listed in the order of increasing compression and - increasing CPU cost. `off` disables compression completely for the - topic and requires no additional CPU; `high` compresses the topic - messages to the smallest number of bytes, but has the highest CPU cost. - Generally some compression is beneficial, so the default value for this - property is `low`. - - Prior to version 6.4, only two values were allowed: `true` - (equivalent to `medium`, and the previous default policy) and - `false` (equivalent to `off`). These values are still - supported. - - This property is only one factor that determines whether a topic message - will be compressed. Other factors include: - - - Compression must be enabled in the server configuration. - - - The client library must support the server's compression - scheme. In this release, the server supports zlib - compression, and also allows compression to be disabled on a - per-connector basis. From 6.4, all client libraries are - capable of zlib compression. A JavaScript client may or may - not support zlib compression, depending on whether the zlib - library can be loaded. The zlib library is packaged - separately to reduce the download size of the core library. - - @return string representing the key of of the topic property that allows - the compression policy to be set on a per-topic basis. - - @since 6.2 - */ -+(NSString *)compressionPropertyKey; - -/** - Key of the topic property that specifies the topic delivery priority. - - The supported delivery priorities are: - - **low** - - **default** - - **high** - - The delivery priority affects the order of topic updates sent to a - subscribed client session. When there are multiple topic updates for - topics with different priorities in a session's outbound queue, updates - for "high" priority topics will be delivered first, followed by - updates for "default" priority topics, followed by updates for - "low" priority topics. Topic subscription and unsubscription - notifications are also delivered according to the topic delivery - priority. - - Using different delivery priorities is most beneficial when there is a - large backlog of queued updates to deliver to a client session. On - lightly loaded systems, updates typically remain in the outbound queue - for a few milliseconds and so there is a lower chance of topic updates - being reordered based on their priority. The backlog will be larger if - the topic update rate is higher; the server or the client are more - heavily loaded; the client session becomes temporarily disconnected; or - if there is poor network connectivity between the server and the client. - - Messages from the server to the client that are not topic updates, for - example ping requests and responses, are queued with the - "default" delivery priority. - - @return string representing the key of the topic property that specifies - the topic delivery priority. - - @since 6.4 - */ -+(NSString *)priorityPropertyKey; - -/** - Constant string representing the value to be used for boolean properties to - specify `true`. - - @return string representing the boolean value of `true`. - - @since 5.9 - */ -+(NSString *)truePropertyValue; - -/** - Constant string representing the value to be used for boolean properties to - specify `false`. - - @return string representing the boolean value of `false`. - - @since 6.1 - */ -+(NSString *)falsePropertyValue; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h deleted file mode 100644 index ade6b7f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h +++ /dev/null @@ -1,37 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A reference to a handler registered for a particular topic path. - - A topic tree registration is provided once a handler with a server-side - presence has been registered. - - @since 5.7 - */ -@interface PTDiffusionTopicTreeRegistration : PTDiffusionRegistration - -/** - The path registered. - - @since 6.0 - */ -@property(nonatomic, readonly) NSString* path; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h deleted file mode 100644 index a7a2d47..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h +++ /dev/null @@ -1,54 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTopicTreeRegistration; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Common protocol for delegates that establish a server side control presence for the - client session at a particular branch of the topic tree. - - @since 5.7 - */ -@protocol PTDiffusionTopicTreeRegistrationDelegate - -/** - Called if the handler is closed. - - No further calls will be made to this handler. - - @param registration The topic tree registration for which this delegate applies. - - @since 5.7 - */ --(void)diffusionTopicTreeRegistrationDidClose:(PTDiffusionTopicTreeRegistration *)registration; - -/** - Called in the event of a contextual error relating to this handler. - - No further calls will be made to this handler. - - @param registration The topic tree registration for which this delegate applies. - - @param error The failure reason. - - @since 5.7 - */ --(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration - didFailWithError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h deleted file mode 100644 index 3573b01..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h +++ /dev/null @@ -1,234 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -/** - @file PTDiffusionTopicType.h - - The topic type determines the type of the data values a topic publishes to - subscribers. - - ### Source Topics - - Most topics are source topics. The characteristics of each type of source - topic are summarized in the following table. - - | Topic type | State | Data type | - | -------------------------------- | ----------------------------- | ------------------------------------------------- | - | #PTDiffusionTopicType_String | Single scalar value. | String. | - | #PTDiffusionTopicType_Int64 | Single scalar value. | 64-bit integer. | - | #PTDiffusionTopicType_Double | Single scalar value. | Double precision floating point number. | - | #PTDiffusionTopicType_Binary | Single scalar value. | Arbitrary binary data. | - | #PTDiffusionTopicType_RecordV2 | Single composite value. | #PTDiffusionRecordV2 – Diffusion-specific data type. A list of records, each composed of field values, with an optional schema. | - | #PTDiffusionTopicType_JSON | Single composite value. | #PTDiffusionJSON, backed by CBOR-format binary. | - | #PTDiffusionTopicType_TimeSeries | Append-only log of events. | #PTDiffusionTimeSeriesEvent containing a value of a \link #PTDiffusionDataTypes well-known data type\endlink. | - - - ###Routing Topics (deprecated) - - A PTDiffusionTopicType_Routing topic can have a different source topic for each - subscription. - - Routing topics republish values from source topics. The data type is - inherited from the source topic. - - Routing topics are deprecated in favor of {@link PTDiffusionSessionTreesFeature Session Trees}. - - @see PTDiffusionTopicSpecification - - @since 5.6 - */ -typedef NS_ENUM(NSUInteger, PTDiffusionTopicType) { - /** - Routing Topic. - - A topic that can reference different source topics for different sessions. - - Each subscription to a routing topic is routed to a source topic. Updates - to the source topic are routed back to the subscriber and appear to come - from the routing topic. - - The result is that a session may subscribe to a topic which is in reality - supported by another topic and the mapping of the routing topic to the - actual topic can be different for each session. - - As an example, you may wish for all sessions to simply subscribe to a - topic called "Prices" but depending upon the client type the actual topic - could differ (Prices/Discount, Prices/Standard etc). - - An instance of this topic may map any number of sessions to any number of - different source topics. - - From the point of view of a session subscribing to such a topic, a - routing topic appears to be a normal topic but it has no state of its own - and cannot be updated. - - The mapping of sessions to source topics is performed by a control client - session using the Subscription Control feature. When a session subscribes - to the routing topic the control client is requested to provide the topic - that the client is to be subscribed to. If there is no control client - available to handle subscriptions at the time a session subscribed, the - session will not be subscribed to the topic. - - Alternatively, the routing can be determined by a user-written Java class - (deployed on the server) which will be invoked to define the mapping of - the topic to another data topic when a session subscribes. - - When a source topic is removed that is mapped to from a routing topic then - any session that were mapped to that source topic will be unsubscribed from - the routing topic. - - @since 5.7 - - @deprecated since 6.7 Routing Topics are deprecated. The more powerful - {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. - */ - PTDiffusionTopicType_Routing __deprecated_enum_msg("Use PTDiffusionSessionTreesFeature instead") = 12, - - /** - Topic that stores and publishes binary values. Based on the - PTDiffusionBinary data type. - - Supports delta-streams. - - @since 5.7 - */ - PTDiffusionTopicType_Binary = 13, - - /** - Topic that stores and publishes JSON (JavaScript Object Notation) values. - Based on the PTDiffusionJSON data type. - - Supports delta-streams. - - @since 5.7 - */ - PTDiffusionTopicType_JSON = 14, - - /** - Topic that stores and publishes IEEE 754 double-precision floating point - numbers. Based on the double data type. - - Supports `nil` values. - - The topic does not support delta-streams — only complete values are - transmitted. - - @since 6.0 - */ - PTDiffusionTopicType_Double = 15, - - /** - Topic that stores and publishes 64-bit integer values. Based on the int64 - data type. - - Supports `nil` values. - - The topic does not support delta-streams — only complete values are - transmitted. - - @since 6.0 - */ - PTDiffusionTopicType_Int64 = 16, - - /** - Topic that stores and publishes string values. Based on the string data - type. - - Supports `nil` values. - - Supports delta-streams. - - @since 6.0 - */ - PTDiffusionTopicType_String = 17, - - /** - A time series is a sequence of events. Each event contains a value and has - server-assigned metadata comprised of a sequence number, timestamp, and - author. - - A time series topic allows sessions to access a time series that is - maintained by the server. A time series topic has an associated event data - type that determines the type of value associated with each event. - - ### Retained range - - The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property - configures the range of historic events retained by a time series topic. - If the property is not specified, a time series topic will retain the ten - most recent events. - - ### Subscription range - - The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property - configures a time series topic to send a range of historic events from the - end of the time series to new subscribers. This is a convenient way to - synchronize new subscribers without requiring the use of a range query. - - By default, new subscribers will be sent the latest event if delta streams - are enabled and no events if delta streams are disabled. - - ### Mandatory properties - - The [PTDiffusionTopicSpecification timeSeriesEventValueType] property must - be provided when creating a time series topic. - - @since 6.0 - */ - PTDiffusionTopicType_TimeSeries = 18, - - /** - Topic that stores and publishes data in the form of records and fields. - - Supports delta-streams. - - @since 6.0 - */ - PTDiffusionTopicType_RecordV2 = 19, - - /** - A topic type that is unsupported by the session. - - @since 6.1 - */ - PTDiffusionTopicType_Unknown = 20, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - Returns a localized string representation of the given topic type. - - @param topicType The topic type for which a description is to be returned. - - @return localized string representation of the given topic type. - - @since 5.7 - */ -NSString* PTDiffusionTopicTypeToString(PTDiffusionTopicType topicType); - -/** - Returns the name of this topic type constant, exactly as declared in its - enum declaration in the Diffusion API for Java. - - @param topicType The topic type for which the name is to be returned. - - @return name of given topic type constant, exactly as declared in its - enum declaration. - - @since 5.9 - */ -NSString* PTDiffusionTopicTypeToName(PTDiffusionTopicType topicType); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h deleted file mode 100644 index 0ed9a4c..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h +++ /dev/null @@ -1,108 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -/** - @file PTDiffusionTopicUnsubscriptionReason.h - - The reason that an unsubscription occurred. - - @since 5.6 - */ -typedef NS_ENUM(NSUInteger, PTDiffusionTopicUnsubscriptionReason) { - /** - Unsubscribed by the subscribing client. - - @since 5.6 - */ - PTDiffusionTopicUnsubscriptionReason_Requested = 0, - - /** - The unsubscription was requested either by another client or by the server. - - @since 5.6 - */ - PTDiffusionTopicUnsubscriptionReason_Control = 1, - - /** - The unsubscription occurred because the topic was removed. - - @since 5.6 - */ - PTDiffusionTopicUnsubscriptionReason_Removal = 2, - - /** - The unsubscription occurred because the session is no longer authorized - to access the topic. - - @since 5.9 - */ - PTDiffusionTopicUnsubscriptionReason_Authorization = 3, - - /** - A reason that is unsupported by the session. - - @since 6.1 - */ - PTDiffusionTopicUnsubscriptionReason_Unknown = 4, - - /** - The server has a significant backlog of messages f`or the session, and - the topic specification has the - {@link PTDiffusionTopicSpecification#conflationPropertyKey - conflation topic property} set to "unsubscribe". The session can - resubscribe to the topic. The unsubscription is not persisted to the - cluster. If the session fails over to a different server it will be - resubscribed to the topic. - */ - PTDiffusionTopicUnsubscriptionReason_BackPressure = 5, - - /** - The unsubscription occurred because branch mapping rules changed. - - @since 6.7 - @see PTDiffusionSessionTrees - */ - PTDiffusionTopicUnsubscriptionReason_BranchMappings = 6, - - /** - The server has re-subscribed this session to the topic. Existing streams - are unsubscribed because the topic type and other attributes may have changed. - - This can happen if a set of servers is configured to use session replication, - and a session connected to one server reconnects ("fails over") to a - different server. - - @since 5.9 - */ - PTDiffusionTopicUnsubscriptionReason_SubscriptionRefresh = 0xfffffff0, - - /** - A fallback stream has been unsubscribed due to the addition of a stream - that selects the topic. - - @since 5.9 - */ - PTDiffusionTopicUnsubscriptionReason_StreamChange = 0xfffffff1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - Returns a string representation of a topic unsubscription reason. - - @since 5.6 - */ -NSString *PTDiffusionTopicUnsubscriptionReasonToString(PTDiffusionTopicUnsubscriptionReason reason); - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h deleted file mode 100644 index 2d6a694..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h +++ /dev/null @@ -1,214 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Topic Update feature provides a client session with the ability to - update topics. - - Topics can be set to new values using stateless set operations or by using an - update stream. Both mechanisms ensure that new values are applied safely to - appropriate topics. - - ### Update streams - - An update stream is created for a specific topic. The type of the topic must - match the type of values passed to the update stream. An update stream can be - used to send any number of updates. It sends a sequence of updates for a - specific topic to the server. If supported by the data type, updates will be - sent to the server as a stream of binary deltas. - - Update streams have additional ways of failing compared to stateless set - operations but when used repeatedly have lower overheads. This is because - update streams maintain a small amount of state that reduces the overhead of - operations but can become invalid for example, if the topic is deleted, or - some other session updates the topic value. - - By default, update streams use a form of optimistic locking. An update stream - can update its topic incrementally as long as nothing else updates the topic. - If the topic is updated independently (for example, by another session, or by - the current session via set or a different update stream), then the next update - performed by the update stream will complete with an 'invalid update stream' - error. - - Applications can chose to use collaborative locking to coordinate exclusive - access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and - use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. - The application is responsible for designing a locking scheme which determines - which lock is required to access a particular topic, and for ensuring that all - parts of the application that update the topic follow this scheme. Lock - constraints and an application locking scheme can also ensure a sequence of set - operations has exclusive access to the topic. - - ### Constraints - - Constraints can be applied to the setting of a value and creation of an update - stream. Constraints describe a condition that must be satisfied for the - operation to succeed. The constraints are evaluated on the server. The - available constraints are: - - - an active session lock - - the absence of a topic - - the current value of the topic being updated - - a part of the current value of the topic being updated - - ### Removing values - - When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or - PTDiffusionTopicType_Double topic is set to `nil`, the topic will be updated to - have no value. If a previous value was present subscribers will receive a - notification that the new value is `nil`. New subscribers will not receive a - value notification. - - ### Adding topics - - When setting a value using either stateless operations or update streams it is - possible to add a topic if one is not present. This is done using the 'and and - set' methods or providing a topic specification when creating the update - stream. If a topic exists these methods will update the existing topic. - - ### Time series topics - - Time series topics have a specific update protocol and are not supported by - this feature. Use PTDiffusionTimeSeriesFeature to update time series topics. - - ### Access control - - To update a topic a session needs `UPDATE_TOPIC` permission for the topic path. - To create a topic a session needs `MODIFY_TOPIC` permission for the topic path. - Requests that combine adding a topic and setting the value, such as those sent - by the 'add and set' methods, require both permissions. - - ### Accessing the feature - - The Topic Update feature for a session can be obtained from the session's - `topicUpdate` property. - - This feature is also extended by PTDiffusionTopicsFeature. This means it is - possible to use the methods described here through that feature. - - @see PTDiffusionSession - - @since 6.3 - */ - -@interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature - -/** - Applies a JSON Patch to a JSON topic. - -

- The `patch` argument should be formatted according to the JSON - Patch standard (RFC 6902). - -

- Patches are a sequence of JSON Patch operations contained in an array. - They are applied as an atomic update to the previous value if the - resulting update is successfully calculated. The following patch will - check the value at a specific key and update if the expected value is - correct: -

- - `[{"op":"test", "path":"/price", "value" : 22}, - {"op":"add", "path":"/price", "value": 23}]` - -

- The available operations are: - -

    -
  • - Add: `{"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ]}` -
  • - Remove: `{"op": "remove", "path": "/a/b/c"}` -
  • - Replace: `{"op": "replace", "path": "/a/b/c", "value": 43}` -
  • - Move: `{"op": "move", "from": "/a/b/c", "path": "/a/b/d"}` -
  • - Copy: `{"op": "copy", "from": "/a/b/c", "path": "/a/b/e"}` -
  • - Test: `{"op": "test", "path": "/a/b/c", "value": "foo"}` -
- -

- The test operation checks that the CBOR representation of the value of a - topic is identical to the value provided in the patch after converting it - to CBOR. If the value is represented differently as CBOR, commonly due to - different key ordering, then the patch will return the index of the - failed operation . e.g the values - `{"foo": "bar", "count": 43}` and - `{"count": 43, "foo": "bar"}` are unequal despite semantic equality - due to the differences in a byte for byte comparison. - - @param jsonPatch the JSON Patch - - @param path the path of the topic to patch - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @see - RFC 6902: JavaScript Object Notation (JSON) Patch - - @since 6.4 - - */ --(void)applyJsonPatch:(NSString *)jsonPatch - toPath:(NSString *)path - completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; - - -/** - - Applies a JSON Patch to a JSON topic. - -

- Takes a constraint that must be satisfied for the update to be - applied. -

- In other respects this method works in the same way as - applyJsonPatch:toPath:completionHandler: - - - @param jsonPatch the JSON Patch - - @param path the path of the topic to patch - - @param constraint the constraint that must be satisfied for the patch to - be applied - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @see - RFC 6902: JavaScript Object Notation (JSON) Patch - - @since 6.4 -*/ --(void)applyJsonPatch:(NSString *)jsonPatch - toPath:(NSString *)path - withConstraint:(PTDiffusionUpdateConstraint *)constraint - completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h deleted file mode 100644 index 3f35cf8..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h +++ /dev/null @@ -1,64 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief Description of a topic view that has been created. - - @see PTDiffusionTopicViewsFeature - - @since 6.3 - */ -@interface PTDiffusionTopicView : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - The name of the topic view. If the name is empty, the operation will fail. - - @since 6.3 - */ -@property(nonatomic, readonly) NSString * name; - -/** - The specification of the topic view. - - @since 6.3 - */ -@property(nonatomic, readonly) NSString * specification; - -/** - The roles used by the topic view when evaluating permissions. - - @since 6.3 - */ -@property(nonatomic, readonly) NSArray * roles; - -/** - Compares the receiver to the given topic view. - - @param topicView The topic view object with which to compare the receiver. - - @return `YES` if it matches the receiver, otherwise `NO`. - - @since 6.3 - */ --(BOOL)isEqualToTopicView:(nullable PTDiffusionTopicView *)topicView; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h deleted file mode 100644 index d07441a..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h +++ /dev/null @@ -1,1469 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2022 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -@class PTDiffusionTopicView; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief This feature allows a client session to manage topic views. - - A topic view maps one part of a server's topic tree to another. It - dynamically creates a set of reference topics from a set of - source topics, based on a declarative topic view - specification. The capabilities of topic views range from simple - mirroring of topics within the topic tree to advanced capabilities including - publication of partial values, expanding a single topic value into many - topics, changing topic values, inserting values from other topics, throttling - the rate of publication, and applying a fixed delay to the publication. - - A topic view can also map topics from another server (in a different - cluster). This capability is referred to as 'remote topic views'. The view - can specify the server that the source topics are hosted on in terms - of a remote server (see {@link PTDiffusionRemoteServersFeature} for details of how to - create and maintain remote servers). - - Each reference topic has a single source topic and has the same topic type as - its source topic. Reference topics are read-only (they cannot be updated), - nor can they be created or removed directly. Otherwise, they behave just like - standard topics. A client session can subscribe to a reference topic, and can - fetch the reference topic's current value if it has one. - - The source topics of a topic view are defined by a topic selector. One or - more reference topics are created for each source topic, according to the - topic view. If a source topic is removed, reference topics that are derived - from it will automatically be removed. If a topic is added that matches the - source topic selector of a topic view, corresponding reference topics will be - created. Removing a topic view will remove all of its reference topics. - - - ## Topic view specifications - - The following is a simple topic view specification that mirrors all topics - below the path `a` to reference topics below the path `b`. - -

- map ?a// to b/
- 
- - A topic view with this specification will map a source topic at the path - `a/x/y/z` to a reference topic at the path `b/x/y/z`. - The specification is simple, so the reference topic will exactly mirror the - source topic. - - A topic view specification comprises three main parts: - -
    -
  • The mapping part which specifies the source topics to map from - and the mappings to target reference topics. -
  • Optional transformations which transform the topic value in some - way. -
  • Optional options which specify other changes that the view may - apply. -
- - Mapping comprises: -
    -
  • The source topic clause identifying the source topics that the - view can apply to. -
  • The optional from clause which may identify a remote server that - hosts the source topics. -
  • The path mapping clause which determines how reference topic - paths are derived from the source topic paths, and when expanding to more - than one reference topic, from where the values are obtained. -
- - Transformations can be: -
    -
  • patch transformation(s) specifying that a JSON patch is applied - to the reference topic value. -
  • process transformations that allow conditional processing and/or - calculations to be applied to the reference topic value. -
  • insert transformation(s) specifying that values from other - topics are inserted into the reference topic value. -
- - Options can be: -
    -
  • The topic property mapping clause determines how reference topic - properties are derived from source topic properties. -
  • The value mapping clause determines how reference topic values - are derived from source topic or expanded values. -
  • The throttle clause constrains the rate at which each reference - topic is updated when its source topic is updated. -
  • The delay by clause causes a change to a view's source topic to - be delayed by a fixed time before it is reflected in reference topics. -
  • The separator clause can define a replacement path separator for - values extracted using the scalar or expand directives. -
  • The type clause can specify that the reference topic that is - created is of a different {@link PTDiffusionTopicType} from the selected source topic. -
- - ### Mapping - #### Source topic clause - - The source topic clause begins with the `map` keyword and is followed - by a topic selector. These topic selectors follow the same parsing rules as - other topic selectors. - - When evaluating a topic view, all topics in the topic tree that match the - source topic selector are considered (excluding - {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing Routing} topics). - However, if a view specification uses some feature that can - only be applied to JSON topics then only JSON topics will be selected. - - Reference topics are valid source topics. In particular, chaining of topic - views is supported; that is, a reference topic created by one topic view can - be the source topic of another topic view. Additionally, a reference topic - can be the source topic of a routing topic subscription. - - - #### From clause - - The `from` clause optionally follows the source topic clause. It begins with - the `from` keyword and is followed by a remote server name. The name - refers to a remote server created using the {@link PTDiffusionRemoteServersFeature} - feature. - - The presence of the clause indicates that the source topics will be selected - from the specified server and not from the local server. - - Further details regarding the processing of remote topic views are given - below. - - - #### Path mapping clause - - The paths of reference topics are derived from the source topic according to - the path mapping clause. The path mapping allows the source topic path and - the value of the source topic to determine the path of the reference topic. - In addition the path mapping can include expand directives which - allow objects and arrays in JSON source topic values to be expanded to - produce many reference topics. - - A path mapping clause begins with the `to` keyword and is followed by a - path mapping template. A path mapping template is a topic path with embedded - directives. Directives are evaluated when creating the topic - reference and substituted into the topic path. Directives are delimited by - angle brackets (`<`, `>`) and consist of the name of the - directive and a list of parameters. The parameter list is comma-separated and - surrounded by parentheses (`(`, `)`). - - The following path mapping directives are supported: - - #### Source path directives - - Source path directives extract a portion of the source path and are - parameterized by the index of the start part of the source path and the - number of parts to include. The number of parts parameter is optional – if it - is missing, the selection extends to the end of the source path. The syntax - is start, number)>, or - start)> when the number of parts parameter - is omitted. - - For example, given the source path `a/b/c/d`, the source path directive - `` is mapped to the reference topic path `b/c`, and - the source path directive `` is mapped to the reference topic - path `c/d`. - - #### Source value ("scalar") directives - - Source value directives are only applied to - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} - source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} - source topics with a JSON event type; if the path - mapping contains a source value directive, topics with other topic types matching - the source topic selector are ignored. Source value directives use the keyword - `scalar` and are parameterized by a single - JSON pointer that extracts - a scalar value from the source (or current) value. A scalar value is a - string, a number, `true`, `false`, or `null`, that is, - anything other than an array or an object. If the JSON pointer does not refer - to a scalar value in the source (or current) value, no reference topic will - be created. This includes cases where the JSON pointer refers to an array or - an object), or when no part of the source value is selected. - - Deriving the reference topic paths from part of the source topic value - effectively creates a secondary index on the value. For source value - directives to work efficiently, the selected scalar values should be - relatively stable. If an update to the source topic changes the selected - scalar value, the corresponding reference topic will be removed and a new - reference topic will be created. - - For example, given a source value of - -
- {
-     "account" : "1234",
-     "balance" : { "amount" : 12.57, "currency" : "USD" }
- }
- 
- - and the source value directive - `currency/`, the - reference topic path will be `currency/USD/account/1234`. - - If the extracted value is a string, it is copied literally to the reference - topic path. A value that contains path separators (`/`) will create a - reference topic path with more levels than the path mapping template. Use the - separator directive to replace path separator with an alternative string. - - An extracted value of `null` will be copied to the reference topic path - as the string `"null"`. - - #### Expand value directives - - Expand value directives are only applied to - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} - source topics; if the path mapping contains an expand value directive, - non-JSON topics matching the source topic selector are ignored. - - Expand value directives use the keyword `expand` and are parameterized - by one or two JSON - pointers. - - The first pointer indicates the element within the value to be expanded, and - if omitted, the value is expanded from the root. Expansion of a source topic - indicates that every direct child of the element pointed to by the expand - pointer will be used to create a new reference topic (or provide input to - later expand or scalar directives). For example `` would - expand every child item in the source value and `` - would expand every child of the `account` value in the source value. - The specified value could be an object, an array or even a scalar value, but - a scalar value would expand to only a single new value. - - The optional second parameter of the expand directive specifies a pointer to - a scalar value within the expanded value which will be used to derive the - path fragment of the reference topic path. If the second pointer is not - specified or no scalar value is found for the pointer, the path fragment is - taken from the key (if the child value is an object) or the index (if the - child value is an array). Scalar child values will expand to a reference - topic but will not add anything to the generated path. For example - `expand(,/name)>` would expand from the root of the source value and - each child value path fragment would be obtained from the scalar value with - the key `name`. - - So if a source topic had a value of - -
- {
- "values": [1, 5, 7]
- }
- 
- - a path mapping of `value` would expand the value to - the following reference topics:- -

- path `value0` with a value of `1`
- path `value1` with a value of `5`
- path `value2` with a value of `7`
-

- Expand directives can be nested (i.e. there can be more than one expand - directive in a path mapping). In this case a second expand directive will use - the value from the previous expand as its source (root) value and not the - value of the source topic. This also applies to scalar directives that follow - an expand directive. -

- If expansion causes more than one mapping to the same topic path, only the - first encountered will be created and updated. -

- Expanding source topic values effectively creates secondary indices on the - value. For expanded value directives to work efficiently, the value selected - for expansion should be relatively stable in terms of the children it - contains. If an update to the source topic changes the children of the - expanded value, then corresponding reference topics will be removed and - created. Updates should generally be limited to changing values within the - expanded values. - - ### Transformations - - Transformations are specified after the mapping and before any options. - Transformations can only be applied to - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} topics. - - Transformations are applied to the value extracted from the source topic in - the order specified. There can be any number of transformations interspersed - with one another and the value from one will be that which is input to the - next. The only restrictions is that all insert transformations must - occur at the end, after any others. - - A transformation is applied to the current value within a view processing - chain, so if a transformation occurs after an expand then it will be applied - to each expanded value. - - #### Process transformations - - Process transformations may be used to apply conditional processing to a - value (optionally determining whether a reference topic is created) and/or - change the value in some way (for example, by applying some calculation to a - field within the value). - - The format of a process transformation is: -

- process {statement}
- 
- - Where the statement can be: -
    -
  • Operations(s).
    - One or more operations separated by ';'. -
  • A conditional statement.
    - Comprising one or more conditions with operations to perform if they are - satisfied. -
- - For example, the following topic view specification could be used to write a - field into the value of the reference topic: - -
- map ?a// to b/ process {set(/Name, 'John')};
- 
- - The following example shows a simple conditional statement which would only - generate reference topics if the value of field /Price was - greater than 50: - -
- map ?a// to b/ process {if '/Price gt 50' continue};
- 
- - And the following shows a more complex statement which would set a field - according to the value of the input field /Price: - -
- map ?a// to b/ process {if '/Price lt 50' set(/Tier, 1) elseif '/Price gt 50' set(/Tier, 2)};
- 
- -
-
- Process operations -
- -
- The following operations are supported: - - - - - - - - - - - - - - - - - - - - - - -
- Operation - - Description -
- set(pointer, value) - - Sets the field indicated by the JSON pointer to an absolute value. - If the field does not exist it will be created. - The value can be an integer (e.g. 123), a String (e.g. 'XYZ'), - or a boolean (e.g. true or false). - - For example: - -
set(/Name, 'John')
- - If a hierarchic pointer is specified, the parent object or array must exist. -
- set(pointer, calc calculation) - - Sets the field indicated by the JSON pointer to a value which is the - result of the specified calculation. If the field does not exist it - will be created. The calculation can include fields within the input value. - The calculation is specified as a quoted string. See below for a detailed - description of calculations. - - For example: - -
set(/DoubleValue, calc '/Value * 2')
- - If a hierarchic pointer is specified, the parent object or array must exist. -
- remove(pointer) - - Removes the JSON item at the specified pointer. - Unlike JSON patch, if the item does not exist the operation does not fail. -
- continue - - This is a special operation that indicates that the topic view evaluation - should continue with the value as it is. This is only for use with conditional - statements as the default behaviour of a conditional statement is not to - proceed if no condition is satisfied. -
- - Operations can be chained by separating them with a ';' as shown in the example below: - -
-         set(/Amount, calc '/Value * /Number'); remove(/Value); remove(/Number)
-         
- - In this case the operations are all performed on the original value, creating - a chain of deltas which are only applied to the original value at the end. If - the 'set' operation fails no reference topic would be generated, however, - processing will continue if the fields specified in the 'remove's are not - present. -
- -
- Process calculations -
- -
- A calculation may be specified as the value of a set operation. A - calculation is a simple arithmetic calculation upon integer fields. If - applied to a non integer field the evaluation will not proceed. Floating - point calculations are not supported. - - Arithmetic operators supported are `+`, `-`, `*` and `/`. - - Examples of calculations are: - -
-         set(/Value, calc '/Value * 2')
-         set(/Result, calc '/Value / 2')
-         set(/Bonus, calc '/Salary + 1000')
-         set(/Bonus, calc '/Salary + 1000 + /Age * 10')
-         
- - Standard operator precedence is applied, so in the last example above we have - `(/Salary + 1000 + (/Age * 10))` not `((/Salary + 1000 + /Age) * 10)`. - Brackets may be used to override this. -
- -
- Process conditional statements -
- -
- A conditional statement is made up of an if clause, optionally - followed by one or more elseif clauses and an optional final else - clause. - - The if clause takes the form: - -
-         if 
-         
- - Where the condition is a quoted string as described in detail below - and the operation(s) is as described previously. If the condition is - satisfied, the operations are applied to the value and the process is complete. - If the condition is not satisfied, processing moves on to any - elseif or else clauses that follow, but if there are none, the - topic view evaluation does not proceed and no reference topic is created. - - An elseif (else if) clause takes the form: - -
-            elseif condition operation(s)
-         
- - If the condition is satisfied, the operations are applied to the value and - the process is complete. If the condition is not satisfied, processing moves - on to any elseif or else clauses that follow, but if there are - none, the topic view evaluation does not proceed and no reference topic is - created. Note that elseif cab be abbreviated to elsf. - - An else clause takes the form: - -
-            else operation(s)
-         
- - And will only be reached if no previous if or elseif conditions - were satisfied. If reached then the operations are applied to the value and - the topic view evaluation proceeds. The continue operation may be used - to proceed with an unchanged value. -
- -
- Process conditions -
- -
- A condition is of the form: - -
-         pointer operator [constant/pointer]
-         
- - Where pointer is a JSON pointer, operator is a relational - operator and constant is a string, integer, or a boolean value. - - For example: - -
-         /Age > 40
-         /Name = 'Bill'
-         /Age > /RetirementAge
-         /Manager eq true
-         
- - Operators allowed are: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperatorVariantDescriptionSupported JSON types
=eqEqualsAll
>gtGreater thanInteger only
<ltLess thanInteger only
!=neNot equalsAll
>=geGreater than or equalInteger only
<=leLess than or equalInteger only
- - Compound conditions are supported by means of boolean operators: - `|` or `or` - `&` or `and` - - For example: - -
-         /Age = 50 ot /Age > 80
-         /Age gt 50 & /Department eq 'Accounts'
-         
- - Normal boolean precedence applies but brackets can be used to control - precedence. For example: - -
-         (/Age > 50 or /Department eq 'Accounts`) and /Band > 3
-         
- - Boolean 'not' is also allowed: - -
-         not (/Age < 65 or Retired eq false)
-         
-
-
- - #### Patch Transformations - - Patch transformations indicate that a JSON patch is to applied to the - value. - - The format of a patch clause is: - -
- patch 'patch string'
- 
- - The patch string should be formatted according to the JSON Patch standard - (see RFC 6902: JavaScript - Object Notation (JSON) Patch). - - Patches are a sequence of JSON Patch operations contained in an array. They - are applied as an atomic update to the previous value if the resulting update - is successfully calculated. The following patch will check the value at a - specific key and update if the expected value is correct: - -
- [{"op": "test", "path": "/price", "value": 22},
-  {"op": "add", "path": "/price", "value": 23}]
- 
- - The available operations are: -
    -
  • Add: {"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } -
  • Remove: {"op": "remove", "path": "/a/b/c" } -
  • Replace: {"op": "replace", "path": "/a/b/c", "value": 43 } -
  • Move: {"op": "move", "from": "/a/b/c", "path": "/a/b/d" } -
  • Copy: {"op": "copy", "from": "/a/b/c", "path": "/a/b/e" } -
  • Test: {"op": "test", "path": "/a/b/c", "value": "foo" } -
- - The test operation checks that the CBOR representation of the value of a - topic is identical to the value provided in the patch after converting it to - CBOR. If the value is represented differently as CBOR, commonly due to - different key ordering, then the patch will return the index of the failed - operation. e.g the values {"foo": "bar", "count": 43} and - {"count": 43, "foo": "bar"} are unequal despite semantic equality - due to the differences in a byte for byte comparison. - - The following patch clause would add the 'price' field and remove the 'name' - field from an input JSON object. - -
- patch '[{"op": "add", "path": "/price", "value": 22},
-         {"op": "remove", "path": "/name"}]'
- 
- - Patches can only be applied to JSON arrays or objects and if they fail to - apply, no resulting reference topic will be created by the view. If an update - patch fails, any previously created reference topic would be removed. - - - #### Insert transformations - - Insert transformations are used to insert a value from another topic into the - current value. - - The name of the topic to insert from can be specified in a similar way to the - path mapping in that constants, path directives, and scalar directives (but - not expand directives) may be used. - - The value from the insertion topic (if found) is inserted into the 'current' - value at a specified key position. The current value may be the source topic - value, the value output from expand directives (in which case the insertion - applies to each value), or the value from a previous transformation. - Insertion topics may be type {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_String String}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 Int64}, - or {@link PTDiffusionTopicType#PTDiffusionTopicType_Double Double}. - - If, when evaluating a topic view, the insertion topic is not found (or the - specified key within it is not found), or it is of an unsupported topic type, - an optional default value may be inserted, but if no default is specified - then no insertion takes place and the value is passed to the derived - reference topic unchanged. - - The values of the insertion topics are only taken at the point when the - source topic is evaluated against the topic view (i.e. when the source topic - is updated). Changes to the value of the insertion topic that occur in the - interim are not applied to the derived reference topics. - - The format of an insert transformation is - -
- insert path [key fromKey] at insertionKey
- [default defaultValue]
- 
- - The path is specified in exactly the same way as for the path mapping - clause, except it may not contain expand directives. path directives - operate on the path of the source topic, whereas scalar directives - operate on the 'current' value as defined previously. - - key is optional and can specify a fromKey which is a JSON - pointer indicating the data within the insertion topic that is to be - inserted. If no key is specified then the whole of the insertion topic value - is inserted. - - at specifies the insertionKey which is a JSON pointer - indicating where to insert the insertion topic value. If a value already - exists at the specified key then it is replaced otherwise it is inserted. - Insertion can only occur if the parent of the key exists in the value and is - of a compatible type. Array pointers may only be used to replace existing - entries or append one greater than the last entry. The special pointer value - /- may be used to append to the end of an existing array. - - default is optional and may be used to specify a string - defaultValue to be inserted if the insertion topic does not exist, it - is of an unsupported topic type, or the specified key within it could not be - found. - - The following insert transformation would cause the whole value of the topic - named AnyTopic to be inserted into the current value at key /T, assuming that - the current value is an object. - -
- insert AnyTopic at /T
- 
- - The following insert transformation would cause the whole value of the topic - named AnyTopic to be inserted into the current value at key /T/MyKey, - assuming that an object with the key T exists in the current value. - -
- insert AnyTopic at /T/MyKey
- 
- - The following insert transformation would cause the whole value of the topic - named AnyTopic to be appended to the array at the key T in the current value. - -
- insert AnyTopic at /T/-
- 
- - The following insert transformation would cause the value at the key name - within the topic named AnyTopic to be appended to the array at the key T in - the current value. - -
- insert AnyTopic key /name at /T/-
- 
- - In the above examples no insertion would take place if the insertion value - was not found, but a default value can be specified to insert into the - current value in this case. - -
- insert AnyTopic at /T/- default "unknown"
- 
- - The path of the topic to insert from can be built from parts of the source - topic path and/or scalar values within the current value. For example: - -
- insert AC// at /T
- 
- - ### Options - - Options are specified after the mapping and any transformations. Any number - of options may be specified but any particular option may only be specified - once. - - #### Topic property mapping - - The {@link PTDiffusionTopicSpecification topic specification} of a reference topic is - derived from the topic specification of the source topics. A reference topic - has the same topic type as its source topic. - - The topic properties of a reference topic are derived from the source topic. - Some topic properties can be tuned using the topic property mapping option. - The following table describes the behavior for each topic property. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Source topic propertyReference topic specification defaultCan be set by topic property mapping?Notes
`compressionPropertyKey`Copied from source topic specificationYes
`conflationPropertyKey`Copied from source topic specificationYes
`dontRetainValuePropertyKey`Copied from source topic specificationYes
`ownerPropertyKey`Not setNo
`persistentPropertyKey`Not setNoReference topics are not persisted. Topic views are persisted, so a - reference topic will be recreated on server restart if its source is - persistent.
`priorityPropertyKey`Copied from source topic specificationYes
`publishValuesOnlyPropertyKey`Copied from source topic specificationYes
`removalPropertyKey`Not setNoReference topics cannot be removed directly.
`schemaPropertyKey`Copied from source topic specificationNoA recordV2 reference topic has the same - schema as its source topic.
`tidyOnSubscribePropertyKey`Copied from source topic specificationYes
`timeSeriesEventValueTypePropertyKey`Copied from source topic specificationNoA time series reference topic has the same - value type as its source topic.
`timeSeriesRetainedRangePropertyKey`Copied from source topic specificationYes, with restrictionsA topic property mapping cannot increase the time series retained range - by overriding the `TIME_SERIES_RETAINED_RANGE` property. The retained - range of a reference time series topic will be constrained to be no greater - than that of its source topic.
`timeSeriesSubscriptionRangePropertyKey`Copied from source topic specificationYes
`validateValuesPropertyKey`Not setNoA reference topic reflects updates to its source topic. It cannot reject - updates.
- - A topic property option begins with the keywords `with properties` and - consists of a comma-separated list of topic property keys and values, each - separated by a colon. For example, the following topic view specification - maps all topics below the path `a` to reference topics below the - path `b`, and disables both conflation and compression for the - reference topics. - -
- map ?a// to b/ with properties CONFLATION:off, COMPRESSION:false
- 
- - #### Topic value option - - By default, a reference topic's value is a copy of the source topic value, or - part of the source value produced by an expand path mapping directive and/or - modified by transformations. For {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} source topics with a JSON event - type, the value option can be applied to extract part of the resulting value - (the latest value in the case of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries time series} topics). - - A topic value option begins with the keyword `as` and is followed by a - value directive. A value directive is delimited by angle brackets (`<`, - `>`), and consists of the `value` keywords and a single JSON - pointer parameter. The JSON pointer selects the part of the current value to - copy. - - For example, given a current value of: - -
- {
-     "account" : "1234",
-     "balance" : { "amount" : 12.57, "currency" : "USD" }
- }
- 
- - and the value option `as `, the reference topic value - will be: - -
- {
-     "amount" : 12.57,
-     "currency" : "USD"
- }
- 
- - Value mappings that follow expand directives and/or transformations apply to - the current derived value and not the source topic value. - - Topic value mappings only alter the reference topic value; only the path - mapping determines whether a reference topic should exist. If the topic value - mapping's JSON pointer fails to select anything from the source topic value, - the reference topic will have the JSON value `null`. - - Topic value mappings are often used with path value mappings to avoid repeating - information in the path and the value. For example: - -
- map ?accounts// to balances/ as 
- 
- - #### Throttle options - - The throttle option can be used to constrain the rate at which a reference - topic is updated when its source topic is updated. The primary application of - a throttle option is to restrict the number of updates sent to reference - topic subscribers, reducing network utilization or the processing each - subscriber must do. Throttling also restricts the rate at which client - sessions can observe changes to reference topic values using the fetch API. - - The throttle option has the form - throttle to X updates every period, where - X is a positive integer, and period is a positive integer - followed by a time unit which is one of `seconds`, - `minutes`, or `hours`. - - For example, the following topic view specification maps all topics below the - path `a` to reference topics below the path `b`, but - updates the value of each reference topic at most twice every five seconds: - -
- map ?a// to b/ throttle to 2 updates every 5 seconds
- 
- - To improve readability, the throttle option allows `1 update` as - an alternative to `1 updates`, and `every second` as an - alternative to `every 1 seconds` (and so on, for other time - units). For example, the following topic view specification maps all topics - below the path `a` to reference topics below the path - `b`, but updates the value of each reference topic at most once - every hour: - -
- map ?a// to b/ throttle to 1 update every minute
- 
- - The throttle option is only applied when a source topic is updated more - frequently than the configured rate. If a source topic is updated less - frequently, updates are passed on unconstrained. If the rate is exceeded, a - reference topic will not be updated again until the configured period has - expired. At this time, the reference topic will be updated based on the - source topic updates that happened in the interim, and a single value will be - published. Thus, the throttle option provides topic-scoped - conflation. - - The throttle option is ignored for time series topics because time series - updates do not support efficient conflation. Updates to source time series - topics are passed on immediately to the corresponding reference topics, - regardless of any throttle clause. - - #### Delay option - - The delay option causes a change to a view's source topic to be delayed by a - fixed time before it is reflected in reference topics. Topic additions, - updates, and removals are all delayed. Delays can range from one second to - many days​. - - Such a publication delay is a useful way to devalue topic data so it can be - given away to non-paying users​. - - The delay option has the form delay by duration, where - duration is a positive integer followed by a time unit which is one - of seconds, minutes, or hours. - - For example, the following topic view specification maps all topics below the - path a to reference topics below the path b, but - changes to a source topic are delayed by five minutes before they are - reflected in the corresponding reference topic. - -
- map ?a// to b/ delay by 5 minutes
- 
- - Views with the delay option specified initially create reference topics in an - unpublished state. The topics are published once the delay time has expired. - A topic in the unpublished state prevents a lower priority topic view from - creating a reference topic with the same path. Sessions with the rights to - read the source topic can browse unpublished topics using the - {@link PTDiffusionFetchRequest#withUnpublishedDelayedTopics withUnpublishedDelayedTopics} fetch request option. - - #### Separator option - - Views can use the scalar and expand directives in path mappings to extract - text from the source value. By default, any `/` characters in the text - are interpreted as path separators and will introduce extra levels in - reference topic paths. If this is undesirable, the separator option can be - used to replace any `/` characters produced by the scalar and expand - directives with a constant string. The replacement can contain path - separators but must have no empty path segments (`//`). - - Here is an example replacing all path separators with an alternate character: - -
- map ?a/path/ to b/ separator '\%'
- 
- - If the value at `/x/y` in the source topic was `foo/bar`, this would cause the - reference topic to be created at /b/foo\%bar instead of - /b/foo/bar - - #### Preserve topics option - - The default behavior for a topic view is that only the reference topics that - can be derived from the current value of the source topic are maintained. - This applies to views using directives that derive the path of the reference - topic(s) from a value within the source topic (e.g. scalar or expand). For - example if a view uses a scalar directive to determine the path of the - reference topic and the source topic is updated such that the selected scalar - value changes then the previously created reference topic will be removed and - a new one created. Similarly an expand directive may create many reference - topics from the source value but if the source is updated then only those - reference topics that still have a corresponding value within the source - value will be updated (or new ones added if not in the previous value), - whilst others will be removed. - - There are situations where an application may not want reference topics to be - removed because of source value changes. In such cases the 'preserve topics' - option may be used to indicate that all reference topics created by a view - should be retained (and updated by later updates that apply to it) until - either the source topic or the creating view are removed. - - For example: -
- map ?a/path/ to b/ preserve topics
- 
- - #### Topic type option - - The 'type' option can be used to specify the {@link PTDiffusionTopicType} of the target - reference topic. If the current source value of type indicated by the source - topic's type can be converted to the target type, a reference topic of the - specified type will be created. - - For example: -
- map ?a/ to b/ type STRING
- 
- - The specified type must be one of the supported target types - {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, - {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} or - {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}, - case insensitive. - - The following table describes the supported conversions from the source topic - type (the left column) to the supported target types. The number in brackets - indicates a note at the foot of the table describing exactly how the - conversion is processed. Where there is no number, no conversion is necessary - and the derived source value is simply mapped to the target reference topic - as if the type options was not specified. Where there is no entry for the - source topic type in the left column, no conversion is supported and topics - of unsupported types will not be processed by the topic view. An x - indicates that the conversion is not supported. - - In all cases the value being processed will be the current value as derived - from other mappings with the topic view (e.g. `expand`) which is not - necessarily the value of the source topic. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Source topic{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}
{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}(1)(1)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}(4)(5)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}(4)(6)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}(7)(7)(7)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}(8)(8)(8)(8)(9)
{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}xxxx(9)
- - Conversion notes: -
    -
  1. {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} - to number conversions will only occur if - the value of the string can be converted to the target number type. If the - string cannot be converted then no reference topic will be created. -
  2. Primitive types to {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} - will result in a JSON topic containing just the scalar value. -
  3. Conversions to {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} - will result in a time series topic with an event type matching the source topic. - Every update to the source topic will result in a new value being appended to the - reference time series topic. It is not possible to convert to a time series - topic with a different event type from the source topic. -
  4. Conversions from number types to - {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} will result in a - simple string representation of the number in the reference topic value. -
  5. {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} to - {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} - conversions perform a simple conversion. For example, `123` becomes `123.0`. -
  6. {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} to - {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} - conversions perform rounding to the nearest integer value. For example, `12.51` - becomes `13`. -
  7. {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} to primitive - type conversions only occur if the JSON value is a scalar which can be read - as a string and converted to the target type. Currently, only string and - integer scalar values can be read as - a string (i.e. not doubles). The string representation of the value will be - converted in the same way as specified for - {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} to other - primitive types. If the JSON value is a structure or cannot be converted - then no conversion takes place and no reference topic will be created. -
  8. The conversion of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} - to other types follows the same rules as for conversion from the source - topic type that matches the source time series topic's event value type. - So if the time series event type is `double` then the conversion rules from - source topic type {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} - to the target type will apply. Each value appended to the source time series - topic will result in an update to the reference topic. If a failure to convert - occurs at any point then the reference topic would be removed and only recreated - if a value is appended that can be converted. -
  9. {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY} to - {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}, - and vice-versa is supported in the same way as for other time series conversions. -
- - ### Escaping and quoting special characters - - Each part of a topic view expression has characters with special - significance. Source topic clauses and path mapping clauses are delimited by - white space. Directives in path and topic property mapping clauses are - delimited by the `<` and `>` characters, and each directive - parameter is terminated by `,` or `)`. Topic property mapping - clauses are delimited by white space, and the `:` and `,` - characters. - - Sometimes a topic view must refer to or generate topics with paths that - containing special characters, or use a JSON pointer containing special - characters. The escape sequence `\x` can be used to literally insert - any character `x`, with a one exception: `\/` cannot be used in - path fragments since the path delimiter `/` is always significant. - - Here is an example topic view expression containing escape sequences. It maps - the topic path `a topic` a reference topic with the path - `another topic`. - -
- map a\ topic to another\ topic
- 
- - Here is an example with a source value directive that uses the JSON pointer - `/x()/y` to extract the target path from the source value. The - `)` character in the JSON pointer must be escaped so it is not treated - as the end of the parameter list. - -
- map ?a// to 
- 
- - To insert `\`, the escape sequence `\\` must be used. - - There is no need to escape white space in JSON pointers directive parameters. - However, white space is significant. For example, the following expressions - have different topic value mapping clauses since the JSON pointer in the - second expression is `"/x "`; that is, it has a trailing space: - -
- map a to b as 
- map a to b as 
- 
- - Instead of using escape sequences, white space characters can be included in - source topic clauses and path mapping clauses using quotes. A clause is - quoted by wrapping it in single quote (`'`) or double quote (`"`) - characters. For example: - -
- map "a topic" to "another topic"
- 
- - Within a quoted clause, quotes of the same type must be escaped: - -
- map 'alice\'s topic' to 'bob\'s topic'
- 
- - For consistency, the values in topic property mapping clauses can be escaped - or quoted. However, there is no need to do so because none of the valid - values for the mappable properties contain special characters. - - ## Dealing with topic path conflicts - - Reference topics have a lower priority than normal topics created through the - API, including replicas of normal topics created by topic replication or - fan-out. A reference topic will only be created if no topic or reference topic - is already bound to its derived topic path. - - Topic views have a precedence based on order of creation. If two topic views - define mappings the same topic path, the earliest-created topic view will - create a reference topic. If a topic view is updated, it retains its original - precedence. - - ## Remote topic views - - A remote topic view is one that specifies another server as the location of - the source topics using the from clause as shown in the example - below: - -
- map ?a// from server1 to b/
- 
- - The server name `server1` in this example refers to the name of a - remote server created. - - In this case, upon establishing a successful connection with the remote - server indicated the topic view will create reference topics locally based - upon the topics selected by the topic view's selector at the remote server. - It is important to note that the selector only refers to topics that - match it at the remote server and not on the local server and there is no - reason why there could not be a source topic at the remote server that has - the same path as an entirely different topic on the local server. - - More than one topic view can specify the same remote server. - - A remote server only makes a physical connection when it is in use, therefore - the first topic view that specifies a remote server will cause it to - establish a connection. Similarly, if the last topic view that uses a remote - server is removed then the connection will be closed. - - It is not necessary for the named remote server definition to exist before - creating the topic view, as if it does not then the topic view will simply - remain dormant until the remote server is created and a successful connection - to the server specified in its URL is established. Similarly, if a remote - server that is in use by remote topic views is removed then all of the - reference topics created by the topic views will be removed and the topic - views will become dormant until the named remote server is created again or - the views are changed to name a different remote server. - - If a remote topic view selects a - {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing routing} topic at - the remote server then local mappings will only be performed if the routing - topic mapping at the remote server is able to establish a mapping for the - remote server connection. The mapping will be done as if from the resolved - routing topic. - - The rules of precedence for remote topic views are the same as for other topic - views. If the remote server for a remote topic view does not exist or does - not have an established connection then the remote topic view is not evaluated - (i.e. it is as if the source topics for the view did not exist), but if the - remote server later connects then the view will be evaluated and rules of - precedence will determine whether reference topic will replace those created - by earlier views. - - ## Topic view persistence and replication - - Reference topics are neither replicated nor persisted. They are created and - removed based on their source topics. However, topic views are replicated and - persisted. A server that restarts will restore topic views during recovery. - Each topic view will then create reference topics based on the source topics - that have been recovered. - - The server records all changes to topic views in a persistent store. Topic - views are restored if the server is started. - - If a server belongs to a cluster, topic views (and remote servers) will be - replicated to each server in the cluster. Topic views are evaluated locally - within a server. Replicated topic views that select non-replicated source - topics can create different reference topics on each server in the cluster. - When remote topic views are in use, each server in the cluster will make a - connection to the specified remote server and will separately manage their - remote topic views. - - A view with a delay clause uses temporary storage to record delayed events. - If there is a high volume of updates, temporary per-server disk files will be - used to save server memory​. The storage is per-server, and does not survive - server restart. When a server is started, no data will be published by a view - with a delay clause until the delay time has expired. - - ## Access control - - To list the topic views a session needs {@link PTDiffusionGlobalPermission#readTopicViews readTopicViews} - permission. - To create or remove a topic view a session needs - {@link PTDiffusionGlobalPermission#modifyTopicViews modifyTopicViews} - permission, {@link PTDiffusionPathPermission#selectTopic selectTopic} permission for the prefix of - the source topic selector and {@link PTDiffusionPathPermission#modifyTopic modifyTopic} permission - for the prefix of the path mapping. - - ## Accessing the feature - - The Topic Views feature for a session can be obtained from the session's - {@link PTDiffusionSession#topicViews topicViews} property. - - @see PTDiffusionSession - - @since 6.3 - */ -@interface PTDiffusionTopicViewsFeature : PTDiffusionFeature - -/** - Create a new named topic view. - - If a view with the same name already exists the new view will update the - existing view. - - @param name The name of the view. - - @param specification The specification of the view using the DSL. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @param view the created topic view if the operation was successful. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void)createTopicViewWithName:(NSString *)name - specification:(NSString *)specification - completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; - -/** - List all the topic views that have been created. - - @param 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 `views` will contain a list of views sorted by their - creation order. The completion handler will be called asynchronously on the - main dispatch queue. - - @param views the topic views that have been created if the operation was successful. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(void)listTopicViewsWithCompletionHandler:(void (^)(NSArray * _Nullable views, NSError * _Nullable error))completionHandler; - -/** - Remove a named topic view if it exists. - - If the named view does not exist then the operation is considered successful - and the completion handler is called accordingly. - - @param name The name of the view. - - @param 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`. The completion handler will be called asynchronously on - the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.3 - */ --(void)removeTopicViewWithName:(NSString *)name - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - - -/** - Get a named Topic View. - - @param name the name of the view. - - @param 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 `view` will contain the named view if it exists. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException If any argument is `nil`. - - @since 6.8 - */ --(void)getTopicViewWithName:(NSString *)name - completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h deleted file mode 100644 index a4d769f..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h +++ /dev/null @@ -1,490 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import -#import - -@class PTDiffusionFetchRequest; -@class PTDiffusionStream; -@class PTDiffusionTopicSelector; -@class PTDiffusionValueStream; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief The Topics feature provides a client session with the capability to receive streamed - topic updates and/or fetch the state of topics. - - This feature allows a client session to subscribe to topics to receive - streamed topic updates, fetch the state of topics and/or update topics with - new values. - - Specifically, the feature provides the ability to: -
    -
  • Subscribe to topics and specify streams to receive updates; -
  • Fetch the current state of topics (even if not subscribed); -
  • By extending the topic update feature, update topics with new values; -
  • By extending the topic views feature, manage topic views. -
- - ###Subscription and unsubscription - - A session can issue requests to subscribe to topics at any time, even if the - topics do not exist at the server. Each subscription request provides a - topic selector that is evaluated by the server to - select matching topics. The session will be subscribed to any topics that - match the selector unless they are already subscribed, or the session has - insufficient permission. The subscription request is also retained at the - server and the session will be automatically subscribed to newly created - topics that match the selector (unless a subsequent unsubscription cancels - the request). - - Sessions receive notifications from topics that they are subscribed to via - subscription streams (see below). When a session is subscribed to a - topic, all matching streams will first receive a subscription notification - that provides details about the topic. If the server has a value for the - topic, the value will be delivered to the streams before any other - notifications. - - A session can unsubscribe from topics at any time. This is also specified - using a topic selector. On unsubscription, matching streams are notified via - the `#PTDiffusionTopicUnsubscriptionReason` notification. This notification will give the - reason for unsubscription (for example, by request of the session, request of - the server, or topic removal). - - Subscriptions and unsubscriptions can occur for reasons other than requests - from the session. A session can be subscribed to or unsubscribed from a topic - by another session using the `PTDiffusionSubscriptionControlFeature`. The removal - of a topic also automatically causes unsubscription for subscribed sessions. - - Subscription requests are subject to authorization checks. The session must - have `PTDiffusionPathPermission#selectTopic` permission for the - topic selector used to subscribe. Matching topics will be further filtered to - those for which the session has `PTDiffusionPathPermission#readTopic` - permission. - - ###Subscription streams - - A session can listen to subscription events and updates for a selection of - topics by adding one or more streams. A stream is registered using a topic - selector which specifies the topics that the stream applies to. When an - update is received for a topic then it will be routed to every stream that - matches both the topic selector and the stream's value type. If more than one - stream matches, all will receive the update; the order in which they are - notified is not defined. - - A stream can be added several times for different selectors. If the same - stream is registered for - several selectors that match an event, the stream will only be notified of - the event once. The mapping of topic selectors to streams is maintained - locally in the client process. - - It is also possible to add one or more fallback streams which will - receive updates that do not match any stream registered with a selector. This - is useful for default processing or simply to catch unprocessed updates. A - fallback stream can be added using `PTDiffusionTopicsFeature#addFallbackStream:error:`. - Zero, one, or more fallback streams may be assigned. If - no fallback stream is specified, any updates that are not routed to any other - stream will simply be discarded. - - If the session is already subscribed to a topic when a matching stream is - added, the stream will immediately receive a subscription notification. For - most topic types, the latest value is locally cached and will be provided to - the stream following the subscription notification. - - A stream will receive a `PTDiffusionStreamDelegate#diffusionDidCloseStream:` - callback when unregistered and a `PTDiffusionStreamDelegate#diffusionStream:didFailWithError:` - callback if the session is closed. - - ###Value streams - - A `PTDiffusionValueStream` receives values for matching topics as and - when updates are received from the server. Delta updates received from the - server are automatically applied to locally cached values so that the stream - always receives full values for each update. - - Value streams are typed to a specified value class and only updates for - compatible topics will be routed to the stream. The following table shows how - the value class maps to compatible topic types that will be routed to the - stream: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value ClassCompatible Topic Types
JSONJSON STRING - INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING - INT64 DOUBLE - BINARY RECORD_V2
RecordV2RECORD_V2
- - Value stream implementations can be added using - `PTDiffusionTopicsFeature#addStream:withSelector:error`. - - A value stream can be added to received updates from time - series topics. The following table shows how the value class specified - when adding the stream maps to the event value class of time series topics - that will be routed to the stream: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Event Value ClassTime Series Event Value Class
JSONJSON STRING - INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING - INT64 DOUBLE - BINARY RECORD_V2
RecordV2RECORD_V2
- - ###Fetch - - A session can issue a request to fetch details of a topic or topics (subject - to authorization) at any time. The topics required are specified using a - topic selector. - - The results of a fetch will return the topic path and type of each selected - topic. The results may also optionally return the topic values and/or - properties. - - A new request can be created using `PTDiffusionTopicsFeature.fetchRequest` and modified to - specify additional requirements of the fetch operation. The request is issued - to the server using the `PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler:]` - method on the request. This will return the results via a `completionHandler`. - - ###Access control - - A session must have `PTDiffusionPathPermission.selectTopic` - permission for the path prefix of the topic selector used to - subscribe or fetch. - The topics that result from a subscription or fetch request are further - filtered using the `PTDiffusionPathPermission.readTopic` permission. - - No access control restrictions are applied to unsubscription. - - ###Accessing the feature - - This feature can be obtained from a `PTDiffusionSession` as follows: - -
-    PTDiffusionTopicsFeature *topics = session.topics;
- 
- - @see PTDiffusionSession - - @since 5.6 - */ -@interface PTDiffusionTopicsFeature : PTDiffusionTopicUpdateFeature - -/** - Request subscription to topics. - - The session will become subscribed to each existing topic matching - the selector unless the session is already subscribed to the topic, - or the session does not have `READ_TOPIC` permission for the topic - path. For each topic to which the session becomes subscribed, a - subscription notification and initial value (if any) will be - delivered to registered value streams before the completion handler - is called. - - The subscription request is also retained at the server and the session - will be automatically subscribed to newly created topics that match the - selector (unless a subsequent unsubscription cancels the request). - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 5.6 - */ --(void)subscribeWithTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - Request unsubscription from topics. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated by the server. - - @param 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`. - The completion handler will be called asynchronously on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 5.6 - */ --(void)unsubscribeFromTopicSelectorExpression:(NSString *)expression - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; - -/** - When a matching update is received from the server for a topic, it will be - passed on to all value streams that have been added with matching selectors. - If no value stream is registered with a matching selector, the fallback value - streams that have been registered using this method will be called instead. - - Zero, one, or many fallback value streams can be set. - If there is no fallback value stream, updates that match no other will be - discarded. - - @param stream Handler of value stream events not handled by an explicitly - registered topic selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @exception NSInvalidArgumentException Raised if the supplied `stream` argument - is `nil`. - - @since 5.9 - - @deprecated since 6.5 Use `addFallBackStream:error:` - */ --(void)addFallbackStream:(PTDiffusionValueStream *)stream -__deprecated_msg("Will be removed in a future release."); - -/** - When a matching update is received from the server for a topic, it will be - passed on to all value streams that have been added with matching selectors. - If no value stream is registered with a matching selector, the fallback value - streams that have been registered using this method will be called instead. - - Zero, one, or many fallback value streams can be set. - If there is no fallback value stream, updates that match no other will be - discarded. - - @param stream Handler of value stream events not handled by an explicitly - registered topic selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param error May be 'nil'. Is supplied then will contain reason on failure. - - @return YES if stream was successfully added - - @exception NSInvalidArgumentException Raised if the supplied `stream` argument - is `nil`. - - @since 6.5 - */ --(BOOL)addFallbackStream:(PTDiffusionValueStream *)stream - error:(NSError **)error; - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector. - - When a value update is received from the server, it will be passed to all - streams that have been added with matching selectors. - If there is more than one match, the order in which the streams are called is - not defined. - If there is no matching stream, the fallback stream(s) will be called instead. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 5.9 - - @deprecated since 6.5 Use `addStream:withSelector:error:` - */ --(void)addStream:(PTDiffusionValueStream *)stream - withSelector:(PTDiffusionTopicSelector *)selector -__deprecated_msg("Will be removed in a future release."); - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector. - - When a value update is received from the server, it will be passed to all - streams that have been added with matching selectors. - If there is more than one match, the order in which the streams are called is - not defined. - If there is no matching stream, the fallback stream(s) will be called instead. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. - - @param error May be 'nil'. Is supplied then will contain reason on failure. - - @return YES if stream was successfully added - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(BOOL)addStream:(PTDiffusionValueStream *)stream - withSelector:(PTDiffusionTopicSelector *)selector - error:(NSError **)error; - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector expression. - - This convenience method calls addStream:withSelector: having constructed a - PTDiffusionTopicSelector instance using the given expression. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated locally. - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.0 - - @deprecated since 6.5 Use `addStream:withSelectorExpression:error:` - */ --(void) addStream:(PTDiffusionValueStream *)stream - withSelectorExpression:(NSString *)expression -__deprecated_msg("Will be removed in a future release."); - -/** - Add a value stream to receive topic updates for topics that match the given - topic selector expression. - - This convenience method calls addStream:withSelector: having constructed a - PTDiffusionTopicSelector instance using the given expression. - - @param stream Handler of value stream events against this selector. - The delegate associated with this stream will be sent messages asynchronously - on the main dispatch queue. - - @param expression The @ref md_topic_selectors "topic selector" expression to be - evaluated locally. - - @param error May be 'nil'. Is supplied then will contain reason on failure. - - @return YES if stream was successfully added - - @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. - - @since 6.5 - */ --(BOOL) addStream:(PTDiffusionValueStream *)stream - withSelectorExpression:(NSString *)expression - error:(NSError **)error; - -/** - Remove a topic or value stream that was previously added using a topic selector - or as a fallback. - - @param stream The stream to remove. - - @return `YES` if the stream was removed. - - @note If the supplied `stream` argument is `nil` or the stream has already been - removed from the feature then calls to this method do nothing and return `NO`. - - @since 5.9 - */ --(BOOL)removeStream:(nullable PTDiffusionStream *)stream; - -/** - Creates an unconfigured fetch request. - - If the request is invoked by calling - PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler: - the fetch result will provide the paths and types of all of the topics which - the session has permission to read. - - You will usually want to restrict the query to a subset of the topic tree, and - to retrieve the topic values and/or properties. This is achieved by applying - one or more of the builder methods to produce more refined requests. - - For example (Swift): - - topics.fetchRequest() - .fetchStringValues(withTopicSelectorExpression: "*A/B//") - { - (result: PTDiffusionStringFetchResult?, error: Error?) in - / / TODO Handle result, if not `nil`, otherwise handle error. - } - - @return a new unconfigured fetch request - - @since 6.2 - */ --(PTDiffusionFetchRequest *)fetchRequest; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h deleted file mode 100644 index 5284f21..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h +++ /dev/null @@ -1,126 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionPartialJSONUpdateConstraint; -@class PTDiffusionSessionLock; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A constraint to be applied to an update operation or the creation of an - update stream. - - Constraints describe a condition that must be satisfied for an operation to - succeed. Constraints can be applied to the setting of a value or creation of an - update stream. Constraints are only evaluated on the server. - - Constraints are evaluated using the: - - active session locks - - existence of the topic - - current value of the topic - - The value of a topic can be described in several ways. The value can be - described as an exact value, a partial value or an unset value. - - Constraints can be composed with one another. It is only possible to construct - logical ANDs of constraints. Constraints can only be composed if the resulting - constraint is satisfiable. Multiple session locks can be held but a topic can - only have a single value. Constraints specifying multiple topic values cannot - be constructed. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionUpdateConstraint : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - Returns a constraint requiring a lock to be held by the session. - - This can be used to coordinate operations between multiple sessions. - - @param lock the lock held by the session. - - @return Constraint requiring a lock to be held by the session. - - @exception NSInvalidArgumentException If the lock argument is `nil`. - - @since 6.3 - */ -+(instancetype)lockedWithLock:(PTDiffusionSessionLock *)lock; - -/** - Create a constraint requiring the topic to have no value. - - This is useful when setting the first value of a topic. This constraint is - unsatisfied if no topic is present at the path, making it unsuitable for - operations that try to add topics. - - @return Constraint requiring the topic to have no value. - - @since 6.3 - */ -+(instancetype)noValue; - -/** - Returns a constraint requiring the path to have no topic. - - This is useful when setting the first value of a topic being added using one of - the 'add and set' methods without changing the value if the topic already - exists. This constraint is unsatisfied if a topic is present at the path, - making it unsuitable for operations that try to set topics without adding them. - - @return Constraint requiring the path to have no topic. - - @since 6.3 - */ -+(instancetype)noTopic; - -/** - Returns a constraint that partially matches the current topic value. - - The topic must be PTDiffusionTopicType_JSON. The returned constraint partially - describes the structure of a PTDiffusionJSON value. - - @return Constraint that partially matches the current topic value. - - @since 6.3 - */ -+(PTDiffusionPartialJSONUpdateConstraint *)jsonValue; - -/** - Returns a composed constraint that represents a logical AND of this constraint - and another. - - @param constraint The other constraint that will be logically-ANDed with this - constraint - - @param error Location to store a reason in case of failure. May be `nil`. - - @return A new constraint or `nil` if there was an error. - - @exception NSInvalidArgumentException If the constraint argument is `nil`. - - @since 6.3 - */ --(nullable instancetype)andConstraint:(PTDiffusionUpdateConstraint *)constraint - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h deleted file mode 100644 index 4407569..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h +++ /dev/null @@ -1,156 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -@class PTDiffusionTopicCreationResult; - -/** - The value assigned to the `code` property of NSError objects generated by some - callbacks generated by PTDiffusionUpdateStream instances. - - @since 6.3 - - @deprecated since 6.7 Use PTDiffusionError instead. - */ -typedef NS_ENUM(NSInteger, PTDiffusionUpdateStreamErrorCode) { - /** - An operation was performed with an invalid update stream. - - @since 6.3 - - @deprecated since 6.7 Use PTDiffusionError_InvalidUpdateStream instead. - */ - PTDiffusionUpdateStreamErrorCode_InvalidStream __deprecated_enum_msg("Use PTDiffusionError_InvalidUpdateStream instead.") = 1, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - The value assigned to the `domain` property of NSError objects generated by - some callbacks generated by PTDiffusionUpdateStream instances. - - @since 6.3 - */ -extern NSString *const PTDiffusionUpdateStreamErrorDomain __deprecated_msg("Use PTDiffusion instead."); - -/** - @brief An update stream that provides a base functionality for updating a - specific topic. - - An update stream is associated with a specific topic. The type of the topic - must match the type of values passed to the update stream. It can be created - with an optional PTDiffusionUpdateConstraint. The existence of the topic, its - type and the constraint are validated lazily by the first 'set' or 'validate' - operation. Subsequent operations issued before the first operation completes - will be deferred until the completion of the first operation. - - An update stream can be used to send any number of updates. It sends a sequence - of updates for a specific topic to the server. If supported by the data type, - updates will be sent to the server as a stream of binary deltas. An update - stream does not prevent other sessions from updating the topic. If exclusive - access is required update streams should be used with a PTDiffusionSessionLock - as a constraint. - - Once validated an update stream can be invalidated. An invalidated update - stream rejects the operations applied to it. The update stream will be - invalidated if: - - - the topic is removed - - another update stream is created for the same topic - - the topic is updated to a new value by anything other than the stream - - the session does not have the `UPDATE_TOPIC` update permission - - an operation fails because of cluster repartitioning - - Update streams are thread-safe. - - @see PTDiffusionTopicUpdateFeature - - @since 6.3 - */ -@interface PTDiffusionUpdateStream : NSObject - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - -/** - 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: - - - **no such topic** if there is no topic bound to `path`. - - **incompatible topic** if updates cannot be applied to the topic, for example - if a topic view has bound a reference topic to the path. - - **incompatible topic state** if the topic is managed by a component (such as - fan-out) that prohibits updates from the caller. - - **unsatisfied constraint** if the `constraint` is not satisfied by the topic - `path`. - - **invalid update stream** if the update stream has been invalidated. - - **cluster repartition** if the cluster was repartitioning. - - **session security** if the calling session does not have the `MODIFY_TOPIC` or - `UPDATE_TOPIC` permission for `path`. - - **session closed** if the session is closed. - - @param 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. - - @param error If this method returns `NO` to indicate that an error occurred - then this will be populated with the reason for that failure. - - @return `YES` on success; or `NO` if an error occurred, in which case `*error` - will be populated with the failure reason. - - @exception NSInvalidArgumentException If completionHandler is `nil`. - - @since 6.3 - */ --(BOOL)validateWithCompletionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler - error:(NSError **)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h deleted file mode 100644 index 04ce4d5..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h +++ /dev/null @@ -1,30 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A value stream represents an asynchronous, variable length feed of - subscription and value updates from the Diffusion server. - - @see PTDiffusionTopicsFeature - - @since 5.9 - */ -@interface PTDiffusionValueStream : PTDiffusionStream - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h deleted file mode 100644 index 61e9cdf..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h +++ /dev/null @@ -1,100 +0,0 @@ -// Diffusion Client Library for iOS, tvOS and OS X / macOS -// -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. -// -// Use is subject to license terms. -// -// NOTICE: All information contained herein is, and remains the -// property of Push Technology. The intellectual and technical -// concepts contained herein are proprietary to Push Technology and -// may be covered by U.S. and Foreign Patents, patents in process, and -// are protected by trade secret or copyright law. - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -/** - @brief A version represents a released build of the client library. - - Version numbers are described with dotted notation in the form - `..`. - - @since 5.6 - */ -@interface PTDiffusionVersion : NSObject - -/** - Instance of the product version of this client library. - - @return the product version of this client library. - - @since 5.6 - */ -+(instancetype)versionOfClientLibrary; - -+(instancetype)new NS_UNAVAILABLE; - --(instancetype)init NS_UNAVAILABLE; - - -/** - The major (left, most significant) component of the version number. - - @deprecated since 6.5. This will be removed in a future release. - - @since 5.6 - */ -@property(nonatomic, readonly) NSUInteger major __deprecated_msg("Will be removed in a future release."); - - -/** - The minor (middle) component of the version number. - - @deprecated since 6.5. This will be removed in a future release. - - @since 5.6 - */ -@property(nonatomic, readonly) NSUInteger minor __deprecated_msg("Will be removed in a future release."); - - -/** - The patch (right, least significant) component of the version number. - - @deprecated since 6.5. This will be removed in a future release. - - @since 5.6 - */ -@property(nonatomic, readonly) NSUInteger patch __deprecated_msg("Will be removed in a future release."); - - -/** - The complete product version number. - - @since 6.5 - */ -@property(nonatomic, readonly) NSString * version; - - -/** - Additional information about this build of the client library. - - @since 5.6.6 - */ -@property(nonatomic, readonly) NSDictionary* manifest; - - -/** - Compares the receiver to the given version. - - @param version The version object with which to compare the receiver. - - @return `YES` if the receiver and the given version are the same. - - @since 5.6 - */ --(BOOL)isEqualToVersion:(nullable PTDiffusionVersion *)version; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Info.plist b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Info.plist deleted file mode 100644 index 941c480..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Info.plist and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources deleted file mode 100644 index 82bda72..0000000 --- a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources +++ /dev/null @@ -1,3012 +0,0 @@ - - - - - files - - Headers/Diffusion.h - - bom0cUqvhp3IOAr0GNRfdJja1Uk= - - Headers/PTDiffusion.h - - XnD3E9+NbghWDiChKuryYDmAHiY= - - Headers/PTDiffusionAddTopicResult.h - - gHVMjofviSaatFXSyW9JNlQWXp8= - - Headers/PTDiffusionBasicHTTPProxyAuthentication.h - - tfRpT3SJrwnlUAWKk1zE5yStHPw= - - Headers/PTDiffusionBinary.h - - IRp9KLtwcW8Tpll50vOlqTnr5EE= - - Headers/PTDiffusionBinaryDelta.h - - eOisvnXJ+75WXktyVQV47X7+rss= - - Headers/PTDiffusionBinaryFetchResult.h - - wvBjyhM/oqwxn/TtgbMe0EG2/ZI= - - Headers/PTDiffusionBinaryFetchTopicResult.h - - IvwIFegt3H60YtYjfDWclLgvXNs= - - Headers/PTDiffusionBinaryRequestDelegate.h - - HEW8gUfkpyJv9fIR56v7vBuyyew= - - Headers/PTDiffusionBinaryRequestStreamDelegate.h - - KwS77VkO7OynPdkPDICIvXVs7D0= - - Headers/PTDiffusionBinarySessionResponseStreamDelegate.h - - k5Zben7VlzUyq1GbXRavPpnHbqo= - - Headers/PTDiffusionBinaryTimeSeriesEvent.h - - EQnUyyyh28i//lipgxgs018ju94= - - Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h - - O3juN1/1h3CDQQ4OLiur7pBnGpU= - - Headers/PTDiffusionBinaryTimeSeriesQueryResult.h - - koRVjwmJQXlw2dF2tu9WkNbU+H4= - - Headers/PTDiffusionBinaryUpdateStream.h - - 9gicGD1inPa6gTSXRqAjVdK8Jkg= - - Headers/PTDiffusionBinaryValueStreamDelegate.h - - 8mXPY4qvKFwhC7seYe+krz0h3lM= - - Headers/PTDiffusionBranchMapping.h - - ZDKqttc6M9zzHagsXFo9g8XB820= - - Headers/PTDiffusionBranchMappingTable.h - - w3tE+yV1eJmplAlpTXlnSgatTEQ= - - Headers/PTDiffusionBranchMappingTableBuilder.h - - Bo0UbPi3YEKdi8QrRkzv5/jXyAg= - - Headers/PTDiffusionBytes.h - - M1Jnfw1hNGcI0Ib53U9zcbb1OjQ= - - Headers/PTDiffusionCancellable.h - - K1St0I86KSn20CSR1hF9y/kj9Nw= - - Headers/PTDiffusionCheckRemoteServerResult.h - - rgJFAn1BZaXsAcy5G5KJrEnMUWw= - - Headers/PTDiffusionClientControlFeature.h - - 9bpwdrS7GGm74lz179pVIo/lbK0= - - Headers/PTDiffusionClientQueueEventListener.h - - TX7hq5YhAOlQWhLeXuuYjnymdnw= - - Headers/PTDiffusionClientQueuePolicy.h - - XSlTBmdUr8g3vzk6IaTa9rfkSxE= - - Headers/PTDiffusionCloseReason.h - - 4NP8EBJYodc7qbJuW1aIdBB79zk= - - Headers/PTDiffusionCreateRemoteServerResult.h - - lXIiFvo6+6+zkanzQdwlxRq9r30= - - Headers/PTDiffusionCredentials.h - - Yswe6ZeE8pV1UWc47mhDM/vERCw= - - Headers/PTDiffusionDataType.h - - X0jXK7KstA98ANZQNPxIX8PTYn8= - - Headers/PTDiffusionDataTypes.h - - 59TS6+k/8iOzzVAsZvaljsHGQvM= - - Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h - - MQj3IR5A8XwhAVxD6odEfwVSUYE= - - Headers/PTDiffusionDefaultStreamDelegate.h - - kn2OYFoVYgbQZU8Z9uK0waIA+O0= - - Headers/PTDiffusionDefaultSubscriberStreamDelegate.h - - rL2HohjRlnrEkzhB0HaNM8/m3AU= - - Headers/PTDiffusionDefaultTopicNotificationListener.h - - pWqPn+PFv+aw8bXUBM/23Gd/2D0= - - Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h - - +BkpBsYRzZxyPMpOsvLENEOWqoU= - - Headers/PTDiffusionEnumeration.h - - 7IATJXBFV7kyC63oqJ92RUpXNDo= - - Headers/PTDiffusionError.h - - cECQ51CSMTZKw7m9wrI0PDkK0t8= - - Headers/PTDiffusionErrorListener.h - - wcUQ12PknR5uodl6vDNDQ72DwOI= - - Headers/PTDiffusionFeature.h - - l318/UIdPwcCgnimVAGGubfOgrM= - - Headers/PTDiffusionFetchRequest.h - - EWXDvEo6JtGvPODJtVfziNCRgmM= - - Headers/PTDiffusionFetchResult.h - - 7besz8A6wioK/QNMWjwJlaVctIc= - - Headers/PTDiffusionFetchTopicResult.h - - n1swAjpJpvWNa7kigXb5lFG7qqM= - - Headers/PTDiffusionGetSessionPropertiesResult.h - - wf69YysbIJf2k3TljvR8nLnhguQ= - - Headers/PTDiffusionGlobalPermission.h - - hycq2LpFRepTNes5tWImHbyE+ug= - - Headers/PTDiffusionHTTPAuthentication.h - - 04TrwbzPbN2tf29o6t+4QEOrt0Y= - - Headers/PTDiffusionHTTPAuthenticationChallenge.h - - xPb2ms4PfUEgQGe0TT84xAVC26Q= - - Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h - - q2tRtdUcvNI3qGrT1PCxPtRvru4= - - Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h - - womdRtmMruef+Qhl4fW6XdlikHg= - - Headers/PTDiffusionHTTPProxyConfiguration.h - - X9Chg+yCwug1lN6YBajyxKDfDc0= - - Headers/PTDiffusionHTTPResponse.h - - APmuxxekiZOjirHbaSvuA3xFNfs= - - Headers/PTDiffusionJSON.h - - 13qELluVvXtpq/W5SEZTqXq2ZzE= - - Headers/PTDiffusionJSONFetchResult.h - - /cK6X7hkNZboxNKluxhEUjRWIwQ= - - Headers/PTDiffusionJSONFetchTopicResult.h - - 5ZJnZTT2CH/QDZpKk0ONXpKcW2w= - - Headers/PTDiffusionJSONPatchResult.h - - tINXQYyErrFXqwh3cnlfh3pO/9U= - - Headers/PTDiffusionJSONRequestDelegate.h - - PCVS7kwCps6n8WFRAo43sC639gc= - - Headers/PTDiffusionJSONRequestStreamDelegate.h - - h8fH9WCeCRvKmRZpgN4PoxGwXcM= - - Headers/PTDiffusionJSONSessionResponseStreamDelegate.h - - 1NWVlpE/WCiY0Evzq9gaEeQDPxk= - - Headers/PTDiffusionJSONTimeSeriesEvent.h - - KqcX5DaBkiIwDyh5T1naEDsI+0U= - - Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h - - jaxYR2fpU2LZj60PBUkGoxLj5tg= - - Headers/PTDiffusionJSONTimeSeriesQueryResult.h - - PiW4Sb/HeTzzBAj1znEyS16e7ns= - - Headers/PTDiffusionJSONUpdateStream.h - - j+kgT9TmBDSeeUhqvss6orxl+AE= - - Headers/PTDiffusionJSONValueStreamDelegate.h - - f4o0O4ha63u/IckPbxgF2hi8ARM= - - Headers/PTDiffusionLogging.h - - rFCKP77Z13fl1Lqhyl8lr6PcRMs= - - Headers/PTDiffusionLoggingDestinationConfiguration.h - - 4axnkOhVG9/3OVR3yw3cr1owtyY= - - Headers/PTDiffusionLoggingLevel.h - - m0qdaXuRy1UIh4w9lBaMnB3kIU4= - - Headers/PTDiffusionLoggingMessagePrinter.h - - spLTiRckY9p4svdpQ9fnqNIKW9g= - - Headers/PTDiffusionMessagingFeature.h - - TTsgX8TESXQMEA7KRqHoSCIfjUM= - - Headers/PTDiffusionMetricCollector.h - - Q0hI/n0EHo+6+kg2ZMhq9zm9TxU= - - Headers/PTDiffusionMetricCollectorBuilder.h - - yQmzqI6Di3RfWUoGBKz4RvnEedE= - - Headers/PTDiffusionMetricsFeature.h - - ulonYz17A9TEyp+Wdbeg2UTFN4A= - - Headers/PTDiffusionMissingTopicHandler.h - - jJ9PsG+P1IDcxXLERBJYcolAZEw= - - Headers/PTDiffusionMissingTopicNotification.h - - f+zhLyj+cKWNZWfwqYAIPYMXn9M= - - Headers/PTDiffusionMutableRecordV2Model.h - - rX77Q+p6Z24SD2B1WwDJaVT7OFk= - - Headers/PTDiffusionNumberFetchResult.h - - vkpfm8kei5FeQJjA8TvBzF1NJ70= - - Headers/PTDiffusionNumberFetchTopicResult.h - - 9juTPAfvGmI/eSDqGWc9Pe2k9FY= - - Headers/PTDiffusionNumberRequestDelegate.h - - MaDH0rclSd1xFLM9nY2nAH2LzBY= - - Headers/PTDiffusionNumberRequestStreamDelegate.h - - DHwutv+bacmUxpxcu7owxikDewQ= - - Headers/PTDiffusionNumberSessionResponseStreamDelegate.h - - UFwJKoii3V/0nunrBQGderRkUFc= - - Headers/PTDiffusionNumberTimeSeriesEvent.h - - 0qbeP+41+bMjUTgdEC0cGT9P01o= - - Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h - - u/s/wzNKMdkxsmzwoAhjiE33lPo= - - Headers/PTDiffusionNumberTimeSeriesQueryResult.h - - FJhjeCt9g0rbkhCvc19H+cu2D9o= - - Headers/PTDiffusionNumberUpdateStream.h - - xMiLZqNEjNcJlieyWRVOp6wHijk= - - Headers/PTDiffusionNumberValueStreamDelegate.h - - UFSzUpxbZElKE3zzbkkG7LpoigI= - - Headers/PTDiffusionPartialJSONUpdateConstraint.h - - 4Kg285/tvd0sddVplu8XznOumGM= - - Headers/PTDiffusionPathPermission.h - - YduEOO1T2Kmw+7Vv7VGa0EtFmSg= - - Headers/PTDiffusionPingDetails.h - - s/YUpu02id3IaJL0naBecz13Ndk= - - Headers/PTDiffusionPingsFeature.h - - ToR+BKQy2x1CjT7TWkSqkE7OxK0= - - Headers/PTDiffusionPrimitive.h - - nqrWaohoh0ja6D8iSB5EogVkhZ8= - - Headers/PTDiffusionRecordV2.h - - rCmHMFagwu8wmS3Mg+Q8gNX42tc= - - Headers/PTDiffusionRecordV2Builder.h - - QEgiu1leq3oUSasXj9rVYB+ezcU= - - Headers/PTDiffusionRecordV2Delta.h - - Z2XlkG872AlE7BF2yN1gK6KJYGY= - - Headers/PTDiffusionRecordV2DeltaChange.h - - amKMt7zzKuisiAGSS4o/dO/gfiU= - - Headers/PTDiffusionRecordV2DeltaChangeType.h - - OsT1NCWxWtKjjBpy4r1q0B3F1Bw= - - Headers/PTDiffusionRecordV2FetchResult.h - - INjNAOczxQqEx4cy41iwA7LWpZI= - - Headers/PTDiffusionRecordV2FetchTopicResult.h - - TMD9NYUqaJtfxtXYpEUiQ8ABwtw= - - Headers/PTDiffusionRecordV2Model.h - - YqTtIkx9UL9qI3MgaOYdE1Pqw1A= - - Headers/PTDiffusionRecordV2RequestDelegate.h - - 5tja6Pl/xjl/EMBW0e7uHg9d8CE= - - Headers/PTDiffusionRecordV2RequestStreamDelegate.h - - V/Jv9xOUHnVpx96N1WiFfvG4gTk= - - Headers/PTDiffusionRecordV2Schema.h - - cp/B01S2/f9tf7igoMi6A+0O/Tc= - - Headers/PTDiffusionRecordV2SchemaBuilder.h - - ZhIcXpXr8oL0a1OLwiwrrTcYjlA= - - Headers/PTDiffusionRecordV2SchemaField.h - - /jeQVC5riz+T4TfX5uvh46LwDDw= - - Headers/PTDiffusionRecordV2SchemaFieldType.h - - rUb1lnPxYyaoGiVc0+kXFJ7Y7Tw= - - Headers/PTDiffusionRecordV2SchemaNode.h - - QRe83a+5IaaOgHgPRNl/i6vwXnU= - - Headers/PTDiffusionRecordV2SchemaRecord.h - - TnFwYILZgo+/FVeim2AOace5hCw= - - Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h - - wHWllniW8bHydKIMRghh+B9pBNc= - - Headers/PTDiffusionRecordV2TimeSeriesEvent.h - - 8nW8wilb7VSbwoirdb8YXPUoXwc= - - Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h - - 5eqp6nK4/+8/p3Iaq6RYs2A67ac= - - Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h - - Pmj2xpyYBWs4WOlPNMtQDKFt1po= - - Headers/PTDiffusionRecordV2UpdateStream.h - - Y0a4Rv+Rjy+bPGlHY4MaiXDvzgE= - - Headers/PTDiffusionRecordV2ValueStreamDelegate.h - - QVYIHzmU7JnguRZStV2xfYFe+SM= - - Headers/PTDiffusionRegistration.h - - LGwiK+YsT6bBbaxQbi07AVArkms= - - Headers/PTDiffusionRemoteServer.h - - tP1e8puvRCc3D98M2wIel8k9sms= - - Headers/PTDiffusionRemoteServerBuilder.h - - dGgKIOzLscYH0Kd+q0Efp8IjDpc= - - Headers/PTDiffusionRemoteServerConnectionOption.h - - ITjyZnacokkituioSBE8DhLXd8Q= - - Headers/PTDiffusionRemoteServerConnectionState.h - - YKFO+vf7p2q4zct1FRpSTINM89c= - - Headers/PTDiffusionRemoteServersFeature.h - - 3Prda4oNHqXUzM+2U22Vo3u2sRM= - - Headers/PTDiffusionRequest.h - - iBXHk0CN0V4H9TfvFlQgi/TXa6I= - - Headers/PTDiffusionRequestContext.h - - qxw2kG8mwhMOqbAw9ZcSwMgE6/k= - - Headers/PTDiffusionRequestHandler.h - - XmYRoiMjYnjmqFsrRj+Ocq9rZdU= - - Headers/PTDiffusionRequestStream.h - - qm5369ZeGnWQIKkO1xGqW93f0zM= - - Headers/PTDiffusionResponder.h - - SQPU0jg5rEhY53sQfJBDoMRLoeQ= - - Headers/PTDiffusionResponse.h - - UhIeKy+CRs4T2zTGFphGm1OzMQU= - - Headers/PTDiffusionSecurityFeature.h - - r3/W67iYxvPHeteE6OMX+4ROxLU= - - Headers/PTDiffusionSendDeliveryPriority.h - - 5verWwhZ36ChGa7vv+1M8PP8Rt8= - - Headers/PTDiffusionSession.h - - K4ufrMdrBR/6eUlFVBsL4YNlpkw= - - Headers/PTDiffusionSessionConfiguration.h - - cjTtORO4pfSJOpVygL/iuUmTLfE= - - Headers/PTDiffusionSessionError.h - - /sDYNWbyKXRgx2xjLLXdtDk8uMw= - - Headers/PTDiffusionSessionId.h - - oyP1ZP8tiqVh+RtjUsOFCD36SbM= - - Headers/PTDiffusionSessionLock.h - - +pRVtSlOo4nwFJAxLx7rRQ1bFBE= - - Headers/PTDiffusionSessionLockAttempt.h - - zDG2rmmh4HQqat13XIARd2gpyp4= - - Headers/PTDiffusionSessionLockScope.h - - B+/qZhcMyw+RQI5MTzMR+SKqF8M= - - Headers/PTDiffusionSessionMetricCollector.h - - r/Zt7XdN0mfHzv6oKpiC0OXqrxw= - - Headers/PTDiffusionSessionMetricCollectorBuilder.h - - talQ04uHilmK6CHOlES9BepGWkk= - - Headers/PTDiffusionSessionPropertiesDelegate.h - - Zmm4SJs443B/Ed0GSpRps6zTviA= - - Headers/PTDiffusionSessionPropertiesListenerRegistration.h - - T5YzTXQWyd4mNDDwbkWXSNh9tQg= - - Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h - - DG9AN818s/C+5ehY39mIwXSvCNk= - - Headers/PTDiffusionSessionReconnectionAttempt.h - - R91QcHqYATJhv8hKoDoQbWbdMDo= - - Headers/PTDiffusionSessionReconnectionStrategy.h - - PrgSLAcm+88cWPctmusCFsADB8M= - - Headers/PTDiffusionSessionResponseStream.h - - TFbOIDOggRw+LezkWA7RLjZNDRA= - - Headers/PTDiffusionSessionResponseStreamDelegate.h - - fl2RAQgYo+kqHlgIUD5JDuzX/VA= - - Headers/PTDiffusionSessionState.h - - D7PBX4cf+PMCbTETtIfiwDZdUs4= - - Headers/PTDiffusionSessionStateChange.h - - kH2ACmvz/J2676PpkVCDrOmYXoM= - - Headers/PTDiffusionSessionTreesFeature.h - - yLxcurXzmLYnoF40EUkeQ1Wjdn8= - - Headers/PTDiffusionSetSessionPropertiesResult.h - - AOCaIej6BlQ6Lk/b3gQguGFo7vE= - - Headers/PTDiffusionStream.h - - rDmcy+gFQLG4u371AOzTrt8fnZc= - - Headers/PTDiffusionStreamDelegate.h - - ePW4fuh5cMZxSyFRc3beuTOlpxg= - - Headers/PTDiffusionStringFetchResult.h - - GIweI8KVClgVTBpcOBGKqU2Q8OA= - - Headers/PTDiffusionStringFetchTopicResult.h - - 7qisXZm9jhg0Y5fMDyVWzx65oy0= - - Headers/PTDiffusionStringRequestDelegate.h - - EN/WRMBYCSI21ohKnQzSsENswas= - - Headers/PTDiffusionStringRequestStreamDelegate.h - - Sbfe0TtEgYds3b3MYM6tqQaNhXg= - - Headers/PTDiffusionStringSessionResponseStreamDelegate.h - - 74IsG6YvQIagZxhmwxZyKJGxw4w= - - Headers/PTDiffusionStringTimeSeriesEvent.h - - 1NQ2QsLa1qI8t2LXjuem4yF+llQ= - - Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h - - 4qsI0k8nCf4N+Nz/FMynawnaygM= - - Headers/PTDiffusionStringTimeSeriesQueryResult.h - - zumPNOhfHhpy4bsA5zSFE71XvJQ= - - Headers/PTDiffusionStringUpdateStream.h - - s7gAMaCr5wMoDUpdrY4/YQ1yaJM= - - Headers/PTDiffusionStringValueStreamDelegate.h - - a7UMtigs/ys7HE/CZ8/KHEyHWsQ= - - Headers/PTDiffusionSubscriberStreamDelegate.h - - wDl6dH5JGxIwojmEV1M/8prrOgU= - - Headers/PTDiffusionSubscriptionControlFeature.h - - coLOg32pomsy6EhJOOH505Qv8NA= - - Headers/PTDiffusionSubscriptionRoutingRequest.h - - bh6oZPo6Q9ckwiOGwLtgxhRJf1c= - - Headers/PTDiffusionSubscriptionRoutingRequestHandler.h - - 9jnRMtx9K8HdPuXG+znth3M0aGE= - - Headers/PTDiffusionTimeSeriesEvent.h - - EUo8rlUN7L4Vb0ApCRQc0QvyDKI= - - Headers/PTDiffusionTimeSeriesEventMetadata.h - - K3z4tHb6R+DJ5TS7Zn7KTSuV3aQ= - - Headers/PTDiffusionTimeSeriesFeature.h - - kRQvWpGJ5/+mq+wKgZn1UFU+aEc= - - Headers/PTDiffusionTimeSeriesFetchResult.h - - MvAjs5LXtdh3OO3tOuSA04LMM1k= - - Headers/PTDiffusionTimeSeriesFetchTopicResult.h - - yp6pe18HJ/EGJmpbh+6s7NLZ7pU= - - Headers/PTDiffusionTimeSeriesQueryResult.h - - gG4FAopvIEIBP0fMvPbOLS83u98= - - Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h - - DvpP6DS6eAyk+aCqkqWb3iigDxs= - - Headers/PTDiffusionTimeSeriesRangeQuery.h - - W/tKg/AWIskigFCtEjJRnm+TmXc= - - Headers/PTDiffusionTopicControlFeature.h - - WtrzrcDtqjI42rwsqH/19Vd1VCk= - - Headers/PTDiffusionTopicCreationResult.h - - HSAGnfPszx9efRtpwwVWOIoTd/o= - - Headers/PTDiffusionTopicMetricCollector.h - - kPmr2niRnxmnK+WEyGTHpQSy94I= - - Headers/PTDiffusionTopicMetricCollectorBuilder.h - - sHHk1WUF3Z4/PJSf1bOsvhKM25w= - - Headers/PTDiffusionTopicNotificationListener.h - - hZTc6cym7qmNF9lVtC5R8cw4FMI= - - Headers/PTDiffusionTopicNotificationRegistration.h - - +z4j7niWHEOMtD8Q+7iljLXUHkU= - - Headers/PTDiffusionTopicNotificationType.h - - P/gSFu8kqdKZP1GErdycrZWxe8Y= - - Headers/PTDiffusionTopicNotificationsFeature.h - - cOpzyzMcUYS9Rswys88ul8VxKtc= - - Headers/PTDiffusionTopicPermission.h - - ToIfuMW32GNijiIbh7HZyDC4MBg= - - Headers/PTDiffusionTopicRemovalResult.h - - OGJ85IHK6RKAeL3lQBmxgeRms9E= - - Headers/PTDiffusionTopicSelector.h - - PvLuO6ABp5SdMAkZALFuqj6FPk0= - - Headers/PTDiffusionTopicSpecification.h - - 6T6nTGbvX3owIJsYdwSEQeIz6KI= - - Headers/PTDiffusionTopicTreeRegistration.h - - geRzJEq1yPFwf5jz0mNoxXMtLok= - - Headers/PTDiffusionTopicTreeRegistrationDelegate.h - - bJmglUQThguySqQY/0RZIdSn758= - - Headers/PTDiffusionTopicType.h - - mY6IRMiXMRWQq+a/0cO8jlp/wPw= - - Headers/PTDiffusionTopicUnsubscriptionReason.h - - X5fsyCzYm1au3UTJLOJV547sfT8= - - Headers/PTDiffusionTopicUpdateFeature.h - - fGaZOiKa69O1PnrUxN+BIKtHCwY= - - Headers/PTDiffusionTopicView.h - - RNHKeU6rwo7Y8caMk40vHJ9WOl4= - - Headers/PTDiffusionTopicViewsFeature.h - - 1jM2LY+xS60EBqCGtHhC4WxQdv4= - - Headers/PTDiffusionTopicsFeature.h - - oucx5fp8VB3Ck/BuDgoSHj59a4g= - - Headers/PTDiffusionUpdateConstraint.h - - WgubOT3cRcshVldoHPR5oATeZbk= - - Headers/PTDiffusionUpdateStream.h - - Q51eU6LsCptV2OMM0Oc1kbntKmc= - - Headers/PTDiffusionValueStream.h - - vmLkEfveOrPcHBpupS8osA0+OAI= - - Headers/PTDiffusionVersion.h - - B7GoZ+3T6mv21Fy27HaP3q0r3FY= - - Info.plist - - xCL0P8eHi8tvKqAVJC1zYsUKt/Y= - - Modules/module.modulemap - - q330/OkSKLLkRwoC2kdB1e4qTEQ= - - error_descriptions.plist - - 1QALYuZesU81TxtP94AljMMQUoQ= - - - files2 - - Headers/Diffusion.h - - hash - - bom0cUqvhp3IOAr0GNRfdJja1Uk= - - hash2 - - 1l7CRDgO0XTzqQnx3wXIvwD15oMKhCI7Hck7ZqbZ0RE= - - - Headers/PTDiffusion.h - - hash - - XnD3E9+NbghWDiChKuryYDmAHiY= - - hash2 - - WT4amhWtg7n7RJGHwb1VxCTQG00Oez5nvTXcTcMjwQU= - - - Headers/PTDiffusionAddTopicResult.h - - hash - - gHVMjofviSaatFXSyW9JNlQWXp8= - - hash2 - - TS5sw/m1fnDF4YSLpyOGfCHtwqBh+iR/Q2gCOQhPNtk= - - - Headers/PTDiffusionBasicHTTPProxyAuthentication.h - - hash - - tfRpT3SJrwnlUAWKk1zE5yStHPw= - - hash2 - - 9B2jRkMEMwVLYmX1JfaVKvnT0hJvMwtFQbymZA9GISM= - - - Headers/PTDiffusionBinary.h - - hash - - IRp9KLtwcW8Tpll50vOlqTnr5EE= - - hash2 - - 8awOvRGu2s1S2dUAQkbL2Nt69RPYztoHJuK0mGIRCgs= - - - Headers/PTDiffusionBinaryDelta.h - - hash - - eOisvnXJ+75WXktyVQV47X7+rss= - - hash2 - - Oe/2TNcVqxdtSucgkdz2vKCacrppBczFbLQlZiAhHbo= - - - Headers/PTDiffusionBinaryFetchResult.h - - hash - - wvBjyhM/oqwxn/TtgbMe0EG2/ZI= - - hash2 - - Fnq0zEK+ahTZSZ6vC2YxZCXg8MM2lAuvN7RWDvbCKpc= - - - Headers/PTDiffusionBinaryFetchTopicResult.h - - hash - - IvwIFegt3H60YtYjfDWclLgvXNs= - - hash2 - - yJIAGkF6/Npi40M9T+Jttberc+ji8NYq49viqRGsaeg= - - - Headers/PTDiffusionBinaryRequestDelegate.h - - hash - - HEW8gUfkpyJv9fIR56v7vBuyyew= - - hash2 - - mhf/B7Bv8xhRcVbDxRR2qthwvCO1wzYQ2KTXnMYQXwA= - - - Headers/PTDiffusionBinaryRequestStreamDelegate.h - - hash - - KwS77VkO7OynPdkPDICIvXVs7D0= - - hash2 - - uSLY8OoKHNV6to7SI8StYOvwwdVzffgDX9+pDiT3js8= - - - Headers/PTDiffusionBinarySessionResponseStreamDelegate.h - - hash - - k5Zben7VlzUyq1GbXRavPpnHbqo= - - hash2 - - A9oRfiGtK5Tl96csmgZwB/aq4BPzW3nrHPe0wWYQkTo= - - - Headers/PTDiffusionBinaryTimeSeriesEvent.h - - hash - - EQnUyyyh28i//lipgxgs018ju94= - - hash2 - - fcIW0UlvV394kM5GZt+R31MbLOCbU8Ur8HfkfS3vssQ= - - - Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h - - hash - - O3juN1/1h3CDQQ4OLiur7pBnGpU= - - hash2 - - yWbQzwQ+EZUScYLb8zco5JIEsF/EwPcnjvX+dynEU0w= - - - Headers/PTDiffusionBinaryTimeSeriesQueryResult.h - - hash - - koRVjwmJQXlw2dF2tu9WkNbU+H4= - - hash2 - - xVeLbB8dLyyPTf7RENK1FBaZrqjq+wR7FaaLnDDNdP4= - - - Headers/PTDiffusionBinaryUpdateStream.h - - hash - - 9gicGD1inPa6gTSXRqAjVdK8Jkg= - - hash2 - - kAC4IkG6w74cHgJqp5NSpm7osm8+pPS4mcLHK8YBDRY= - - - Headers/PTDiffusionBinaryValueStreamDelegate.h - - hash - - 8mXPY4qvKFwhC7seYe+krz0h3lM= - - hash2 - - zmm70JtWLjDAfGrW+Hg+1hdhZTUYzgOy163pfqKHToo= - - - Headers/PTDiffusionBranchMapping.h - - hash - - ZDKqttc6M9zzHagsXFo9g8XB820= - - hash2 - - kCE6/whwc0QlZKme0bnUatRXjbZlYAMZAYjUI6Slurg= - - - Headers/PTDiffusionBranchMappingTable.h - - hash - - w3tE+yV1eJmplAlpTXlnSgatTEQ= - - hash2 - - BNyVMROryypq0QDf2VPM7yoA8fhseG3FfRuQRQISUYQ= - - - Headers/PTDiffusionBranchMappingTableBuilder.h - - hash - - Bo0UbPi3YEKdi8QrRkzv5/jXyAg= - - hash2 - - S3DKwptXZm4O3wzugFvZztZ8s+8GmOVrqzUbAenQp6I= - - - Headers/PTDiffusionBytes.h - - hash - - M1Jnfw1hNGcI0Ib53U9zcbb1OjQ= - - hash2 - - uXUkViHfJ4TdmJd28rornnFO7HREe/TNquxr8z1o8XE= - - - Headers/PTDiffusionCancellable.h - - hash - - K1St0I86KSn20CSR1hF9y/kj9Nw= - - hash2 - - d+V0C1Ywc/dbT2BW8XSXOH/JyobjUkZJtRz329DzsNU= - - - Headers/PTDiffusionCheckRemoteServerResult.h - - hash - - rgJFAn1BZaXsAcy5G5KJrEnMUWw= - - hash2 - - 8CDz/xIThztVIkkXTLF4m/mH31DOSSOS8f1W00plYaQ= - - - Headers/PTDiffusionClientControlFeature.h - - hash - - 9bpwdrS7GGm74lz179pVIo/lbK0= - - hash2 - - /Ky2QFEiPxLKSAIwRNerEWf2BJ9UZJanVVpUgQYmKLQ= - - - Headers/PTDiffusionClientQueueEventListener.h - - hash - - TX7hq5YhAOlQWhLeXuuYjnymdnw= - - hash2 - - ByiZ14wNPeGYdu7zTlKQNK5ipVf7h0UaRZJtbbvmvvU= - - - Headers/PTDiffusionClientQueuePolicy.h - - hash - - XSlTBmdUr8g3vzk6IaTa9rfkSxE= - - hash2 - - aSaInkVfQwhPGDiaA8z9PzKF9UCVwDerV0u5bBKx1DA= - - - Headers/PTDiffusionCloseReason.h - - hash - - 4NP8EBJYodc7qbJuW1aIdBB79zk= - - hash2 - - wnNeQfWyv7HNJEYbO/Jr6GGSHYtaAvgy5k2KPa6a/p0= - - - Headers/PTDiffusionCreateRemoteServerResult.h - - hash - - lXIiFvo6+6+zkanzQdwlxRq9r30= - - hash2 - - QTiXTocmAFD5q2gcVYtefoO/ENMZyspjeVkHV5/Dhu0= - - - Headers/PTDiffusionCredentials.h - - hash - - Yswe6ZeE8pV1UWc47mhDM/vERCw= - - hash2 - - oRtpJ0w2P7n2wlu/BUrsLqY6koj4uoAr4N+zn5V4FaI= - - - Headers/PTDiffusionDataType.h - - hash - - X0jXK7KstA98ANZQNPxIX8PTYn8= - - hash2 - - t567SJPAIgfXGeZNBQLIPPvELrVta2jdn4lMG6/BplQ= - - - Headers/PTDiffusionDataTypes.h - - hash - - 59TS6+k/8iOzzVAsZvaljsHGQvM= - - hash2 - - WS2v6ksJjFJb+hzJOEUWRuuSLl+Ui9fyTSEhOpnrJsc= - - - Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h - - hash - - MQj3IR5A8XwhAVxD6odEfwVSUYE= - - hash2 - - yedGEJHDqdz3nTuh/xkwiJM5lBHuxKkCopw1x51MpPk= - - - Headers/PTDiffusionDefaultStreamDelegate.h - - hash - - kn2OYFoVYgbQZU8Z9uK0waIA+O0= - - hash2 - - rzKPbC0g4rhpTU1Ft1ANOf0yj2alrEltJy2WTY1XMqg= - - - Headers/PTDiffusionDefaultSubscriberStreamDelegate.h - - hash - - rL2HohjRlnrEkzhB0HaNM8/m3AU= - - hash2 - - 0jG4Grx7lrOjYgpM0LcHQzWM4zD3QFEQuXkkd2MOPTE= - - - Headers/PTDiffusionDefaultTopicNotificationListener.h - - hash - - pWqPn+PFv+aw8bXUBM/23Gd/2D0= - - hash2 - - ziBTBJTzYQsJT0Htj89e6GGUiyPGBnXZb2nuggtd8E4= - - - Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h - - hash - - +BkpBsYRzZxyPMpOsvLENEOWqoU= - - hash2 - - v0vFV8PG661Ft2pJno0Y0TNG3M11QBLLNE+QmwmenIQ= - - - Headers/PTDiffusionEnumeration.h - - hash - - 7IATJXBFV7kyC63oqJ92RUpXNDo= - - hash2 - - wKnksBhl0WY7q9XrtAtdaPLtnjrZjoxEDgcfNZW1/NI= - - - Headers/PTDiffusionError.h - - hash - - cECQ51CSMTZKw7m9wrI0PDkK0t8= - - hash2 - - TldcwDX43pUHimigwITWA3iT83Jtwl5kybXmaHghdt0= - - - Headers/PTDiffusionErrorListener.h - - hash - - wcUQ12PknR5uodl6vDNDQ72DwOI= - - hash2 - - WNfLulQNPuiLWXFN5gpJJXVCsHYbhgbg7cr7ObJ0xew= - - - Headers/PTDiffusionFeature.h - - hash - - l318/UIdPwcCgnimVAGGubfOgrM= - - hash2 - - dmtnuuax0hIwWwR+r9IyJzwSmWNeSeUINUgtIH1NdBE= - - - Headers/PTDiffusionFetchRequest.h - - hash - - EWXDvEo6JtGvPODJtVfziNCRgmM= - - hash2 - - SJwtCuVPugCVJzR+TkrnaQH5HfSy4ki27I2HZRO5Bq8= - - - Headers/PTDiffusionFetchResult.h - - hash - - 7besz8A6wioK/QNMWjwJlaVctIc= - - hash2 - - nGeJO+icrmvf+QpOmw8U99hl54nPEBK6u368XtkdLF8= - - - Headers/PTDiffusionFetchTopicResult.h - - hash - - n1swAjpJpvWNa7kigXb5lFG7qqM= - - hash2 - - /JmwyMyZ/id+Vgu5ilP1z8slyW31LDZRc4HLC9np9ZI= - - - Headers/PTDiffusionGetSessionPropertiesResult.h - - hash - - wf69YysbIJf2k3TljvR8nLnhguQ= - - hash2 - - fQacIcFj7MDgJWjbg8h05QKkjFsnShWofV2qYc6g2TQ= - - - Headers/PTDiffusionGlobalPermission.h - - hash - - hycq2LpFRepTNes5tWImHbyE+ug= - - hash2 - - YiGp6liFgtYsRc2ATGkl8EP/NNwolCHz2d8LK7D/l0I= - - - Headers/PTDiffusionHTTPAuthentication.h - - hash - - 04TrwbzPbN2tf29o6t+4QEOrt0Y= - - hash2 - - B9ooR2bWvmGoUefpEpnbb6aD8DUnkAatB5kZ361Biz4= - - - Headers/PTDiffusionHTTPAuthenticationChallenge.h - - hash - - xPb2ms4PfUEgQGe0TT84xAVC26Q= - - hash2 - - /Ofoff52yZxji2wWL5fTxkvPkLoAbkvGLCfl/sj5ZQs= - - - Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h - - hash - - q2tRtdUcvNI3qGrT1PCxPtRvru4= - - hash2 - - 3ktKbse4NFRW4JHGq+yL8WLHf8HzD03k9VHRGVMZ2Ag= - - - Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h - - hash - - womdRtmMruef+Qhl4fW6XdlikHg= - - hash2 - - 7AAYwPITp1pGRIyDUzaldAFSBlvHfp8oF78WQpTj8qo= - - - Headers/PTDiffusionHTTPProxyConfiguration.h - - hash - - X9Chg+yCwug1lN6YBajyxKDfDc0= - - hash2 - - Ydmd+v48fyYfLn7FaMIvaS4a4IPNfIvaKhVRQa/k+Y0= - - - Headers/PTDiffusionHTTPResponse.h - - hash - - APmuxxekiZOjirHbaSvuA3xFNfs= - - hash2 - - Y/52CRFO3UILqmbFrQkX2NCtD0fd1+7Q+iHQlGbImWY= - - - Headers/PTDiffusionJSON.h - - hash - - 13qELluVvXtpq/W5SEZTqXq2ZzE= - - hash2 - - P0Rdt9tjYqoTqukwq7T722xH7Vf9eWFobNMwXtCbqfM= - - - Headers/PTDiffusionJSONFetchResult.h - - hash - - /cK6X7hkNZboxNKluxhEUjRWIwQ= - - hash2 - - d8e4/qMsgGiwas2RcQMOqWzLJ44bvUXJFNwV66PclK0= - - - Headers/PTDiffusionJSONFetchTopicResult.h - - hash - - 5ZJnZTT2CH/QDZpKk0ONXpKcW2w= - - hash2 - - jvun989ZWLrFghxhCfACDWBq0HYAlh9Yl/3EyrupbWc= - - - Headers/PTDiffusionJSONPatchResult.h - - hash - - tINXQYyErrFXqwh3cnlfh3pO/9U= - - hash2 - - d8KtvIWpd5ixyviEX7ULyqICTlfjcNCD+wE0bk40fJc= - - - Headers/PTDiffusionJSONRequestDelegate.h - - hash - - PCVS7kwCps6n8WFRAo43sC639gc= - - hash2 - - qiXUcRdgS7mCTR0z9K7TTHzd8kvS9xiI8T7omS8vLy0= - - - Headers/PTDiffusionJSONRequestStreamDelegate.h - - hash - - h8fH9WCeCRvKmRZpgN4PoxGwXcM= - - hash2 - - dbHy1dWRaSnNVa1eDMQosdXVHcd8Hipl167boprO0Sc= - - - Headers/PTDiffusionJSONSessionResponseStreamDelegate.h - - hash - - 1NWVlpE/WCiY0Evzq9gaEeQDPxk= - - hash2 - - gF2agnkqc8b09dL5JKVq/Kl6PtJ+NaYFebt68QQMpRQ= - - - Headers/PTDiffusionJSONTimeSeriesEvent.h - - hash - - KqcX5DaBkiIwDyh5T1naEDsI+0U= - - hash2 - - f026jl/9mdUMn103LxtZNjSQaRCGSpxNTd7bro5cxmw= - - - Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h - - hash - - jaxYR2fpU2LZj60PBUkGoxLj5tg= - - hash2 - - UKewzLh6o80REgtjqPdtlM5A8pgAohYaIN5ktKea9As= - - - Headers/PTDiffusionJSONTimeSeriesQueryResult.h - - hash - - PiW4Sb/HeTzzBAj1znEyS16e7ns= - - hash2 - - JwUbmrzo7gI7yIRgdiLLhNk928jEoqI1c7CJZ8vF/TU= - - - Headers/PTDiffusionJSONUpdateStream.h - - hash - - j+kgT9TmBDSeeUhqvss6orxl+AE= - - hash2 - - 3Acr5+Yc80p0yEi8xDBAJVmFnL9RyTZLJ2vGAE2nvEk= - - - Headers/PTDiffusionJSONValueStreamDelegate.h - - hash - - f4o0O4ha63u/IckPbxgF2hi8ARM= - - hash2 - - M604wVcVo0BMNjlAbNHev3CN6AWVqCyvvEC9VX5zOcw= - - - Headers/PTDiffusionLogging.h - - hash - - rFCKP77Z13fl1Lqhyl8lr6PcRMs= - - hash2 - - Iky6l6bITC/5VR+ildPxe3mxDv6Rzs4kegA0v2hfHwQ= - - - Headers/PTDiffusionLoggingDestinationConfiguration.h - - hash - - 4axnkOhVG9/3OVR3yw3cr1owtyY= - - hash2 - - YhPj8YSVacrCVfYKLtS4UsBdWqXFp1dHVzB/J+rwGV0= - - - Headers/PTDiffusionLoggingLevel.h - - hash - - m0qdaXuRy1UIh4w9lBaMnB3kIU4= - - hash2 - - zsDV39ITI2hMqCOrSkGCNnComSTQ1ejnXiHP/P8ToZw= - - - Headers/PTDiffusionLoggingMessagePrinter.h - - hash - - spLTiRckY9p4svdpQ9fnqNIKW9g= - - hash2 - - KmsToaUAqvQZFz7vG5ihCvBlkEgvdZ4e2h41jk0NCP4= - - - Headers/PTDiffusionMessagingFeature.h - - hash - - TTsgX8TESXQMEA7KRqHoSCIfjUM= - - hash2 - - 9/QU1E19rNmjExft85HLvIaCZw2JqbpNgDfP2Ak1SPo= - - - Headers/PTDiffusionMetricCollector.h - - hash - - Q0hI/n0EHo+6+kg2ZMhq9zm9TxU= - - hash2 - - yjnIq+jiTS0KByV1wOQx7C9FTrrpS6Qoi3BDmEMSArc= - - - Headers/PTDiffusionMetricCollectorBuilder.h - - hash - - yQmzqI6Di3RfWUoGBKz4RvnEedE= - - hash2 - - ITjrz7XUnCELYwMCkInz99crKJ1M6JvisFwZzJZd0WY= - - - Headers/PTDiffusionMetricsFeature.h - - hash - - ulonYz17A9TEyp+Wdbeg2UTFN4A= - - hash2 - - 0TiUrWOPBvksneZ5pF5efoyKniVlFINOSiojkFPCekA= - - - Headers/PTDiffusionMissingTopicHandler.h - - hash - - jJ9PsG+P1IDcxXLERBJYcolAZEw= - - hash2 - - z7MsEv+goIXU9e0bQ8PInmS8lEO9cg3ir8ZN4r6JVcQ= - - - Headers/PTDiffusionMissingTopicNotification.h - - hash - - f+zhLyj+cKWNZWfwqYAIPYMXn9M= - - hash2 - - X02QdNUXH7P8LUOUFyPpXQLE1QIjd9w267lvAHDEuQo= - - - Headers/PTDiffusionMutableRecordV2Model.h - - hash - - rX77Q+p6Z24SD2B1WwDJaVT7OFk= - - hash2 - - Mp7TJN4Tbpg+yiWGTrtrmrmGQKPoPUURWlZ0BAvRNeQ= - - - Headers/PTDiffusionNumberFetchResult.h - - hash - - vkpfm8kei5FeQJjA8TvBzF1NJ70= - - hash2 - - F+JSs70HK7RVrn3vk37zTYx35LlQce1sHP8yY38SqIA= - - - Headers/PTDiffusionNumberFetchTopicResult.h - - hash - - 9juTPAfvGmI/eSDqGWc9Pe2k9FY= - - hash2 - - ryELDJSZgI4kWmcZTOFGn6ldwfeIG+yCSfOEXPK8NG0= - - - Headers/PTDiffusionNumberRequestDelegate.h - - hash - - MaDH0rclSd1xFLM9nY2nAH2LzBY= - - hash2 - - 2fNFFT1Bu39ILrHNkzlkYcP3s5x8rrrV7l0UNqQ32SM= - - - Headers/PTDiffusionNumberRequestStreamDelegate.h - - hash - - DHwutv+bacmUxpxcu7owxikDewQ= - - hash2 - - uw+qq0fUmnqEpfcnKjPwQFId3k1u1SVujVOmbE5OC6I= - - - Headers/PTDiffusionNumberSessionResponseStreamDelegate.h - - hash - - UFwJKoii3V/0nunrBQGderRkUFc= - - hash2 - - G1aJVh+sBazHyHqgrCGzgi5aoy0ej9ceey9OMkMtAoE= - - - Headers/PTDiffusionNumberTimeSeriesEvent.h - - hash - - 0qbeP+41+bMjUTgdEC0cGT9P01o= - - hash2 - - ntYgIg8cExcfFBFowEyO+RzYSJ4L6h1fEgHZB2fC7wc= - - - Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h - - hash - - u/s/wzNKMdkxsmzwoAhjiE33lPo= - - hash2 - - t5ih4v+6zF7dLNPNyptkXumB901ymB+rIq5ooMpNuzk= - - - Headers/PTDiffusionNumberTimeSeriesQueryResult.h - - hash - - FJhjeCt9g0rbkhCvc19H+cu2D9o= - - hash2 - - oVPqdCcXySKbsRe4cwFQuljafdag8G6QYsehgOMQkqg= - - - Headers/PTDiffusionNumberUpdateStream.h - - hash - - xMiLZqNEjNcJlieyWRVOp6wHijk= - - hash2 - - RcYHynYIxmymcU8SOZo+79tVdjxNFILYYEUeNlhYs+c= - - - Headers/PTDiffusionNumberValueStreamDelegate.h - - hash - - UFSzUpxbZElKE3zzbkkG7LpoigI= - - hash2 - - iWpj4aoRfuwWOYX+87DF1zRQG+5aGepikxUd8BMf7Gw= - - - Headers/PTDiffusionPartialJSONUpdateConstraint.h - - hash - - 4Kg285/tvd0sddVplu8XznOumGM= - - hash2 - - XvTW0FeO0ZMA+y0hnyr9czEI6A2l9Mtc9p66H1a3nz4= - - - Headers/PTDiffusionPathPermission.h - - hash - - YduEOO1T2Kmw+7Vv7VGa0EtFmSg= - - hash2 - - DTE49P341kYFb4XdSkbVCWZlkZFLHAPtz2wYHjHMx9c= - - - Headers/PTDiffusionPingDetails.h - - hash - - s/YUpu02id3IaJL0naBecz13Ndk= - - hash2 - - 9h1WRqMX/WLmLopcGjRYGsdcI40MMGXNSRVClRKQWHE= - - - Headers/PTDiffusionPingsFeature.h - - hash - - ToR+BKQy2x1CjT7TWkSqkE7OxK0= - - hash2 - - KlNB3eR29yLgjbfeZxGPhT7PH8TzrEfv/qJAEHGn5WY= - - - Headers/PTDiffusionPrimitive.h - - hash - - nqrWaohoh0ja6D8iSB5EogVkhZ8= - - hash2 - - RDOFmSyUPfDSo7HfjnKXX4q14tRbZh3LfZT5iGSRBK4= - - - Headers/PTDiffusionRecordV2.h - - hash - - rCmHMFagwu8wmS3Mg+Q8gNX42tc= - - hash2 - - McJ3u2/bLoILUu1hW6LoALw0XXbX0OPaMYBMpvTtNb0= - - - Headers/PTDiffusionRecordV2Builder.h - - hash - - QEgiu1leq3oUSasXj9rVYB+ezcU= - - hash2 - - kbqO0aFLALM2TPc/a2N8U/8+yS+vJTr+vwpRFJt7+PI= - - - Headers/PTDiffusionRecordV2Delta.h - - hash - - Z2XlkG872AlE7BF2yN1gK6KJYGY= - - hash2 - - L7guOOpPIRzjgyJyBgCAt9xpBokenaaWAcwKZAl8D+0= - - - Headers/PTDiffusionRecordV2DeltaChange.h - - hash - - amKMt7zzKuisiAGSS4o/dO/gfiU= - - hash2 - - Z59mhojsI4dH4L+JBXi4lXrBoo7T2jnMdWwY231V2n8= - - - Headers/PTDiffusionRecordV2DeltaChangeType.h - - hash - - OsT1NCWxWtKjjBpy4r1q0B3F1Bw= - - hash2 - - oge3Z5lBEvPBMTottPwGbY8PxT1lN41wyWLJu0zT7CQ= - - - Headers/PTDiffusionRecordV2FetchResult.h - - hash - - INjNAOczxQqEx4cy41iwA7LWpZI= - - hash2 - - lO1DT9Vw+l7o0xmjf2r+jLp7zca4eNfThh6Z/89xI3M= - - - Headers/PTDiffusionRecordV2FetchTopicResult.h - - hash - - TMD9NYUqaJtfxtXYpEUiQ8ABwtw= - - hash2 - - 1YAhsVu5OkFmpdc4k+Vj+TmuItfYGUXvcVTqKnKmmbU= - - - Headers/PTDiffusionRecordV2Model.h - - hash - - YqTtIkx9UL9qI3MgaOYdE1Pqw1A= - - hash2 - - bLtqQ/gSGKmNuoXNIavImap4bRfH3X2CsPMraQAYW8Y= - - - Headers/PTDiffusionRecordV2RequestDelegate.h - - hash - - 5tja6Pl/xjl/EMBW0e7uHg9d8CE= - - hash2 - - OSRQjy/uO+BV9b8/q0WWORAzeFWd0NMEe+OQazPQf6I= - - - Headers/PTDiffusionRecordV2RequestStreamDelegate.h - - hash - - V/Jv9xOUHnVpx96N1WiFfvG4gTk= - - hash2 - - A+d/1S63fEq+qUrxLvTkl6kWAoDqbMmx8m4R90iRyg8= - - - Headers/PTDiffusionRecordV2Schema.h - - hash - - cp/B01S2/f9tf7igoMi6A+0O/Tc= - - hash2 - - LeHNYAN0jUEsWAzXShrkmLzK7nihrbZWTvhHwIiYV6I= - - - Headers/PTDiffusionRecordV2SchemaBuilder.h - - hash - - ZhIcXpXr8oL0a1OLwiwrrTcYjlA= - - hash2 - - B/O3kRZU2nSBNiNRBfvT/Ck722xsTpGpyW8LCZ0JQ48= - - - Headers/PTDiffusionRecordV2SchemaField.h - - hash - - /jeQVC5riz+T4TfX5uvh46LwDDw= - - hash2 - - PQFKoZ9EWYYbMUPczmRdgR7VYQOWgfxJ5H44kPqragU= - - - Headers/PTDiffusionRecordV2SchemaFieldType.h - - hash - - rUb1lnPxYyaoGiVc0+kXFJ7Y7Tw= - - hash2 - - BgqzEJ9b+COw4NHnBcrF3U2kmdSEfFso8djLgYBdV8I= - - - Headers/PTDiffusionRecordV2SchemaNode.h - - hash - - QRe83a+5IaaOgHgPRNl/i6vwXnU= - - hash2 - - rNKswsjiWBWhSKrTBc0AvalqNc2R9/+GGYTkqnnTccw= - - - Headers/PTDiffusionRecordV2SchemaRecord.h - - hash - - TnFwYILZgo+/FVeim2AOace5hCw= - - hash2 - - 1QPnGg0QUxjNFo6nfayD5yrhYqQWFW12jy2AOez9DQw= - - - Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h - - hash - - wHWllniW8bHydKIMRghh+B9pBNc= - - hash2 - - UZEKnK9sZLeJnNnfOiddEbHpfT7InkXTXb8IoKCfB34= - - - Headers/PTDiffusionRecordV2TimeSeriesEvent.h - - hash - - 8nW8wilb7VSbwoirdb8YXPUoXwc= - - hash2 - - C0gL/TPg1RM04ZSZZcwO+5RzfB/6rLCGfHiKELYhWEw= - - - Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h - - hash - - 5eqp6nK4/+8/p3Iaq6RYs2A67ac= - - hash2 - - IOqyrhBj5e27RGZv2/zPLFfPzLOa92HhtnJSL2LizYQ= - - - Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h - - hash - - Pmj2xpyYBWs4WOlPNMtQDKFt1po= - - hash2 - - ihMZz6aqPagWix2ilZhrNixtPBVz1J5gFUSx/6fHGec= - - - Headers/PTDiffusionRecordV2UpdateStream.h - - hash - - Y0a4Rv+Rjy+bPGlHY4MaiXDvzgE= - - hash2 - - kN0sogJm8z97fIOzzywjVeLouSGRSnj3QIqt0beQMzg= - - - Headers/PTDiffusionRecordV2ValueStreamDelegate.h - - hash - - QVYIHzmU7JnguRZStV2xfYFe+SM= - - hash2 - - sx3eyoG8xnGpUB69imBnY+qiAg9JfVw0ggYzzkgDbcw= - - - Headers/PTDiffusionRegistration.h - - hash - - LGwiK+YsT6bBbaxQbi07AVArkms= - - hash2 - - /fw7FyAdyzmugjU4+5/vS7TnapryqyZAyYK1/lyI908= - - - Headers/PTDiffusionRemoteServer.h - - hash - - tP1e8puvRCc3D98M2wIel8k9sms= - - hash2 - - puIFVIDvNoaDo929UvzfQPhRzHZTtWkqN/WGZLy6fB0= - - - Headers/PTDiffusionRemoteServerBuilder.h - - hash - - dGgKIOzLscYH0Kd+q0Efp8IjDpc= - - hash2 - - pUszGkxP+a/JbCZefTpZSGIot0KsA9enBe/25WdmYcY= - - - Headers/PTDiffusionRemoteServerConnectionOption.h - - hash - - ITjyZnacokkituioSBE8DhLXd8Q= - - hash2 - - NLenmJCy6U1pZoVxiYN2Km9JjN4PorWO5axqXSQYPws= - - - Headers/PTDiffusionRemoteServerConnectionState.h - - hash - - YKFO+vf7p2q4zct1FRpSTINM89c= - - hash2 - - XqnhvAqC9NYx0svsYXd4rPjtfOzsWTethpkUgb6Wgk0= - - - Headers/PTDiffusionRemoteServersFeature.h - - hash - - 3Prda4oNHqXUzM+2U22Vo3u2sRM= - - hash2 - - jJEqREhxVAGRZkUUJbXwi5q6iFNaUmUVffrMPWcWcec= - - - Headers/PTDiffusionRequest.h - - hash - - iBXHk0CN0V4H9TfvFlQgi/TXa6I= - - hash2 - - 1D1r3iVYAShdtGkw6SdHcTsXrHIsGXNBzcwzx4FHMHM= - - - Headers/PTDiffusionRequestContext.h - - hash - - qxw2kG8mwhMOqbAw9ZcSwMgE6/k= - - hash2 - - PZ+PEV2ygYNQAcIvjDt2UmELSBOpW4/IbwN5PBxrhPo= - - - Headers/PTDiffusionRequestHandler.h - - hash - - XmYRoiMjYnjmqFsrRj+Ocq9rZdU= - - hash2 - - rgOHp1VCSIkXw0SrmaPmxjlkBTRbWS/L4/1JRW8Jaac= - - - Headers/PTDiffusionRequestStream.h - - hash - - qm5369ZeGnWQIKkO1xGqW93f0zM= - - hash2 - - NuRPmImge3Vf3x+Xl8pIGvRCmpdCMzk7vPxtX2upPDY= - - - Headers/PTDiffusionResponder.h - - hash - - SQPU0jg5rEhY53sQfJBDoMRLoeQ= - - hash2 - - riQyM5q6dLJHwPJuh7jIr/aM+P5biTeOhQPYxV7sHy8= - - - Headers/PTDiffusionResponse.h - - hash - - UhIeKy+CRs4T2zTGFphGm1OzMQU= - - hash2 - - YNRB/Q0hMT4CGHdtVdYblO6/1ATcgFBlrm95Z5jvsMA= - - - Headers/PTDiffusionSecurityFeature.h - - hash - - r3/W67iYxvPHeteE6OMX+4ROxLU= - - hash2 - - z6qqOhPFPZgIdA3SsZFLlrGmoSBzrg4Vach5QEHDqBo= - - - Headers/PTDiffusionSendDeliveryPriority.h - - hash - - 5verWwhZ36ChGa7vv+1M8PP8Rt8= - - hash2 - - P8lUuY8dzJotFCyr1YyOifq4kmNYZQLYIfHIn7kePp8= - - - Headers/PTDiffusionSession.h - - hash - - K4ufrMdrBR/6eUlFVBsL4YNlpkw= - - hash2 - - 37UpfQ4QviJPz90/H+eVkIMrL6ff+IalOAKbA1ZqXs8= - - - Headers/PTDiffusionSessionConfiguration.h - - hash - - cjTtORO4pfSJOpVygL/iuUmTLfE= - - hash2 - - H2cxWdtltgeyiqCyQy+7NveGUUoVb1SK1R8vOLQXYso= - - - Headers/PTDiffusionSessionError.h - - hash - - /sDYNWbyKXRgx2xjLLXdtDk8uMw= - - hash2 - - +Q5rNi73pWx6+q3YhFJpm9hO1Ba1VWnriAFZb2OmH9g= - - - Headers/PTDiffusionSessionId.h - - hash - - oyP1ZP8tiqVh+RtjUsOFCD36SbM= - - hash2 - - J/+vE7jn++HZfXSRf9mx7uemIupYVhtRtFmOl/crL0k= - - - Headers/PTDiffusionSessionLock.h - - hash - - +pRVtSlOo4nwFJAxLx7rRQ1bFBE= - - hash2 - - 1kVzjUr19mRfH3mjq/SDmQE4QUtD7NMXRmW2V9XlTEg= - - - Headers/PTDiffusionSessionLockAttempt.h - - hash - - zDG2rmmh4HQqat13XIARd2gpyp4= - - hash2 - - 7Qxg9Cq8bB9OGOhGfm7V9vXpLP5/AvmvkOx+UDTeWeY= - - - Headers/PTDiffusionSessionLockScope.h - - hash - - B+/qZhcMyw+RQI5MTzMR+SKqF8M= - - hash2 - - eqwbvTvGikz3/e4eogPGBJUXeGhNV8dQOmB6uWum7qw= - - - Headers/PTDiffusionSessionMetricCollector.h - - hash - - r/Zt7XdN0mfHzv6oKpiC0OXqrxw= - - hash2 - - NsRO+4UBUdido/Z4IGu85JgySXjhmKQ0z3a3fztteOc= - - - Headers/PTDiffusionSessionMetricCollectorBuilder.h - - hash - - talQ04uHilmK6CHOlES9BepGWkk= - - hash2 - - P8p+TKpwml2q3JCQw5855Jb/pZ0KqrRgL/MHqRBCKVg= - - - Headers/PTDiffusionSessionPropertiesDelegate.h - - hash - - Zmm4SJs443B/Ed0GSpRps6zTviA= - - hash2 - - tzco0p9SYApWIime3+WH7JB68fbzpeWaTSEJYEMDqVA= - - - Headers/PTDiffusionSessionPropertiesListenerRegistration.h - - hash - - T5YzTXQWyd4mNDDwbkWXSNh9tQg= - - hash2 - - ywHpN7WRBoxH1vff8wRStNd/kGYda0DcFwEmRCItZsk= - - - Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h - - hash - - DG9AN818s/C+5ehY39mIwXSvCNk= - - hash2 - - 4Z6fSIhnwcSYiZR1+/p6cZufp7LeYtHGgs8d47DzK1I= - - - Headers/PTDiffusionSessionReconnectionAttempt.h - - hash - - R91QcHqYATJhv8hKoDoQbWbdMDo= - - hash2 - - YO23M6KlqvkG/Y/qN9anZIQK3J7cSKAXr5Tl7Tgzp5Y= - - - Headers/PTDiffusionSessionReconnectionStrategy.h - - hash - - PrgSLAcm+88cWPctmusCFsADB8M= - - hash2 - - M8tPHVUp7N0ja0SJC+irr1LZg0YMkk5Dva7CjOYA30I= - - - Headers/PTDiffusionSessionResponseStream.h - - hash - - TFbOIDOggRw+LezkWA7RLjZNDRA= - - hash2 - - /JXUQZQL1WH4zzMtawBxc8cll1rsR+/N1043M/QW3t8= - - - Headers/PTDiffusionSessionResponseStreamDelegate.h - - hash - - fl2RAQgYo+kqHlgIUD5JDuzX/VA= - - hash2 - - DsTHLPRsTPZg6QHzyclrZ0WH/mRt5v/YwZ7g527/lmE= - - - Headers/PTDiffusionSessionState.h - - hash - - D7PBX4cf+PMCbTETtIfiwDZdUs4= - - hash2 - - Kbakvtxdu/fA43Ed/BjK0hVR0FVT2b8/D49em6+wZUc= - - - Headers/PTDiffusionSessionStateChange.h - - hash - - kH2ACmvz/J2676PpkVCDrOmYXoM= - - hash2 - - BBBArTvfiEFL6oiFj/41zNNlT1njYY1vYoI+nQ8bMAI= - - - Headers/PTDiffusionSessionTreesFeature.h - - hash - - yLxcurXzmLYnoF40EUkeQ1Wjdn8= - - hash2 - - 6voybta1zQJcZyRA/HJOZchUhPyf0Vjcyo9psnJZDuA= - - - Headers/PTDiffusionSetSessionPropertiesResult.h - - hash - - AOCaIej6BlQ6Lk/b3gQguGFo7vE= - - hash2 - - +IygM21qDTih0RTOpjmv8oxit4hVzTMwtNgCyCH5NVk= - - - Headers/PTDiffusionStream.h - - hash - - rDmcy+gFQLG4u371AOzTrt8fnZc= - - hash2 - - OquMbs9jXcZ0/fVIvH+RsTHImbCwoPpN96YYPMLcIhc= - - - Headers/PTDiffusionStreamDelegate.h - - hash - - ePW4fuh5cMZxSyFRc3beuTOlpxg= - - hash2 - - RTKGdQk1l3twac14AsIuM9dC8e5fhB1P0CaJH6nHNsI= - - - Headers/PTDiffusionStringFetchResult.h - - hash - - GIweI8KVClgVTBpcOBGKqU2Q8OA= - - hash2 - - iScsJF+yUkJMSMGb+P70xaiKit/RnocgutNK6Eafjms= - - - Headers/PTDiffusionStringFetchTopicResult.h - - hash - - 7qisXZm9jhg0Y5fMDyVWzx65oy0= - - hash2 - - yRUHXY9ID0T+cHhcu05vDj/Q8f5XewKStovmsJJfg5o= - - - Headers/PTDiffusionStringRequestDelegate.h - - hash - - EN/WRMBYCSI21ohKnQzSsENswas= - - hash2 - - sVm5YGWk4jbyYv4hlks1KQPYZm/Wj9HB4JtBYLrjfXw= - - - Headers/PTDiffusionStringRequestStreamDelegate.h - - hash - - Sbfe0TtEgYds3b3MYM6tqQaNhXg= - - hash2 - - NldLf7GUHmJTWAuOoyjAqyfDQ6IRpqKW/rw+BavdQs0= - - - Headers/PTDiffusionStringSessionResponseStreamDelegate.h - - hash - - 74IsG6YvQIagZxhmwxZyKJGxw4w= - - hash2 - - dIXuP7RC6K8KO1689SrR5VijdM4Guiml+63AgVu3oDE= - - - Headers/PTDiffusionStringTimeSeriesEvent.h - - hash - - 1NQ2QsLa1qI8t2LXjuem4yF+llQ= - - hash2 - - FVcLjhf5UzkYCTpXLw9ypb4uPWPs9y8O1szJXXERdR0= - - - Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h - - hash - - 4qsI0k8nCf4N+Nz/FMynawnaygM= - - hash2 - - JRu3roXY1J+cuVEwUYMCJnzDaalziDbiFvmMqu0sFEQ= - - - Headers/PTDiffusionStringTimeSeriesQueryResult.h - - hash - - zumPNOhfHhpy4bsA5zSFE71XvJQ= - - hash2 - - drSETpxCvXvczEAlpPKawLglX02OHH/GPatIi9FbFR8= - - - Headers/PTDiffusionStringUpdateStream.h - - hash - - s7gAMaCr5wMoDUpdrY4/YQ1yaJM= - - hash2 - - a9SXqo11AZAX3NJne0XJt1649MIf4ieBpKn8y8kzMys= - - - Headers/PTDiffusionStringValueStreamDelegate.h - - hash - - a7UMtigs/ys7HE/CZ8/KHEyHWsQ= - - hash2 - - rYE908yYBw327klyOltj8s7/3zSIiqzZ82pRuzbi1kY= - - - Headers/PTDiffusionSubscriberStreamDelegate.h - - hash - - wDl6dH5JGxIwojmEV1M/8prrOgU= - - hash2 - - itqgplYgEs2CoIpFuF0TeTAvtLGMxrP39cEw+TcjEGY= - - - Headers/PTDiffusionSubscriptionControlFeature.h - - hash - - coLOg32pomsy6EhJOOH505Qv8NA= - - hash2 - - g/RudrAUkgwmnIfzrdBMeA72i0ipTmt4v7DigQ+j800= - - - Headers/PTDiffusionSubscriptionRoutingRequest.h - - hash - - bh6oZPo6Q9ckwiOGwLtgxhRJf1c= - - hash2 - - ypi7uoPa9zoUHojlKPyocBYMB37JNgezBRfjOIK4K2Q= - - - Headers/PTDiffusionSubscriptionRoutingRequestHandler.h - - hash - - 9jnRMtx9K8HdPuXG+znth3M0aGE= - - hash2 - - Q70WIM3Mqaq3dqSUMnC2AldPwtv5fgtYm8bGuod+UaA= - - - Headers/PTDiffusionTimeSeriesEvent.h - - hash - - EUo8rlUN7L4Vb0ApCRQc0QvyDKI= - - hash2 - - 97vCHRcjqT7uKfcSO9Ys4RsI6v7ZSH7qPwnAX9Di/VY= - - - Headers/PTDiffusionTimeSeriesEventMetadata.h - - hash - - K3z4tHb6R+DJ5TS7Zn7KTSuV3aQ= - - hash2 - - CzAl0sN+oQ07Gf4dwGQyaNBx6NuB7mPXQUsSP+9DCp4= - - - Headers/PTDiffusionTimeSeriesFeature.h - - hash - - kRQvWpGJ5/+mq+wKgZn1UFU+aEc= - - hash2 - - ye0OOkiUHe3N0n4B18mkrE5tiDW8JaJlEIgSk4itzIA= - - - Headers/PTDiffusionTimeSeriesFetchResult.h - - hash - - MvAjs5LXtdh3OO3tOuSA04LMM1k= - - hash2 - - 364c4eAqt3TZfuyxQUU/jJfSxkmEmqvdjiSSyHPC+58= - - - Headers/PTDiffusionTimeSeriesFetchTopicResult.h - - hash - - yp6pe18HJ/EGJmpbh+6s7NLZ7pU= - - hash2 - - 8BeXhDKuElnBgYAnaGN+0q99SidHj4GPqy2mDGnTvB4= - - - Headers/PTDiffusionTimeSeriesQueryResult.h - - hash - - gG4FAopvIEIBP0fMvPbOLS83u98= - - hash2 - - F0a8u/EEZ6VlWAxFABVFbMi6Ms0h0UmR56WaaOH4ubw= - - - Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h - - hash - - DvpP6DS6eAyk+aCqkqWb3iigDxs= - - hash2 - - Mw1+1YCFwn0dlb2fDs/LBpf8EmCBoPlHOUxhl7NTXfQ= - - - Headers/PTDiffusionTimeSeriesRangeQuery.h - - hash - - W/tKg/AWIskigFCtEjJRnm+TmXc= - - hash2 - - oXGcbB52rvoGAIFba+3plNyY2meLjW25+PKTXNsVcMQ= - - - Headers/PTDiffusionTopicControlFeature.h - - hash - - WtrzrcDtqjI42rwsqH/19Vd1VCk= - - hash2 - - r6nw88gBv8+MqASQ0Q5wqrafP3c5a4bG20dKeAVh9s4= - - - Headers/PTDiffusionTopicCreationResult.h - - hash - - HSAGnfPszx9efRtpwwVWOIoTd/o= - - hash2 - - EhpYsxuOUlHPVaE/Fg/SeVil51mEO2QM5MW8x38pPFw= - - - Headers/PTDiffusionTopicMetricCollector.h - - hash - - kPmr2niRnxmnK+WEyGTHpQSy94I= - - hash2 - - CUDXZdj/kKN8IE1emun6dqOp+ajEFVG0Txfc0cEzCj8= - - - Headers/PTDiffusionTopicMetricCollectorBuilder.h - - hash - - sHHk1WUF3Z4/PJSf1bOsvhKM25w= - - hash2 - - +47IgEXxUk98VJhVdtTzGnLZni4floIx32vpjXD0d18= - - - Headers/PTDiffusionTopicNotificationListener.h - - hash - - hZTc6cym7qmNF9lVtC5R8cw4FMI= - - hash2 - - NY+JZ6aNwMND735hkY+dGOTnbYaTWTW4X2/UWE9h2TA= - - - Headers/PTDiffusionTopicNotificationRegistration.h - - hash - - +z4j7niWHEOMtD8Q+7iljLXUHkU= - - hash2 - - XFZRQ4OdjKY1xFGV/TcwJrnCm4K7v3MC4a6nsfz4mwI= - - - Headers/PTDiffusionTopicNotificationType.h - - hash - - P/gSFu8kqdKZP1GErdycrZWxe8Y= - - hash2 - - BdcYCXge2aneTMdtz7N7EnLg7RAKxGJS4ZYbiy+CZGg= - - - Headers/PTDiffusionTopicNotificationsFeature.h - - hash - - cOpzyzMcUYS9Rswys88ul8VxKtc= - - hash2 - - x/S9lKmn2cVcwpVewElZP+vkC9XsBpK8j43C5WTATpE= - - - Headers/PTDiffusionTopicPermission.h - - hash - - ToIfuMW32GNijiIbh7HZyDC4MBg= - - hash2 - - bhkm8653HOfvCBW4cHOAu3PXsR73xqC7LtgwIjXoBjA= - - - Headers/PTDiffusionTopicRemovalResult.h - - hash - - OGJ85IHK6RKAeL3lQBmxgeRms9E= - - hash2 - - fxq1LeEeEWlwIODGxIVcELQF+fFknYm1iOqm7+epKfc= - - - Headers/PTDiffusionTopicSelector.h - - hash - - PvLuO6ABp5SdMAkZALFuqj6FPk0= - - hash2 - - XnNCiSKVNs816fSnzAKlgEsCcibEYT3QtDZD91NtiP4= - - - Headers/PTDiffusionTopicSpecification.h - - hash - - 6T6nTGbvX3owIJsYdwSEQeIz6KI= - - hash2 - - 6/u6TjEAtna5auIZnZonbeGvBDeAud/ACWp0s5uhruA= - - - Headers/PTDiffusionTopicTreeRegistration.h - - hash - - geRzJEq1yPFwf5jz0mNoxXMtLok= - - hash2 - - Ggz+bePtETeeiietlUZYWnGGj5sZ7vaIrwJKJ4SI9+M= - - - Headers/PTDiffusionTopicTreeRegistrationDelegate.h - - hash - - bJmglUQThguySqQY/0RZIdSn758= - - hash2 - - 8wf0iSrww7kBrC7NQdI52PP1KzFXNc7DqLQSB/ZDzTc= - - - Headers/PTDiffusionTopicType.h - - hash - - mY6IRMiXMRWQq+a/0cO8jlp/wPw= - - hash2 - - Esy/uXBR+Su4h3uJlMd2lrwCYoc93CeDNsydn/ee+WY= - - - Headers/PTDiffusionTopicUnsubscriptionReason.h - - hash - - X5fsyCzYm1au3UTJLOJV547sfT8= - - hash2 - - 505yxoqyGKB6p3KW1x74uejSKPtVspVyz/3HYrmpFyQ= - - - Headers/PTDiffusionTopicUpdateFeature.h - - hash - - fGaZOiKa69O1PnrUxN+BIKtHCwY= - - hash2 - - Pnh7vcziF9yfzR5VagR3Ak/4LccCL4W/rdWcHvwiyZM= - - - Headers/PTDiffusionTopicView.h - - hash - - RNHKeU6rwo7Y8caMk40vHJ9WOl4= - - hash2 - - cq77Pu8R3aJSLnEaiJn1myGkvoLfyz+Af84llfG7FVk= - - - Headers/PTDiffusionTopicViewsFeature.h - - hash - - 1jM2LY+xS60EBqCGtHhC4WxQdv4= - - hash2 - - 2VcRpxrNCTQ9xI/G2o3KdoFb9pRLrwxum0nGJwKmISk= - - - Headers/PTDiffusionTopicsFeature.h - - hash - - oucx5fp8VB3Ck/BuDgoSHj59a4g= - - hash2 - - sHvk36QYKh/Ye46RvgvZqciETRHFt4OZQEBnwn2o0os= - - - Headers/PTDiffusionUpdateConstraint.h - - hash - - WgubOT3cRcshVldoHPR5oATeZbk= - - hash2 - - 0nb1Of6Kfc61MDmtDqnriTxUaLxM/Yb/rQ0y44m8M2U= - - - Headers/PTDiffusionUpdateStream.h - - hash - - Q51eU6LsCptV2OMM0Oc1kbntKmc= - - hash2 - - fcmZ6i59/7l/GRY7gm2xrkykMmLDCeI2bWkYXOy8y8Y= - - - Headers/PTDiffusionValueStream.h - - hash - - vmLkEfveOrPcHBpupS8osA0+OAI= - - hash2 - - 2UDxwsKitVygyFLRxEBy/K1udXbMAJWPfUq5Xnsy9P8= - - - Headers/PTDiffusionVersion.h - - hash - - B7GoZ+3T6mv21Fy27HaP3q0r3FY= - - hash2 - - XJ59U7yc7z/CEo8dOcxQ1ybieeK7tx3IHe/vaZmVWbA= - - - Modules/module.modulemap - - hash - - q330/OkSKLLkRwoC2kdB1e4qTEQ= - - hash2 - - IOdf2zvMpEjPRyI0O/jRrRe4UhkqYb+0eyRNsRwyyZE= - - - error_descriptions.plist - - hash - - 1QALYuZesU81TxtP94AljMMQUoQ= - - hash2 - - PO9F/SQw6z+wn01Z0VjjtiStciZtTNKROQA70keja1w= - - - - rules - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/error_descriptions.plist b/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/error_descriptions.plist deleted file mode 100644 index 0855770..0000000 Binary files a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/error_descriptions.plist and /dev/null differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Diffusion b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Diffusion new file mode 100755 index 0000000..2e9eeae Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Diffusion differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h new file mode 100644 index 0000000..4a29369 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h @@ -0,0 +1,215 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +/** + @file Diffusion.h + + Framework umbrella header file. + */ + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h new file mode 100644 index 0000000..c1be496 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h @@ -0,0 +1,99 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @file PTDiffusion.h + + Collection of utility functions + */ + +/** + Escapes special characters in a string that is to be used within a topic + property or a @ref md_session_filters "session filter". + + This is a convenience method which inserts an escape character `\` before any + of the special characters `'`, `"` or `\`. + + @param string The string to be escaped. + + @return The string value with escape characters inserted as appropriate. + + @exception NSInvalidArgumentException If the given string is `nil`. + + @since 6.1 + */ +NSString* PTDiffusionEscape(NSString * string); + +/** + Converts a string of the format required by the + PTDiffusionSession#rolesPropertyKey into a set of strings. + + @param string Quoted roles, separated by whitespace or commas. + + @param roles If successful, upon return contains the set of roles. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return An immutable set of roles. + + @since 6.2 + */ +BOOL PTDiffusionRolesFromString(NSString * string, NSSet *_Nullable *_Nonnull roles, NSError ** error); + +/** + Converts a set of authorisation roles to the string format required by the + PTDiffusionSession#rolesPropertyKey. + + @param roles The roles to format. + + @return A string representation of the supplied roles. + + @since 6.2 + */ +NSString* PTDiffusionStringFromRoles(NSSet * roles); + +/** + The value assigned to the `domain` property of NSError objects generated from + some methods in the Diffusion API. + + @since 6.2 + + @deprecated since 6.7 Error domains have been converged into PTDiffusion. + */ +extern NSString *const PTDiffusionErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + Values assigned to the `code` property of NSError objects generated from some + methods in the Diffusion API. + + @since 6.2 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionErrorCode) { + /** + The string supplied has been encoded incorrectly. + + @deprecated since 6.7 Use PTDiffusionError_MisquotedInput instead. + + @since 6.2 + */ + PTDiffusionErrorCode_MisquotedInput __deprecated_enum_msg("Use PTDiffusionError_MisquotedInput instead.") = 1, +}; + + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h new file mode 100644 index 0000000..e084fef --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The result of adding a topic. + + @see PTDiffusionTopicControlFeature + + @since 6.1 + */ +@interface PTDiffusionAddTopicResult : PTDiffusionEnumeration + +/** + A new topic was created. + + @return Instance indicating a new topic was created. + + @since 6.1 + */ ++(instancetype)created; + +/** + A topic with the same specification already exists. + + @return Instance indicating a topic with the same specification + already exists. + + @since 6.1 + */ ++(instancetype)exists; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h new file mode 100644 index 0000000..10308a5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h @@ -0,0 +1,49 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Provider of responses to basic authentication challenges from HTTP proxies. + + @see PTDiffusionHTTPProxyConfiguration + + @since 6.0 + */ +@interface PTDiffusionBasicHTTPProxyAuthentication : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Creates a basic HTTP Proxy authentication with the given username and password. + + @param username The username to respond with. + + @param password The password to respond with. + + @exception NSInvalidArgumentException If either username or password is `nil`. + + @return HTTP Proxy Authentication instance with the given username and password. + + @since 6.0 + */ +-(instancetype)initWithUsername:(NSString *)username + password:(NSString *)password NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h new file mode 100644 index 0000000..1c06044 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h @@ -0,0 +1,693 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionBinaryDelta; +@class PTDiffusionBinaryFetchResult; +@class PTDiffusionBinaryTimeSeriesQueryResult; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionResponse; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionBinaryRequestDelegate; +@protocol PTDiffusionBinaryRequestStreamDelegate; +@protocol PTDiffusionBinarySessionResponseStreamDelegate; +@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionBinaryValueStreamDelegate; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" + + +NS_ASSUME_NONNULL_BEGIN + + +/** + @brief An immutable binary value with support for binary deltas. + + @since 5.9 + */ +@interface PTDiffusionBinary : PTDiffusionBytes + +/** + Apply a binary delta to the receiver's binary value to create a new value. + + @param delta The delta describing the changes to be applied to the receiver's + value in order to create the value to be returned. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new binary value or `nil` if there was a failure when applying the + delta (e.g. either the delta is invalid). + + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. + + @since 5.9 + */ +-(nullable PTDiffusionBinary *)applyDelta:(PTDiffusionBinaryDelta *)delta + error:(NSError **)error; + +/** + Compare the receiver's binary value with another (e.g. an earlier version) to + create a binary delta. + + @param binary The original to which the delta should be able to be applied in + order to generate the value represented by the receiver. + + @return A binary delta representing the difference between binary and the + receiver. + + @exception NSInvalidArgumentException Raised if the binary argument is `nil`. + + @since 5.9 + */ +-(PTDiffusionBinaryDelta *)diffFromBinary:(PTDiffusionBinary *)binary; + +/** + A request that can be used to send this value using messaging. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRequest* request; + +/** + A response that can be used to send this value using messaging. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionResponse* response; + +/** + An update constraint requiring the current value of a topic to match this + value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; + +/** + Creates a value stream capable of receiving binary values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ ++(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving binary time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving Binary requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving Binary requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving Binary responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; + +/** + Compares the receiver to the given binary. + + @param binary The binary object with which to compare the receiver. + + @return `YES` if the data in binary is equal to the contents of the receiver, otherwise `NO`. + + @note Two binary objects are equal if they hold the same number of data bytes, and if the + bytes at the same position in the objects are the same. + + @since 5.9 + */ +-(BOOL)isEqualToBinary:(nullable PTDiffusionBinary *)binary; + +@end + +/** + @brief Extension adding support for responding to requests using Binary values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionBinary) + +/** + Dispatch a response to a request. + + @param binary The value to send in response. + + @exception NSInvalidArgumentException Raised if the binary argument is `nil`. + + @since 6.0 + */ +-(void)respondWithBinary:(PTDiffusionBinary *)binary; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a binary response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionBinary) + +/** + Send a request for which a binary response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a binary response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + binaryCompletionHandler:(void (^)(PTDiffusionBinary * _Nullable binary, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using binary values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionBinary) + +/** + Update a time series topic by appending a new binary value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + binaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + + +/** + Update a time series topic by appending a new binary value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + binaryValue:(PTDiffusionBinary *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new binary value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + binaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have binary values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + binaryCompletionHandler:(void (^)(PTDiffusionBinaryTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with Binary. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionBinary) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with Binary. + + The Binary data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as Binary will be + removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchBinaryValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionBinaryFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with binary values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionBinary) + +/** + Sets a topic to a specified binary value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toBinaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified binary value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toBinaryValue:(PTDiffusionBinary *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a binary value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toBinaryValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToBinaryValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a binary value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setTopicWithPath:toBinaryValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToBinaryValue:(PTDiffusionBinary *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + +/** + Creates an update stream to use for updating a specific topic with binary + values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint; + +/** + Creates an update stream to use for creating and updating a specific topic with + binary values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification; + +/** + Creates an update stream to use for creating and updating a specific topic with + binary values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#binary. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint; + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h new file mode 100644 index 0000000..ddd2be4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable delta describing the differences between two binary values. + + A `diff` of two binary values creates a binary delta. The binary delta can + later `apply` to the first value to calculate the second value. + + @since 5.9 + */ +@interface PTDiffusionBinaryDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Whether the two values used to create this instance are different. + + @since 5.9 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +/** + Compares the receiver to the given binary delta. + + @param binaryDelta The binary delta object with which to compare the receiver. + + @return `YES` if the data in binary delta is equal to the contents of the receiver, otherwise `NO`. + + @note Two binary delta objects are equal if they carry the same information. + + @since 5.9 + */ +-(BOOL)isEqualToBinaryDelta:(nullable PTDiffusionBinaryDelta *)binaryDelta; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h new file mode 100644 index 0000000..61cc708 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinaryFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a binary fetch operation issued to the + server. + + A binary fetch operation is issued using the + PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionBinaryFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * binaryResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h new file mode 100644 index 0000000..42e3874 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a binary fetch operation for a single + selected topic. + + A binary fetch operation is issued using the + PTDiffusionFetchRequest#fetchBinaryValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionBinaryFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) PTDiffusionBinary* binary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h new file mode 100644 index 0000000..f6ee77f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Binary messaging requests with a + handler registered at the server. + + @see PTDiffusionBinary + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionBinaryRequestDelegate + +/** + Called when a Binary request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param binary The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithBinary:(PTDiffusionBinary *)binary + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h new file mode 100644 index 0000000..7cd0178 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Binary messaging requests. + + @see PTDiffusionBinary + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionBinaryRequestStreamDelegate + +/** + Called when a Binary request has been received. + + @param stream The stream that received the request. + + @param binary The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithBinary:(PTDiffusionBinary *)binary + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h new file mode 100644 index 0000000..a5d0a93 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Binary messaging responses from + individual sessions. + + @see PTDiffusionBinary + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionBinarySessionResponseStreamDelegate + +/** + Called when a session responds to a request with a Binary. + + @param stream The stream that received the response. + + @param binary The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithBinary:(PTDiffusionBinary *)binary + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h new file mode 100644 index 0000000..cad83e5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as Binary. + + @since 6.0 + */ +@interface PTDiffusionBinaryTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The binary value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionBinary* binary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..f3ea38b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinaryTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + binary values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with binary values. + + @since 6.0 + */ +@protocol PTDiffusionBinaryTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldBinaryEvent The previous event. If `nil` then this is the first event. + + @param newBinaryEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldBinaryEvent:(nullable PTDiffusionBinaryTimeSeriesEvent *)oldBinaryEvent + newBinaryEvent:(PTDiffusionBinaryTimeSeriesEvent *)newBinaryEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h new file mode 100644 index 0000000..ffd4a0d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinaryTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of binary time series events. + + @since 6.0 + */ +@interface PTDiffusionBinaryTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The binary time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* binaryEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h new file mode 100644 index 0000000..40fdcb4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + binary values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionBinaryUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionBinary* value; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either value or completionHandler is + `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(PTDiffusionBinary *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h new file mode 100644 index 0000000..9294dcd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBinary; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for binary + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for binary + topics. + + @see PTDiffusionBinary + + @since 5.9 + */ +@protocol PTDiffusionBinaryValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldBinary The previous value. If `nil` then this is the first value. + + @param newBinary The new value derived from the last update received from the + server. + + @since 5.9 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldBinary:(nullable PTDiffusionBinary *)oldBinary + newBinary:(PTDiffusionBinary *)newBinary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h new file mode 100644 index 0000000..a45cf1a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session tree branch mapping. + + Branch mappings belong to {@link PTDiffusionBranchMappingTable branch mapping tables}. + Each branch mapping is a pair of a {@link PTDiffusionSession session filter} and the + target topic tree branch that applies to sessions matching the filter. + + @see PTDiffusionSessionTreesFeature + + @since 6.7 + */ +@interface PTDiffusionBranchMapping : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The session filter. + */ +@property (nonatomic, readonly) NSString *sessionFilter; + +/** + The target branch in the topic tree for sessions matching the session filter + */ +@property (nonatomic, readonly) NSString *topicTreeBranch; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h new file mode 100644 index 0000000..33cea73 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionBranchMapping; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session tree branch mapping table. + + A branch mapping table is a list of {@link PTDiffusionBranchMapping branch mappings} + assigned to a session tree branch + + To create a branch mapping table, obtain a new a builder instance using + {@link PTDiffusionBranchMappingTableBuilder}, call + {@link PTDiffusionBranchMappingTableBuilder#addBranchMappingWithSessionFilter:targetPath: + addBranchMapping} for each branch mapping, then + {@link PTDiffusionBranchMappingTableBuilder#createTableForSessionTreeBranch: createTable}. + The result can then be sent to the server using + {@link PTDiffusionSessionTreesFeature#putBranchMappingTable: putBranchMappingTable} + + @see PTDiffusionSessionTreesFeature + + @since 6.7 + */ +@interface PTDiffusionBranchMappingTable : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The branch of the session tree to which this table is bound + */ +@property (nonatomic, readonly) NSString *sessionTreeBranch; + +/** + The branch mappings + */ +@property (nonatomic, readonly) NSArray *branchMappings; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h new file mode 100644 index 0000000..06c913c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionBranchMappingTable; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Builder for {@link PTDiffusionBranchMappingTable} instances. + + @see PTDiffusionSessionTrees + + @since 6.7 + */ +@interface PTDiffusionBranchMappingTableBuilder : NSObject + + ++(instancetype)new; + +-(instancetype)init; + + +/** + @brief Resets the builder. + + @return the builder + */ +-(instancetype)reset; + + +/** + @brief Add a new branch mapping. + + @param sessionFilter the session filter + + @param topicTreeBranch the target branch in the topic tree for sessions + matching the session filter + + @return the builder + */ +-(instancetype)addBranchMappingWithSessionFilter:(NSString *const)sessionFilter + topicTreeBranch:(NSString *const)topicTreeBranch; + + +/** + @brief Create a new {@link PTDiffusionBranchMappingTable}. + + @param sessionTreeBranch the session tree branch + + @return a branch mapping table + */ +-(PTDiffusionBranchMappingTable *) createTableForSessionTreeBranch:(NSString *const)sessionTreeBranch; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h new file mode 100644 index 0000000..9b0b121 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h @@ -0,0 +1,66 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A value that is internally represented as binary data. + + A bytes object is immutable. + + @since 5.9 + */ +@interface PTDiffusionBytes : NSObject + +/** + Returns a bytes object initialized with the given data. + + @param data A data object encapsulating the bytes. + + @return Bytes object initialized with the given data. + + @note Since Diffusion 5.9 this method has been moved from PTDiffusionContent + to this new super interface. + + @since 5.9 + */ +-(instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER; + +/** + The data encapsulated by the receiver. + + @note Since Diffusion 5.9 this property has been moved from PTDiffusionContent + to this new super interface. + + @since 5.9 + */ +@property(nonatomic, readonly, copy) NSData* data; + +/** + Compares the receiver to the given bytes. + + @param bytes The bytes object with which to compare the receiver. + + @return `YES` if the bytes are equal to the contents of the receiver, otherwise `NO`. + + @note Two bytes objects are equal if they hold the same number of bytes, and if the + bytes at the same position in the objects are the same. + + @since 5.9 + */ +-(BOOL)isEqualToBytes:(nullable PTDiffusionBytes *)bytes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h new file mode 100644 index 0000000..d11a077 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A cancellable handle to an asynchronous operation. + + @since 6.3 + */ +@protocol PTDiffusionCancellable + +/** + Attempts to cancel execution of the operation. Does nothing if the operation + has already completed, has already been cancelled, or could not be cancelled + for some other reason. + + @return If this attempt to cancel the operation was viable then `YES`, or if it + did nothing then `NO`. + + @since 6.3 + */ +-(BOOL)cancel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h new file mode 100644 index 0000000..77cb3a3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRemoteServer; +@class PTDiffusionRemoteServerConnectionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Interface for the result of checking the state + of a remote server + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionCheckRemoteServerResult : NSObject + + +/** + The remote server's connection state + + @since 6.5 + */ +@property (nonatomic, readonly) PTDiffusionRemoteServerConnectionState *state; + + +/** + Message from the server if the connection state for + the specified remote server is `failed` or `retrying`. + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *failureMessage; + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h new file mode 100644 index 0000000..824016f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h @@ -0,0 +1,388 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@protocol PTDiffusionSessionPropertiesDelegate; +@protocol PTDiffusionClientQueueEventListener; + +@class PTDiffusionSessionPropertiesListenerRegistration; +@class PTDiffusionRegistration; +@class PTDiffusionGetSessionPropertiesResult; +@class PTDiffusionSetSessionPropertiesResult; +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Client Control feature provides the ability for a client session + to control other client sessions. + + It allows for notifications of client sessions starting and closing as well + as the ability to manage client sessions (forcibly closing them etc). + + + ### Access control + + A session must have `PTDiffusionGlobalPermission#viewSession` permission to be able + to listen for notifications using `#addSessionPropertiesListener:forProperties:completionHandler:` + or `#getSessionProperties:forSession:completionHandler:` of other sessions + or listen for queue events. In addition, `PTDiffusionGlobalPermission#registerHandler` + permission is required to set a session properties listener or queue event handler. + + In order to perform operations that change a session's state (such as throttling, + conflating, or closing the session, or changing roles), both + `PTDiffusionGlobalPermission#viewSession` and PTDiffusionGlobalPermission#modifySession` + permission is required. + + + ### Accessing the feature + + This feature may be obtained from a `PTDiffusionSession` session as follows: +
+    
+        PTDiffusionClientControlFeature *clientControl = session.clientControl;
+    
+ 
+ + @since 6.5 + */ +@interface PTDiffusionClientControlFeature : PTDiffusionFeature + + +/** + @brief Register a listener that will be notified when client sessions are + opened, disconnected, reconnected, closed or when selected session + property values are updated. + + When a listener is first set, it will be called with the required + properties of all currently open client sessions. + The amount of data transferred from the server is proportional to + the number of connected clients and is potentially large. + The amount of data can be reduced using `requiredProperties` parameter. + + Each control session can register a single listener. When the listener is + no longer required, it may be closed using the + PTDiffusionSessionPropertiesListenerRegistration provided by the `completionHandler`. + To change the listener, the previous listener must first be closed. + + The `requiredProperties` parameter is used to select the property + values required. + + The requested property set controls the level of detail provided and + whether the listener is called for updates to sessions. + If no properties are requested, the listener is not called when + session properties are updated. + + @param listener the listener to be called with session notifications + + @param requiredProperties a list of required property keys. + See `PTDiffusionSession` for a full list of available fixed property keys. + To request no properties, supply an empty list. + To request all fixed properties, include + `PTDiffusionSession.allFixedProperties` as an entry. + In this case any other fixed property keys would be ignored. + To request all user properties, include + `PTDiffusionSession.allUserProperties` as an entry. + In this case any other user properties are ignored. + + @param completionHandler a completion handler than returns when the listener + has been registered, returning a `PTDiffusionSessionPropertiesListenerRegistration` + which can be used to unregister the listener. + + If the `registration` is nil. This could mean an error has occurred during the + registration process. These may include: + - SessionClosed, if the session is closed + - HandlerConflict, if the session has already registered a queue event handler + - Security, if the session does not have + `PTDiffusionGlobalPermission.registerHandler` permission and/or + `PTDiffusionGlobalPermission.viewSession` permission. + + @since 6.5 + */ +-(void)addSessionPropertiesListener:(id) listener + forProperties:(NSArray *) requiredProperties + completionHandler:(void (^)(PTDiffusionSessionPropertiesListenerRegistration * _Nullable registration, + NSError * _Nullable error)) completionHandler; + + +/** + @brief Query the server for property values of a specified client session. + + @param requiredProperties a list of required property keys. + See `PTDiffusionSession` for a full list of available fixed property keys. + To request no properties, supply an empty list. + To request all fixed properties, include `PTDiffusionSession.allFixedProperties` + as a key. + In this case any other fixed property keys would be ignored. + To request all user properties, include `PTDiffusionSession.allUserProperties` + as a key. + In this case any other user properties are ignored. + + @param sessionId identifies the client session + + @param completionHandler called with the response + + @since 6.5 + */ +-(void) getSessionProperties:(NSArray *) requiredProperties + forSession:(PTDiffusionSessionId *) sessionId + completionHandler:(void (^)(PTDiffusionGetSessionPropertiesResult * _Nullable result, + NSError * _Nullable error)) completionHandler; + + + +/** + @brief Send a request to the server to change the user-defined session + properties for a session. + + It is also permissible to change the values of the following fixed session + properties : + + - `$Country` - will be normalised to upper case + - `$Language` - will be normalised to lower case + - `$Latitude` - Invalid value will be set to "NaN" + - `$Longitude` - Invalid value will be set to "NaN" + + If values are provided for any other fixed session properties they will be ignored. + + @param properties the properties to change. Each entry in the map is a + property name and the new value. + If the value is `[NSNull null]`, any existing property with + that name will be removed (unless it is a fixed property). + Otherwise if the property name does not match any existing property, + that entry will be added as a new property (although properties starting + with `$` will be ignored). + + @param sessionId identifies the client session + + @param completionHandler a completion handler that is called when a response is received + from the server, returning the maps of session properties that were added + or updated. + + If the session properties were updated, the `result` will contain a map of + properties that changed with their previous values. + If no properties were changed, the map will be empty. + If any new properties were added, the values in the map will be `[NSNull null]` + to indicate that they do not have an old value. + + Otherwise, the `error` will contain an error. + Common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.5 + */ +-(void) setSessionProperties:(NSDictionary*) properties + forSession:(PTDiffusionSessionId *) sessionId + completionHandler:(void (^)(PTDiffusionSetSessionPropertiesResult * _Nullable result, + NSError * _Nullable error)) completionHandler; + + + +/** + @brief Send a request to the server to set all sessions that satisfy a session + filter with the new user-defined session properties. + + It is also permissible to change the values of the following fixed session + properties : + + - `$Country` - will be normalised to upper case + - `$Language` - will be normalised to lower case + - `$Latitude` - Invalid value will be set to "NaN" + - `$Longitude` - Invalid value will be set to "NaN" + + If values are provided for any other fixed session properties they will be ignored. + + @param properties the properties to change. + Each entry in the map is a property name and the new value. + If the value is `[NSNull null]`, any existing property with + that name will be removed (unless it is a fixed property). + Otherwise if the property name does not match any existing property, + that entry will be added as a new property (although properties starting + with `$` will be ignored). + + @param filter the session filter + + @param completionHandler a completion handler that is called when a response is received + from the server, returning the total number of sessions that were updated with + the filter. + + If `matches` is 0, the filter has not selected any session + If `matches` is -1, an `error` has occurred. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.5 + */ +-(void) setSessionProperties:(NSDictionary *) properties + usingFilter:(NSString *) filter + completionHandler:(void (^)(NSInteger matches, + NSError * _Nullable error)) completionHandler; + + +/** + @brief Close a client session. + + @param sessionId identifies the client session to close + + @param completionHandler a completion handler that is called then a response is received + from the server. + If the client session was closed successfully, the `error` will be nil + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)closeClientWithSessionId:(PTDiffusionSessionId *) sessionId + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + @brief Close all client sessions matching a given session filter. + + @param filter matches the set of client sessions to close. For details on + specifying session filters see `PTDiffusionSession`. + + @param completionHandler a completion handler that is called then a response is received + from the server. + If the operation is successful, `closedSessions` will contain the number of client + sessions that were closed and `error` will be nil. + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)closeClientWithFilter:(NSString *)filter + completionHandler:(void (^)(NSInteger closedSessions, NSError * _Nullable error)) completionHandler; + + +/** + @brief Sets the client session queue conflation policy. + + Each session begins with conflation enabled or disabled based on the + queue configuration of the connector it is using. This method allows + conflation to be enabled or disabled for specific sessions at runtime. + + Conflation is the process of merging or discarding topic updates queued + for a session to reduce the server memory footprint and network data. + Conflation needs to be enabled for a session and a policy configured for + the topic to have an effect. Policies are configured on a per-topic + basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. + + @param conflate `true` to enable conflation, `false` to disable conflation + + @param sessionId identifies the client session + + @param completionHandler a completion handler that is called when a response is received + from the server. If the conflation policy was updated for the identified session, + the error will be `nil`. + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)setQueueConflation:(BOOL)conflate forSession:(PTDiffusionSessionId *)sessionId + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + @brief Sets the queue conflation policy for all client sessions + matching a given session filter. + + Each session begins with conflation enabled or disabled based on the + queue configuration of the connector it is using. This method allows + conflation to be enabled or disabled for specific sessions at runtime. + + Conflation is the process of merging or discarding topic updates queued + for a session to reduce the server memory footprint and network data. + Conflation needs to be enabled for a session and a policy configured for + the topic to have an effect. Policies are configured on a per-topic + basis using the `PTDiffusionTopicSpecification.conflationPropertyKey`. + + @param conflate `true` to enable conflation, `false` to disable conflation + + @param filter matches the set of client sessions to close. For details on + specifying session filters see `PTDiffusionSession`. + + @param completionHandler a completion handler that is called when a response is received + from the server. If the conflation policy was updated for the identified session, + the error will be `nil`. + + Otherwise, the `error` will contain an error. + These are the common reasons for failure: + - NoSuchSession, if the identified session was closed before the response was delivered + - Security, if the calling session does not have `PTDiffusionGlobalPermission.modifySession` + and `PTDiffusionGlobalPermission.viewSession` permission + - SessionClosed, if the calling session is closed. + + @since 6.6 + */ +-(void)setQueueConflation:(BOOL)conflate withFilter:(NSString *)filter + completionHandler:(void (^)(NSInteger matchedSessions, NSError * _Nullable error)) completionHandler; + + +/** + @brief Register a delegate for client queue threshold events + + Each control session can register a single handler. When the handler is + no longer required, it may be closed using the `PTDiffusionRegistration` + provided by the completion handler. To set a different handler the + current handler must first be closed. For each event, the server will + select a single handler. + + The control session may choose to act upon queue events for a session by + activating conflation for the session. + + @param listener the queue handler listener to set + + @param completionHandler a completion handler than returns when the listener + has been registered, returning a `PTDiffusionRegistration` + which can be used to unregister the listener. + + If the `registration` is nil. This could mean an error has occurred during the + registration process. These may include: + - SessionClosed, if the session is closed + - HandlerConflict, if the session has already registered a queue event handler + - Security, if the session does not have + `PTDiffusionGlobalPermission.registerHandler` permission and/or + `PTDiffusionGlobalPermission.viewSession` permission. + + @since 6.6 + */ +-(void)setQueueEventHandler:(id)listener + completionHandler:(void (^)(PTDiffusionRegistration *registration, NSError * _Nullable error)) completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h new file mode 100644 index 0000000..91135ca --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h @@ -0,0 +1,77 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRegistration; +@class PTDiffusionClientQueuePolicy; +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Listener for client message queue events from the server. + + @see PTDiffusionClientControlFeature + + @since 6.6 + */ +@protocol PTDiffusionClientQueueEventListener + + +/** + Called when the message queue policy changes + + @param registration The message queue event listener registration for which this listener applies + + @param policy The new message queue policy for the session + + @param sessionId The session ID of the affected session + + @since 6.6 + */ +-(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration + didReportPolicyChange:(PTDiffusionClientQueuePolicy *)policy + forSession:(PTDiffusionSessionId *)sessionId; + + +/** + Called if the handler is closed. + + No further calls will be made to this handler. + + @param registration The message queue event listener registration for which this listener applies + + @since 6.6 + */ +-(void)diffusionQueueEventListenerRegistrationDidClose:(PTDiffusionRegistration *)registration; + + + +/** + Called in the event of a contextual error relating to this handler. + + No further calls will be made to this handler. + + @param registration The message queue event listener registration for which this listener applies. + + @param error The failure reason. + + @since 6.6 + */ +-(void)diffusionQueueEventListenerRegistration:(PTDiffusionRegistration *)registration + didFailWithError:(NSError *)error; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h new file mode 100644 index 0000000..05e9a08 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h @@ -0,0 +1,40 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Policy for managing a client message queue. + + Conflation can be enabled or disabled. + + @since 6.6 + */ +@interface PTDiffusionClientQueuePolicy: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @return `YES` is conflation is enabled. + + @since 6.6 + */ +-(BOOL) isConflated; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h new file mode 100644 index 0000000..0cde947 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h @@ -0,0 +1,252 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Specifies the reason why a session has been closed + + This is used by the Client Control feature + + @since 6.5 + */ +@interface PTDiffusionCloseReason : PTDiffusionEnumeration + + +/** + The connection to the client was lost - possibly dropped by the + client. Recoverable. + + A client may be closed for many reasons that are presented as + CONNECTION_LOST. + + During a connection attempt, the connection can be lost. + The server might have received a connection or reconnection request + from a client already connected. + The server might have received a reconnection request without + a session Id. + The connection may not have been authorised because the credentials + are wrong. + The maximum number of clients might already be connected. + + Once connected, the connection can be lost for different reasons. + If the client closes its connection while the server is writing a + message to the client. With the chunked encoding based connection the + HTTP response is completed by the server. + If the client does not open a new request within a timeout, + the client will be closed. + If a poll request times out and the server finds that the connection + has already been closed by the client. + + @return Instance indicating the connection to the client was lost. + + @since 6.5 + */ ++(instancetype)connectionLost; + + +/** + An unexpected IO Exception occurred. Recoverable. + + While trying to perform an I/O operation an exception was generated. + This often means that a read was attempted from a closed TCP + connection. + + When handling SSL connections if there is a problem encrypting or + decrypting a message the client will be closed for this reason. + + @return Instance indicating an unexpected IO Exception occurred. + + @since 6.5 + */ ++(instancetype)ioException; + + +/** + The client had become unresponsive. + + The client has either failed to respond to a ping message in a timely + manner or the client has failed to open an HTTP poll for messages. + The client does not appear to be receiving messages. + + @return Instance indicating the client has become unresponsive. + + @since 6.5 + */ ++(instancetype)clientUnresponsive; + + +/** + The maximum outbound queue size was reached for the client. Not + recoverable. + + Messages sent to the client are placed in a queue. This queue has a + maximum allowed size. If the queue limit is reached the client is + closed and the queue discarded. The queue is intended to protect + against slow consumers, reaching the queue limit is taken to mean + that the client cannot keep up with the number of messages sent to + it. + + @return Instance indicating the maximum outbound queue size was reached + for the client. + + @since 6.5 + */ ++(instancetype)messageQueueLimitReached; + + +/** + The client requested close. Not recoverable. + + @return Instance indicating the client requested close. + + @since 6.5 + */ ++(instancetype)closedByClient; + +/** + The client sent a message that exceeded the maximum message size that + can be processed by the server. + + The server has a maximum message size that it can process on any + single connector. If a client sends a message larger than this the + server is unable to process it. When this happens the message is + discarded and the client is closed. + + @return Instance indicating the client send a message that exceeded the + server maximum message size. + + @since 6.5 + */ ++(instancetype)messageTooLarge; + + +/** + An internal error occurred. + + @return Instance indicating an internal error has occurred. + + @since 6.5 + */ ++(instancetype)internalError; + + +/** + An inbound message with an invalid format was received. + + A message received by the server is not a valid Diffusion message. + The server is unable to process this and closes the client that sent + it. + + @return Instance indicating an inbound message with an invalid format + was received. + + @since 6.5 + */ ++(instancetype)invalidInboundMessage; + + +/** + The client connection was aborted by the server, possibly because the + connection was disallowed. + + This is may be because the connection was disallowed. + Abort messages are also sent to clients that have unrecognised + client IDs. This may be because the server closed the client previously + but the client is unaware of this and tried to continue interacting + with the server. + + @return Instance indicating the client connection was aborted by + the server. + + @since 6.5 + */ ++(instancetype)aborted; + + +/** + Loss of messages from the client has been detected. + + For example, whilst waiting for the arrival of missing messages in + a sequence of messages a timeout has occurred. + + HTTP based transports use multiple TCP connections. This can cause + the messages to be received out of order. To reorder the messages + those sent to the server may contain a sequence number indicating the + correct order. + + If a message is received out of order there is a short time for the + earlier messages to be received. If the messages are not received in + this time the client is closed. + + Missing, invalid or duplicate sequence numbers will also close the + client for this reason. + + This cannot be recovered from as the client and the server are in + inconsistent states. + + @return Instance indicating loss of messages from the client + has been detected. + + @since 6.5 + */ ++(instancetype)lostMessages; + + +/** + The server is closing down. + + The client was closed as part of the server shutdown process. + + @return Instance indicating the server is closing down. + + @deprecated since 6.6 and will be removed in a future release. + + @since 6.5 + */ ++(instancetype)serverClosing __deprecated_msg("Will be removed in a future release"); + + +/** + Closed by a client session. + + A control session initiated the client close. + + @return Instance indicating the sessiion was closed by another + client session. + + @since 6.5 + */ ++(instancetype)closedByController; + + +/** + The session has failed over to a different Diffusion server. + + The session is still open but is now connected to a different + Diffusion server. This server has evicted its view of the session + from its set of local sessions. + + @return Instance indicating the session has failed over to a + different Diffusion server. + + @since 6.5 + */ ++(instancetype)failedOver; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h new file mode 100644 index 0000000..ae4e164 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRemoteServer; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Interface for the result from the creation of a remote server. + + This is used by the Remote Servers feature. + + @since 6.5 + */ +@interface PTDiffusionCreateRemoteServerResult : NSObject + + +/** + The remote server. + + @since 6.5 + */ +@property (nonatomic, readonly) PTDiffusionRemoteServer *remoteServer; + + +/** + Whether the response successfully creates a remote server or not. + + @since 6.5 + */ +@property (nonatomic, readonly, getter=isSuccess) BOOL success; + + +/** + The list of errors resulting from attempting to create a remote server. + + @since 6.5 + */ +@property (nonatomic, readonly) NSArray *errors; + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h new file mode 100644 index 0000000..365608d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h @@ -0,0 +1,82 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Credentials contain the proof material to support an authentication request. + + The server passes the credentials through to the configured authentication + handlers for interpretation. + + A credentials object is immutable. + + @see PTDiffusionSessionConfiguration + + @since 5.6 + */ +@interface PTDiffusionCredentials : NSObject + +/** + Returns a credentials object initialized with the given plain-text password to use as proof material. + + @param password The plain-text password to authenticate with. + + @return Credentials instance initialized with the given plain-text password. + + @since 5.6 + */ +-(instancetype)initWithPassword:(NSString *)password; + +/** + Returns a credentials object initialized with the given custom data to use as proof material. + + @param data The application-specific, custom credentials to authenticate with. + + @return Credentials instance initialized with the given custom data. + + @since 5.6 + */ +-(instancetype)initWithData:(NSData *)data; + +/** + Returns a credentials object initialized with an empty type and password. + + @return Credentials objects initialized with an empty type and password. + + @since 6.5 + */ ++(instancetype)noCredentials; + +/** + The data defining the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly) NSData *data; + +/** + Compares the receiver to the given credentials. + + @param credentials The credentials object with which to compare the receiver. + + @return `YES` if the receiver and the given credentials have the same type and data. + + @since 5.6 + */ +-(BOOL)isEqualToCredentials:(nullable PTDiffusionCredentials *)credentials; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h new file mode 100644 index 0000000..a1af9f6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes providing data type implementations. + + A data type is specified for a particular class (its value class). It provides + methods to convert values of the value class to and from binary. Diffusion + provides several data type implementations. + + A data type can optionally support incremental changes to values, represented + by one or more types of delta. + + @see PTDiffusionDataTypes + + @since 6.0 + */ +@protocol PTDiffusionDataType + +/** + The unique external identifier for this data type. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* typeName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h new file mode 100644 index 0000000..8821a4f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h @@ -0,0 +1,118 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionDataType; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Diffusion data type implementations. + + @since 6.0 + */ +@interface PTDiffusionDataTypes : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Data type that supports arbitrary binary data. + + @see PTDiffusionBinary + + @return Data type that supports arbitrary binary data. + + @since 6.0 + */ ++(id)binary; + +/** + Data type that supports double-precision floating point numbers (Eight-byte + IEEE 754) presented as `NSNumber` instances. + + The integer value is serialized as CBOR-format binary. A serialized value can + be read using the #json datatype. + + This data type does not support binary deltas but does support `nil` values. + + @return Data type that supports double-precision floating point numbers. + + @see PTDiffusionPrimitive + + @since 6.0 + */ ++(id)doubleFloat; + +/** + Data type that supports 64-bit, signed integer values presented as `NSNumber` + instances. + + The integer value is serialized as CBOR-format binary. A serialized value can + be read using the #json datatype. + + This data type does not support binary deltas but does support `nil` values. + + @return Data type that supports 64-bit, signed integer values. + + @see PTDiffusionPrimitive + + @since 6.0 + */ ++(id)int64; + +/** + Data type that supports JSON "JavaScript Object Notation", a lightweight + data-interchange format, serialized as CBOR-format binary. + + @return Data type that supports JSON values. + + @see PTDiffusionJSON + + @since 6.0 + */ ++(id)json; + +/** + Data type that supports string values presented as `NSString` instances. + + The string value is serialized as CBOR-format binary. A serialized value can be + read using the #json datatype. + + This data type supports binary deltas and `nil` values. + + @return Data type that supports string values. + + @see PTDiffusionPrimitive + + @since 6.0 + */ ++(id)string; + +/** + Data type that supports data in the form of records and fields. + + This data type supports binary deltas but does not support `nil` values. + + @return Data type that supports data in the form of records and fields. + + @see PTDiffusionRecordV2 + + @since 6.0 + */ ++(id)recordV2; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h new file mode 100644 index 0000000..9b8d5e5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received error messages at PTDiffusionLoggingLevel::warn level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultSessionResponseStreamDelegate : PTDiffusionDefaultStreamDelegate + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h new file mode 100644 index 0000000..d246a84 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received closure messages at PTDiffusionLoggingLevel::debug level and + error messages at PTDiffusionLoggingLevel::warn level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultStreamDelegate : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h new file mode 100644 index 0000000..a9f9a99 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received messages at PTDiffusionLoggingLevel::debug level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultSubscriberStreamDelegate : PTDiffusionDefaultStreamDelegate + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h new file mode 100644 index 0000000..04a802a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received messages at PTDiffusionLoggingLevel::debug level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultTopicNotificationListener : PTDiffusionDefaultStreamDelegate + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h new file mode 100644 index 0000000..cc32f47 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h @@ -0,0 +1,33 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Default delegate implementation which may be used as an abstract base + for sub-protocol implementations. + + It logs received closure messages at PTDiffusionLoggingLevel::debug level and + error messages at PTDiffusionLoggingLevel::warn level. + + @see PTDiffusionLogging + + @since 6.1 + */ +@interface PTDiffusionDefaultTopicTreeRegistrationDelegate : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h new file mode 100644 index 0000000..8513903 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Base class for objects offering a selection of predefined constant values. + + Classes inheriting from this class share more in common with Java's `enum` type than + they do with C's `enum` (even using Core Foundation's `NS_ENUM` macro) in that they + are object-based. Benefits of this include: + + - Ability to use `nil` in a meaningful way - e.g. to indicate 'not set'. + - Standard `description` method to aid logging clarity during debug sessions. + - Extensible to include additional properties. + + @since 5.7 + */ +@interface PTDiffusionEnumeration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns the constant values offered by this enumeration. + + @return the constant values offered by this enumeration. + + @since 5.7 + */ ++(NSSet *)elements; + +/** + Compares the receiver to the given enumeration. + + @param enumeration The enumeration object with which to compare the receiver. + + @return `YES` if the enumeration is equal to the receiver, otherwise `NO`. + + @since 5.7 + */ +-(BOOL)isEqualToEnumeration:(nullable PTDiffusionEnumeration *)enumeration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h new file mode 100644 index 0000000..fb285ca --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h @@ -0,0 +1,1183 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Key used in the `userInfo` dictionary of an array of NSError objects, having + the potential to convey more than one error encountered by an underlying + implementation. + + The associated value is an array of one or more NSError objects. + + @since 6.0 + */ +extern NSString *const PTDiffusionUnderlyingErrorsKey; + + +/** + @file PTDiffusionError.h + + Collection of errors that can be raised by the Apple Client SDK. + + Errors with values from 100 to 501 originate from the Diffusion server. + Remaining errors are unique to the Diffusion Apple Client SDK. + + @since 6.7 + */ +typedef NS_ENUM(NSInteger, PTDiffusionError) { + /** + * Communication with the server failed. + */ + PTDiffusionError_CommunicationFailure = 100, + + /** + * Communication with the server failed because the session is closed. + */ + PTDiffusionError_SessionClosed = 101, + + /** + * Communication with the server failed due to a service request timeout. + */ + PTDiffusionError_RequestTimeOut = 102, + + /** + * The request was rejected because the used principal has insufficient permissions. + */ + PTDiffusionError_AccessDenied = 103, + + /** + * The request was rejected because the requested service is unsupported for this client. + * @since 5.9 + */ + PTDiffusionError_Unsupported = 104, + + /** + * An application callback threw an exception. Check logs for more information. + * @since 5.9 + */ + PTDiffusionError_CallbackException = 105, + + /** + * An operation failed because invalid data was received. + * @since 6.0 + */ + PTDiffusionError_InvalidData = 106, + + /** + * The session does not exist on the server. + * @since 6.0 + */ + PTDiffusionError_NoSuchSession = 107, + + /** + * A datatype operation has failed due to incompatibility. + * @since 6.0 + */ + PTDiffusionError_IncompatibleDataType = 108, + + /** + * A message was not handled by the server. + * @since 6.0 + */ + PTDiffusionError_UnhandledMessage = 109, + + /** + * The cluster was repartitioning and the request could not be routed. + * @since 6.0 + */ + PTDiffusionError_ClusterRepartition = 110, + + /** + * A topic update could not be performed because the topic is managed by a component which prohibits external updates. + * @since 6.0 + */ + PTDiffusionError_IncompatibleState = 111, + + /** + * The cluster operation could not be routed. + * @since 6.0 + */ + PTDiffusionError_ClusterRouting = 112, + + /** + * A conflicting registration exists on the same branch of the topic tree. + * @since 6.5 + */ + PTDiffusionError_TopicTreeRegistrationConflict = 200, + + /** + * A conflicting registration exists. + */ + PTDiffusionError_HandlerConflict = 201, + + /** + * An invalid path was supplied. + */ + PTDiffusionError_InvalidPath = 202, + + /** + * Incompatible update. + */ + PTDiffusionError_IncompatibleUpdate = 500, + + /** + * Topic update failed. + */ + PTDiffusionError_UpdateFailed = 501, + + /** + * No topic was found. + */ + PTDiffusionError_NoSuchTopic = 9000, + + /** + * Topic is not a time series topic. + */ + PTDiffusionError_TopicIsNotTimeSeries = 9001, + + /** + * No times series event was found. + */ + PTDiffusionError_NoSuchEvent = 9002, + + /** + * A request has been rejected. + */ + PTDiffusionError_RejectedRequest = 9003, + + /** + * A topic could not be added because one already exists with a different specification. + */ + PTDiffusionError_TopicExistsMismatch = 9004, + + /** + * A topic could not be added because an invalid path was specified. + */ + PTDiffusionError_InvalidTopicPath = 9005, + + /** + * A topic could not be added because an invalid specification was supplied. + */ + PTDiffusionError_InvalidTopicSpecification = 9006, + + /** + * A topic could not be added because the topic would breach a licensing limit. + */ + PTDiffusionError_TopicLicenseLimit = 9007, + + /** + * A topic could not be added because an incompatible topic already exists at the specified path. + */ + PTDiffusionError_IncompatibleTopicExists = 9010, + + /** + * An unexpected error occurred when creating a topic. + */ + PTDiffusionError_UnexpectedTopicAddFailure = 9011, + + /** + * The topic update failed because the constraint was not satisfied. + */ + PTDiffusionError_UnsatisfiedConstraint = 9012, + + /** + * The topic update failed because the update stream is no longer valid. + */ + PTDiffusionError_InvalidUpdateStream = 9013, + + /** + * Parsing the JSON patch failed. + */ + PTDiffusionError_InvalidJsonPatch = 9014, + + /** + * The JSON patch failed to apply. This happens when attempting to parse an illegal CBOR value. + */ + PTDiffusionError_ApplyPatchFail = 9015, + + /** + * A remote server with the specified name already exists. + */ + PTDiffusionError_RemoteServerExists = 9016, + + /** + * An invalid branch mapping was supplied. + * @since 6.7 + */ + PTDiffusionError_InvalidBranchMappings = 9017, + + /** + * Overflow occurred during a function. + * @since 6.7 + */ + PTDiffusionError_Overflow = 20001, + + /** + * Error while deserializing information. + * @since 6.7 + */ + PTDiffusionError_DeserialisationError = 20002, + + /** + * Unexpected class detected when setting session properties. + * @since 6.7 + */ + PTDiffusionError_UnknownValueType = 20003, + + /** + * Unexpected value detected when setting session properties. + * @since 6.7 + */ + PTDiffusionError_UnexpectedValue = 20004, + + /** + * Invalid session filter. + * @since 6.7 + */ + PTDiffusionError_InvalidFilter = 20005, + + /** + * Unexpected encoding detected while deserialising data. + * @since 6.7 + */ + PTDiffusionError_UnknownEncoding = 20006, + + /** + * Unexpected value detected for enumeration in question. + * @since 6.7 + */ + PTDiffusionError_ValueNotInEnumeration = 20007, + + /** + * Error while serialising message from the transport layer. + * @since 6.7 + */ + PTDiffusionError_MessageSerialisationFailed = 20008, + + /** + * JSON cannot be encoded as JSON string due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_StringWillNotEncodeToUTF8Losslessly = 20009, + + /** + * Unable to read value as CBOR is empty. + * @since 6.7 + */ + PTDiffusionError_EmptyCBOR = 20010, + + /** + * Unhandled CBOR operation. + * @since 6.7 + */ + PTDiffusionError_UnhandledCBOR = 20011, + + /** + * Value has been read multiple times. + * @since 6.7 + */ + PTDiffusionError_SetReadValueCalledMultipleTimes = 20012, + + /** + * Unable to authenticate the principal, in the context of changing principal for the current session. + * @since 6.7 + */ + PTDiffusionError_AuthenticationFailure = 20013, + + /** + * An internal error occurred that prevented the session from creating the transport layer. + * @since 6.7 + */ + PTDiffusionError_SessionFailedToCreateTransport = 20014, + + /** + * Session has been closed by the transport layer. + * @since 6.7 + */ + PTDiffusionError_SessionClosedByTransport = 20015, + + /** + * Connection has been aborted by the reconnection strategy. + * @since 6.7 + */ + PTDiffusionError_ConnectionAbortedByReconnectionStrategy = 20016, + + /** + * Session has been closed due to inactivity. + * @since 6.7 + */ + PTDiffusionError_SessionClosedDueToInactivity = 20017, + + /** + * The received message type is not supported for routing. + * @since 6.7 + */ + PTDiffusionError_MessageTypeNotSupportedForRouting = 20018, + + /** + * Conversation ID was not found in the message headers. + * @since 6.7 + */ + PTDiffusionError_MessageHeadersMissingFetchConversationId = 20019, + + /** + * Reconnection has timed out. + * @since 6.7 + */ + PTDiffusionError_ReconnectionTimeout = 20020, + + /** + * Invalid string representation for session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdComponentCount = 20021, + + /** + * Invalid string representation for session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdCharacterCount = 20022, + + /** + * Invalid hex characters detected in session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdInvalidHexCharacters = 20023, + + /** + * Invalid value detected for token in session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdScanHigh = 20024, + + /** + * Invalid value detected for token in session id. + * @since 6.7 + */ + PTDiffusionError_SessionIdScanLow = 20025, + + /** + * Session lock has been cancelled. + * @since 6.7 + */ + PTDiffusionError_SessionLockCancelled = 20026, + + /** + * Incompatible datatypes. + * @since 6.7 + */ + PTDiffusionError_DataTypeNotCompatible = 20027, + + /** + * Unable to deserialize required information from stream. + * @since 6.7 + */ + PTDiffusionError_StreamExhausted = 20028, + + /** + * Failed to create topic view. + * @since 6.7 + */ + PTDiffusionError_FailedToCreateTopicView = 20029, + + /** + * CBOR functionality is not supported. + * @since 6.7 + */ + PTDiffusionError_CBORNotSupported = 20030, + + /** + * Unexpected item detected while parsing CBOR. + * @since 6.7 + */ + PTDiffusionError_CBORUnexpectedItem = 20031, + + /** + * Unable to append object as the container is immutable. + * @since 6.7 + */ + PTDiffusionError_CBORImmutableContainer = 20032, + + /** + * No instructions were parsed by the CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORMissingCodec = 20033, + + /** + * Insufficient instructions were parsed by the CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORUnfinishedContainer = 20034, + + /** + * Unable to append more objects as the document is already set. + * @since 6.7 + */ + PTDiffusionError_CBORDocumentAlreadySet = 20035, + + /** + * A map entry in the CBOR is incomplete. + * @since 6.7 + */ + PTDiffusionError_CBORIncompleteMapEntry = 20036, + + /** + * Unable to support 64-bit CBOR encoding in the current environment. + * @since 6.7 + */ + PTDiffusionError_CBOR64BitUnsupportedOnThisRuntime = 20037, + + /** + * Value is out of range. + * @since 6.7 + */ + PTDiffusionError_OutOfRange = 20038, + + /** + * Provided additional information was unhandled. + * @since 6.7 + */ + PTDiffusionError_CBORUnhandledInfoValue = 20039, + + /** + * Unable to parse string due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_CBORInvalidUTF8 = 20040, + + /** + * Parsing of a particular type is unhandled. + * @since 6.7 + */ + PTDiffusionError_CBORParsingUnhandledType = 20041, + + /** + * Unable to serialize a type using CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORSerialisationUnhandledType = 20042, + + /** + * Unable to serialize a class using CBOR codec. + * @since 6.7 + */ + PTDiffusionError_CBORSerialisationUnhandledClass = 20043, + + /** + * Maximum recursion depth reached while running CBOR serialisation. + * @since 6.7 + */ + PTDiffusionError_CBORSerialisationMaximumRecursionDepthExceeded = 20044, + + /** + * Unexpected item detected while parsing the binary delta. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaUnexpectedItem = 20045, + + /** + * Unsupported item for the purposes of binary delta parsing. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaUnsupportedItem = 20046, + + /** + * Binary delta parsing is expecting the size of the copy. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaPendingCopyLength = 20047, + + /** + * Binary delta parsing is expecting a break. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaPendingBreak = 20048, + + /** + * Value is out of range for the current runtime environment. + * @since 6.7 + */ + PTDiffusionError_BinaryDeltaOutOfRangeForRuntime = 20049, + + /** + * Delegate was not found. + * @since 6.7 + */ + PTDiffusionError_DelegateNotFound = 20050, + + /** + * Multiple topic constraints found. + * @since 6.7 + */ + PTDiffusionError_MultipleTopicConstraintsFound = 20051, + + /** + * Insufficient data for complete deserialisation. + * @since 6.7 + */ + PTDiffusionError_ConnectionResponseInsufficientData = 20052, + + /** + * Unknown value detected for a given field. + * @since 6.7 + */ + PTDiffusionError_ConnectionResponseUnknownValue = 20053, + + /** + * The service is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_InvalidState = 20054, + + /** + * Topic cache does not have enough information to resolve the received delta. + * @since 6.7 + */ + PTDiffusionError_NoOldValueToApplyDeltaTo = 20055, + + /** + * Topic cache does not have enough information to resolve the received delta type. + * @since 6.7 + */ + PTDiffusionError_NoDeltaTypeAvailable = 20056, + + /** + * Encoding of message headers to string failed. + * @since 6.7 + */ + PTDiffusionError_MessageHeadersToStringEncodingFailed = 20057, + + /** + * Unknown message type. + * @since 6.7 + */ + PTDiffusionError_UnknownMessageType = 20058, + + /** + * Update Stream has an invalid value set for its datatype. + * @since 6.7 + */ + PTDiffusionError_UpdateStreamInvalidNilValue = 20059, + + /** + * Unable to convert received class into expected class. + * @since 6.7 + */ + PTDiffusionError_UnsupportedValueClass = 20060, + + /** + * Unexpected type received. + * @since 6.7 + */ + PTDiffusionError_UnhandledTypeReceived = 20061, + + /** + * Unexpected string start detected. + * @since 6.7 + */ + PTDiffusionError_UnexpectedStringStart = 20062, + + /** + * Unexpected break detected. + * @since 6.7 + */ + PTDiffusionError_UnexpectedBreak = 20063, + + /** + * Unknown datatype for received name. + * @since 6.7 + */ + PTDiffusionError_UnknownDataTypeName = 20064, + + /** + * Received topic data which contradicts the topic cache. + * @since 6.7 + */ + PTDiffusionError_DataLossTopicPathNotInCache = 20065, + + /** + * Topic path is already present in the topic cache. + * @since 6.7 + */ + PTDiffusionError_InvalidSequenceOnCheckByPath = 20066, + + /** + * Topic id is already present in the topic cache. + * @since 6.7 + */ + PTDiffusionError_InvalidSequenceOnCheckById = 20067, + + /** + * Unable to generate notifier from stream. + * @since 6.7 + */ + PTDiffusionError_UnableToGenerateNotifier = 20068, + + /** + * Stream registry is closed. + * @since 6.7 + */ + PTDiffusionError_StreamRegistryClosed = 20069, + + /** + * Buffered data reader has been requested while transport layer is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_BufferedDataReaderRequestInvalidState = 20070, + + /** + * Connection response received while transport layer is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_ConnectionResponseInvalidState = 20071, + + /** + * Message received while transport layer is in an invalid state. + * @since 6.7 + */ + PTDiffusionError_MessageReceivedInvalidState = 20072, + + /** + * Error occurred for unknown reason. + * @since 6.7 + */ + PTDiffusionError_UnknownReason = 20073, + + /** + * Error occurred while appending data to the HTTP message. + * @since 6.7 + */ + PTDiffusionError_HTTPMessageAppendDataError = 20074, + + /** + * Invalid status code received. + * @since 6.7 + */ + PTDiffusionError_InvalidStatusCode = 20075, + + /** + * Authentication challenge handler is not set. + * @since 6.7 + */ + PTDiffusionError_MissingAuthenticationChallengeHandler = 20076, + + /** + * Maximum number of conversations has been reached. + * @since 6.7 + */ + PTDiffusionError_MaximumConversationsReached = 20077, + + /** + * Invalid start of a JSON pointer expression. + * @since 6.7 + */ + PTDiffusionError_JsonPointerExpressionInvalidStart = 20078, + + /** + * Failed to write to stream. + * @since 6.7 + */ + PTDiffusionError_FailedWriteToStream = 20079, + + /** + * Unknown stream error. + * @since 6.7 + */ + PTDiffusionError_UnknownStreamError = 20080, + + /** + * Failed to verify SSL. + * @since 6.7 + */ + PTDiffusionError_FailedToVerifySSL = 20081, + + /** + * Maximum message queue exceeded when writing to stream. + * @since 6.7 + */ + PTDiffusionError_WriteFailedMaxQueueSize = 20082, + + /** + * Failed to write to stream of fixed size or reached capacity. + * @since 6.7 + */ + PTDiffusionError_WriteFailedFixedSize = 20083, + + /** + * Failed to enable SSL. + * @since 6.7 + */ + PTDiffusionError_FailedToEnableSSL = 20084, + + /** + * Failed to configure SSL. + * @since 6.7 + */ + PTDiffusionError_FailedToConfigureSSL = 20085, + + /** + * Connection timeout. + * @since 6.7 + */ + PTDiffusionError_ConnectionTimeout = 20086, + + /** + * Unexpected HTTP response code. + * @since 6.7 + */ + PTDiffusionError_UnexpectedHttpResponseCode = 20087, + + /** + * Unexpected HTTP response header value. + * @since 6.7 + */ + PTDiffusionError_UnexpectedHttpResponseHeaderValue = 20088, + + /** + * Unexpected frame operation code. + * @since 6.7 + */ + PTDiffusionError_UnexpectedFrameOperationCode = 20089, + + /** + * Maximum payload length exceeded. + * @since 6.7 + */ + PTDiffusionError_MaximumPayloadLengthExceeded = 20090, + + /** + * Connection is closed. + * @since 6.7 + */ + PTDiffusionError_ConnectionClosed = 20091, + + /** + * Invalid frame start. + * @since 6.7 + */ + PTDiffusionError_InvalidFrameStart = 20092, + + /** + * Payload data is masked. + * @since 6.7 + */ + PTDiffusionError_MaskedPayloadData = 20093, + + /** + * Unable to support 64-bit encoding in the current environment. + * @since 6.7 + */ + PTDiffusionError_64BitNotSupportedForRuntime = 20094, + + /** + * Failed to initialize compression stream. + * @since 6.7 + */ + PTDiffusionError_ZlibInitFailed = 20095, + + /** + * Failed to process compression. + * @since 6.7 + */ + PTDiffusionError_ZlibProcessFailed = 20096, + + /** + * Failed to destroy compression stream. + * @since 6.7 + */ + PTDiffusionError_ZlibDestroyFailed = 20097, + + /** + * Compressed data is too small. + * @since 6.7 + */ + PTDiffusionError_ZlibCompressedDataTooSmall = 20098, + + /** + * Compressed data header is incorrect. + * @since 6.7 + */ + PTDiffusionError_ZlibCompressedDataHeaderIncorrect = 20099, + + /** + * Last record is not variable. + * @since 6.7 + */ + PTDiffusionError_LastRecordIsNotVariable = 20100, + + /** + * Last record has reached maximum occurrences. + * @since 6.7 + */ + PTDiffusionError_LastRecordHasReachedMaximumOccurrences = 20101, + + /** + * Last record has no occurrences to add field to. + * @since 6.7 + */ + PTDiffusionError_LastRecordHasNoOccurrencesToAddFieldTo = 20102, + + /** + * Last field is not variable. + * @since 6.7 + */ + PTDiffusionError_LastFieldIsNotVariable = 20103, + + /** + * Adding values would exceed maximum field occurrences. + * @since 6.7 + */ + PTDiffusionError_AddingValuesWouldExceedMaximumFieldOccurrences = 20104, + + /** + * Removal would violate the minimum number of occurrences. + * @since 6.7 + */ + PTDiffusionError_RemovalWouldViolateTheMinimumNumberOfOccurrences = 20105, + + /** + * Formatter failed to generate field. + * @since 6.7 + */ + PTDiffusionError_FormatterFailedToGenerate = 20106, + + /** + * String contains invalid characters. + * @since 6.7 + */ + PTDiffusionError_InvalidCharactersInString = 20107, + + /** + * Operation has resulted in an error. + * @since 6.7 + */ + PTDiffusionError_OperationError = 20108, + + /** + * String cannot be encoded due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_EncodeFromUTF8Error = 20109, + + /** + * Data cannot be decoded into string due to non-UTF8 characters. + * @since 6.7 + */ + PTDiffusionError_DecodeToUTF8Error = 20110, + + /** + * Field key's name is missing. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyMissingName = 20111, + + /** + * Field key is missing a closing bracket. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyMissingClosingBracket = 20112, + + /** + * Characters found after closing bracket. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyCharactersFoundAfterClosingBracket = 20113, + + /** + * Index in key could not be parsed. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyIndexCouldNotBeParsed = 20114, + + /** + * The key has too many parts. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldKeyTooManyKeyParts = 20115, + + /** + * The total number of records is less than the minimum required. + * @since 6.7 + */ + PTDiffusionError_InsufficientRecords = 20116, + + /** + * The total number of records exceeds the maximum allowed. + * @since 6.7 + */ + PTDiffusionError_TooManyRecords = 20117, + + /** + * The total number of fields is less than the minimum required. + * @since 6.7 + */ + PTDiffusionError_InsufficientFields = 20118, + + /** + * The model size exceeds the maximum size. + * @since 6.7 + */ + PTDiffusionError_RecordModelTooBig = 20119, + + /** + * The record size exceeds the maximum size. + * @since 6.7 + */ + PTDiffusionError_RecordTooBig = 20120, + + /** + * The total number of fields exceeds the maximum allowed. + * @since 6.7 + */ + PTDiffusionError_TooManyFields = 20121, + + /** + * The record size exceeds the maximum size. + * @since 6.7 + */ + PTDiffusionError_ResolvedRecordIndexExceedsModelSize = 20122, + + /** + * The total number of fields exceeds the maximum allowed. + * @since 6.7 + */ + PTDiffusionError_ResolvedFieldIndexExceedsModelSize = 20123, + + /** + * Root of the JSON is not a dictionary. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaRootIsNotObject = 20124, + + /** + * Value in JSON is not a string. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaNameIsNotString = 20125, + + /** + * Value in JSON is not a dictionary. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaValueIsNotObject = 20126, + + /** + * Value in JSON is not a number. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaValueIsNotNumber = 20127, + + /** + * Record has no fields. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaRecordHasNoFields = 20128, + + /** + * Value in JSON is not an array. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaValueIsNotArray = 20129, + + /** + * Records not found. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldRecordsNotDefined = 20130, + + /** + * Cannot find field with given name. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaCannotFindField = 20131, + + /** + * Record name is not defined. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaRecordNameNotDefined = 20132, + + /** + * Field name is not defined. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaFieldNameNotDefined = 20133, + + /** + * Key is not a string. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaKeyIsNotString = 20134, + + /** + * Unknown key. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaUnknownKey = 20135, + + /** + * Record not found. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaUnknownRecordName = 20136, + + /** + * Need to add a record before adding the fields. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderNoCurrentRecord = 20137, + + /** + * Field already exists with the same name. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderDuplicateFieldName = 20138, + + /** + * Cannot add a field after a variable multiplicity field. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderFieldAfterVariableMultiplicityField = 20139, + + /** + * There are no fields for the current record. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderEmptyFields = 20140, + + /** + * Records are empty. + * @since 6.7 + */ + PTDiffusionError_RecordBuilderEmptyRecords = 20141, + + /** + * Record already exists with the same name. + */ + PTDiffusionError_RecordBuilderDuplicateRecordName = 20142, + + /** + * The scale is not positive. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaScaleNotPositive = 20143, + + /** + * Field is negative. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaNegativeField = 20144, + + /** + * Field is invalid. + * @since 6.7 + */ + PTDiffusionError_RecordSchemaInvalidField = 20145, + + /** + * The string supplied has been encoded incorrectly. + * @since 6.2 + */ + PTDiffusionError_MisquotedInput = 20146, + + /** + * The filter was rejected. The message was not sent to any clients. + * @since 6.5 + */ + PTDiffusionError_SendToFilterRejected = 20147, + + /** + * The session was closed after being unexpectedly disconnected. + * @since 6.0 + */ + PTDiffusionError_Disconnected = 20148, + + /** + * The session was closed locally. + * @since 6.0 + */ + PTDiffusionError_ClosedByClient = 20149, + + /** + * There was a problem when establishing a session. The session is closed. No further operations are possible. + * @since 6.0 + */ + PTDiffusionError_Establishment = 20150, + + /** + * The session operation failed due to a security constraint. Repeating the operation with the same security credentials is likely to fail. + * @since 6.0 + */ + PTDiffusionError_Security = 20151, + + /** + * The session operation failed due to an unrecognized response code. + * @since 6.3 + */ + PTDiffusionError_UnrecognizedResponseCode = 20152, + + /** + * The session was closed remotely. + * @since 6.6 + */ + PTDiffusionError_ClosedByServer = 20153, + + /** + * Server unexpectedly aborted. + * @since 6.0 + */ + PTDiffusionError_ServerAborted = 20154, + + /** + * Dictionary does not contain requested key. + * @since 6.7 + */ + PTDiffusionError_KeyNotFoundInDictionary = 20155, + + /** + * Update Stream recovery buffer limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamBuffer = 20156, + + /** + * Update Stream recovery attempt limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamRecoveryLimit = 20157, + + /** + * Failed to serialise value. + @since 6.9 + */ + PTDiffusionError_ValueSerialisation = 20158, + + /** + * Invalid Protocol Version. + * @since 6.9 + */ + PTDiffusionError_ClientVersionDowngrade = 20159, + + /** + * Invalid argument for the method. + * @since 6.9 + */ + PTDiffusionError_InvalidArgument = 20160, + +}; + +NS_ASSUME_NONNULL_END + diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h new file mode 100644 index 0000000..a5b575b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes wishing to listen to error notifications. + + Error reports indicate that an unexpected condition has occurred. + They are used sparingly. Error conditions that occur in the context of an API + operation and that an application can reasonably handle are reported to + operation-specific delegates or completion handlers, not as error reports. + + A client can typically do nothing about an error report other than to report it + for diagnosis. The server log should be examined for further information. + + @note The PTDiffusionSessionErrorHandler protocol was deprecated in 5.9 and + removed in 6.0. + + @since 6.0 + */ +@protocol PTDiffusionErrorListener + +/** + Called when an error has been reported. + + @param error The error that was reported. + + @since 6.0 + */ +-(void)diffusionDidReportError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h new file mode 100644 index 0000000..38f926d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h @@ -0,0 +1,43 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A feature is a unit of functionality that is available to a client session. + + This is the base interface for features that may be added directly to a client session. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionFeature : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The session associated with the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly, weak) PTDiffusionSession* session; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h new file mode 100644 index 0000000..5bb54e9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h @@ -0,0 +1,428 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionFetchResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A parameterised query that can be used to search the topic tree. + + A new request can be created using the `fetchRequest` + method and modified to specify a range of topics and/or + various levels of detail. The request can then be issued to the server + using the `fetch` method + supplying a topic selector which specifies the selection of topics. The + results are returned via a `completionHandler`. + + As a minimum, the path and type of each selected topic will be returned. + It is also possible to request that the topic values + and/or properties are returned. + + The topics selected by the topic selector can be further restricted by + range. A range is defined by a start path and an end path, and contains + all paths in-between in path order. Given a topic tree containing the + topics: + +
+    a, a/b, a/c, a/c/x, a/c/y, a/d, a/e, b, b/a/x, b/b/x, c
+ 
+ + the range from `a/c/y` to `b/a/x` includes the topics with + paths: + +
+    a/c/x, a/c/y, a/d, a/e, b, b/a/x
+ 
+ + The start point of a range can be specified using #fromTopicPath: or + #afterTopicPath: and an end point using #toTopicPath: or #beforeTopicPath:. + #fromTopicPath: and #toTopicPath: include any topic with the specified path in + the selection, whereas #afterTopicPath: and #beforeTopicPath: are non-inclusive + and useful for paging through a potentially large range of topics. If no start + point is specified, the start point is assumed to be the logical beginning of + the topic tree. Similarly, if no end point is specified, the end point is the + logical end of the topic tree. Ranges should be within the scope indicated by + the topic selector used when issuing the fetch. + + As a minimum, the path and type of each topic selected will be returned. It is + also possible to request that the topic values and/or properties are returned. + + The topic types selected are naturally constrained by the data type indicated + when the fetch is requested. So if + PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: + is used, only PTDiffusionTopicType_String topics will be selected. However, if + PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: + is used, all types compatible with PTDiffusionJSON will be selected including + PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 and + PTDiffusionTopicType_Double. + + To select topic types when values are not required, or to further constrain the + selection when values are required, it is also possible to specify exactly + which topic types to select. + + A limit on the number of results returned can be specified using #first:. This + is advisable when the result set could potentially be large. When such a limit + is used then the result will indicate whether more results for the same + selection would be available via the PTDiffusionFetchResult#more property. + + The request can be sent to the server using one of the fetch methods provided + by data type extensions. Results are returned in path order, earliest path + first, starting from the beginning of any range specified. + + It is also possible to request results from the end of the range indicated by + specifying a limit to the number of results using #last:. This returns up to + the specified number of results from the end of the range, in path order. This + is useful for paging backwards through a range of topics. + + Routing topics are **not** supported, and if encountered will be ignored (i.e. + treated as if they did not exist). + + Instances of this class are immutable and can be safely shared and reused. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Specifies a logical start point within the topic tree. + + If specified, only results for topics with a path that is lexically 'after' the + specified path will be returned. + + This is the non-inclusive equivalent of #fromTopicPath: and if used will + override any previous #fromTopicPath: or #afterTopicPath: constraint. + + @param topicPath The topic path after which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics after the specified path (not inclusive). + + @since 6.2 + */ +-(instancetype)afterTopicPath:(NSString *)topicPath; + +/** + Specifies a logical end point within the topic tree. + + If specified, only results for topics with a path that is lexically 'before' + the specified path will be returned. + + This is the non-inclusive equivalent of #toTopicPath: and if used will override + any previous #toTopicPath: or #beforeTopicPath: constraint. + + @param topicPath The topic path before which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics before the specified path (not inclusive). + + @since 6.2 + */ +-(instancetype)beforeTopicPath:(NSString *)topicPath; + +/** + Specifies a logical start point within the topic tree. + + If specified, only results for topics with a path that is lexically equal to or + 'after' the specified path will be returned. + + This is the inclusive equivalent of #afterTopicPath: and if used will override + any previous #afterTopicPath: or #fromTopicPath: constraint. + + @param topicPath The topic path from which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics from the specified path onwards (inclusive). + + @since 6.2 + */ +-(instancetype)fromTopicPath:(NSString *)topicPath; + +/** + Specifies a logical end point within the topic tree. + + If specified, only results for topics with a path that is lexically equal to or + 'before' the specified path will be returned. + + This is the inclusive equivalent of #beforeTopicPath: and if used will override + any previous #beforeTopicPath: or #toTopicPath: constraint. + + @param topicPath The topic path to which results are to be returned. + + @return A new fetch request derived from this fetch request but selecting only + topics including and before the specified path (inclusive). + + @since 6.2 + */ +-(instancetype)toTopicPath:(NSString *)topicPath; + +/** + Specifies that all properties associated with each topic's + PTDiffusionTopicSpecification should be returned. + + @return A new fetch request derived from this fetch request but specifying that + topic specification properties should be returned. + + @since 6.2 + */ +-(instancetype)withProperties; + + +/** + Include the details of reference topics that are not yet published. + + Topic views that use the {@code delay by} clause + create reference topics in an unpublished state. The topics are + published once the delay time has expired. A topic in the + unpublished state prevents a lower priority topic view from creating + a reference topic with the same path. + + A reference topic in the unpublished state which matches the query + will only be included in the fetch results if the session has + {@code PTDiffusionPathPermission.readTopic} permission for the + reference's source topic as well as {@code PTDiffusionPathPermission.readTopic} + permission for the reference topic. Requiring {@code PTDiffusionPathPermission.readTopic} + permission for the source topic ensures less privileged sessions + cannot derive information from the existence of the reference topic + before the delay time has expired. + + @return a new fetch request derived from this fetch request, + additionally specifying that unpublished reference topics + should be included in the results + + @since 6.5 + */ +-(instancetype)withUnpublishedDelayedTopics; + + +/** + Specifies a maximum number of topic results to be returned from the start of + the required range. + + If this is not specified, the number of results returned will only be limited + by other constraints of the request. + + This should be used to retrieve results in manageable batches and prevent very + large result sets. + + If there are potentially more results that would satisfy the other constraints, + then the fetch result will indicate so via the PTDiffusionFetchResult#hasMore + property. + + Either this or #last: may be specified. This will therefore override any + previous #last: or #first: constraint. + + @param number The maximum number of results to return from the start of the + range. + + @return A new fetch request derived from this fetch request but selecting only + the number of topics specified from the start of the range. + + @exception NSInvalidArgumentException if number is greater than `INT32_MAX`. + + @since 6.2 + */ +-(instancetype)first:(UInt32)number; + +/** + Specifies a maximum number of topic results to be returned from the end of the + required range. + + This is similar to #first: except that the specified number of results are + returned from the end of the range. This is useful for paging backwards through + a range of topics. Results are always returned in topic path order (not reverse + order). + + Either this or #first: may be specified. This will therefore override any + previous #first: or #last: constraint. + + @param number The maximum number of results to return from the end of the + range. + + @return A new fetch request derived from this fetch request but selecting only + the number of topics specified from the end of the range. + + @exception NSInvalidArgumentException if number is greater than `-INT32_MIN`. + + @since 6.2 + */ +-(instancetype)last:(UInt32)number; + +/** + Specifies the maximum data size of the result set. + + This may be used to constrain the size of the result. If not specified then by + default the maximum message size for the session (as specified by + PTDiffusionSessionConfiguration#maximumMessageSize ) is used. + + @param size The maximum size of the result set in bytes. If a value greater + than the session's maximum message size is specified, the maximum message size + will be used. + + @return A new fetch request derived from this fetch request but constraining + the size of the result to the specified maximum. + + @exception NSInvalidArgumentException if size is greater than `INT32_MAX`. + + @since 6.2 + */ +-(instancetype)maximumResultSize:(UInt32)size; + +/** + Specifies that only topics of the specified topic types should be returned. + + If this is not specified, #allTypes will be returned (unless constrained by + value data type). + + If the specified topic type matches the event type of a time series topic, + it will also be returned. The value will be delivered without the associated + metadata. To specify all time series topics use {@link + PTDiffusionTopicType_TimeSeries}. + + This may be used instead to further constrain the results when already + constraining by values. For example, you can use + PTDiffusionFetchRequest#withJSONValues then specify PTDiffusionTopicType_JSON + here to ensure that only JSON topics are returned and not those topics that are + logically value subtypes of JSON (e.g. PTDiffusionTopicType_String). + + If already constraining by value data type then the topic types specified here + must be compatible with the value class specified or the event type for time + series topics. + + PTDiffusionTopicType_Routing may not be specified. + + @param topicTypes Topic types to be selected, boxed as NSNumber instances. + + @return A new fetch request derived from this fetch request but specifying that + only topics of the specified topic types should be returned. + + @throws IllegalArgumentException if invalid topic types are specified + + @since 6.2 + */ +-(instancetype)topicTypes:(NSSet *)topicTypes; + +/** + Specifies a limit on the number of results returned for each deep + branch. + + A deep branch has a root path that has a number of parts equal to the + `deep_branch_depth` parameter. The `deep_branch_limit` specifies the + maximum number of results for each deep branch. + + This method is particularly useful for incrementally exploring a + topic tree from the root, allowing a breadth-first search strategy. + + For example, given a topic tree containing the topics with the + following paths: + +
+ x/0
+ x/x/1
+ x/x/x/2
+ y/y/y/y/3
+ y/y/y/4
+ z/5
+ z/z/6
+ 
+ + Then + +
+ PTDiffusionFetchRequest *const request =
+ [session.topics.fetchRequest limitDeepBranches:1
+                                          limit:1];
+
+ [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
+                                     completionHandler:
+ ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
+ 
+ + will return results with the paths `x/0`, `y/y/y/y/3`, + and `z/5`. The application can then determine the roots of the + tree are `x`, `y`, and `z`. + + The `deepBranchLimit` parameter can usefully be set to + `0`. For example, given the same example topic tree, + +
+ PTDiffusionFetchRequest *const request =
+ [session.topics.fetchRequest limitDeepBranches:3
+                                          limit:0];
+
+ [request fetchBinaryValuesWithTopicSelectorExpression:@"?.//"
+                                     completionHandler:
+ ^(PTDiffusionBinaryFetchResult *const result, NSError *const error)
+ 
+ + will only return results having paths with fewer than three parts; + namely `x/0`, and `z/5`. + + The fetch result does not indicate whether this option caused some + results to be filtered from deep branches. It has no affect on the + ` result. If the result set + contains `deepBranchLimit` results for a particular deep + branch, some topics from that branch may have been filtered. + + @param deepBranchDepth The number of parts in the root path of a + branch for it to be considered deep + + @param deepBranchLimit The maximum number of results to return for + each deep branch + + @return A new fetch request derived from this fetch request but restricting + the number of results for deep branches. + + @since 6.4 + */ +-(instancetype)limitDeepBranches:(UInt32)deepBranchDepth + limit:(UInt32)deepBranchLimit; + +/** + A constant set of all topic types that can be fetched. + + @return Set of all topic types that can be fetched. + + @since 6.2 + */ ++(NSSet *)allTypes; + +/** + Sends a fetch request to the server, specifying that values should not be + returned for selected topics. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by #fromTopicPath: / + #afterTopicPath: and/or #toTopicPath: / #beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.2 + */ +-(void)fetchWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h new file mode 100644 index 0000000..b28c2bd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class PTDiffusionFetchTopicResult; + +/** + @brief Base class for results from fetch operations issued to the server. + + A fetch operation is issued using a PTDiffusionFetchRequest. + + @since 6.2 + */ +@interface PTDiffusionFetchResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * results; + +/** + Indicates whether the fetch could have returned more results if it had not been + constrained by the PTDiffusionFetchRequest#first: , + PTDiffusionFetchRequest#last: or + PTDiffusionFetchRequest#maximumResultSize: limits. + + `YES` if more results could have been returned, otherwise `NO`. + + @since 6.2 + */ +@property(nonatomic, readonly, getter=hasMore) BOOL more; + + + +/** + The number of elements in the fetch result + + @return the size of the results list + + @since 6.5 + */ +-(NSUInteger)size; + + +/** + Return `YES` if the result contains zero elements + + @return `YES` if result list is empty + + @since 6.5 + */ +-(BOOL)isEmpty; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h new file mode 100644 index 0000000..ba25ffd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h @@ -0,0 +1,52 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTopicSpecification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a fetch operation for a single selected + topic. + + @since 6.2 + */ +@interface PTDiffusionFetchTopicResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The topic path. + + @since 6.2 + */ +@property(nonatomic, readonly) NSString* path; + +/** + The topic specification. + + If the request specified PTDiffusionFetchRequest#withProperties, the result + reflects the topic's specification and can be used to create an identical + topic. If the request did not specify that properties were to be included, the + specification's property map will be empty. + + @since 6.2 + */ +@property(nonatomic, readonly) PTDiffusionTopicSpecification* specification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h new file mode 100644 index 0000000..68585a2 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result of a querying the server for the + session properties of a particular session ID or session filter + + @since 6.5 + */ +@interface PTDiffusionGetSessionPropertiesResult : NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Map of the requested session property values + + @since 6.5 + */ +@property(nonatomic, readonly) NSDictionary * properties; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h new file mode 100644 index 0000000..b82cebc --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h @@ -0,0 +1,139 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Permissions that protect globally scoped, access-controlled operations. + + There is no related object, permission is granted globally. + + @see PTDiffusionPathPermission + + @since 6.3 + */ +@interface PTDiffusionGlobalPermission : PTDiffusionEnumeration + +/** + Add an authentication handler. + + @return Instance indicating the permission to add an authentication handler. + + @since 6.3 + */ ++(instancetype)authenticate; + +/** + List or listen to client sessions. + + @return Instance indicating the permission to list of listen to client sessions. + + @since 6.3 + */ ++(instancetype)viewSession; + +/** + Alter a client session. This covers a range of actions including: + + - subscribe session to topic + - throttle session + - enable conflation for session + - close session + + @return Instance indicating permission to alter a client session. + + @since 6.3 + */ ++(instancetype)modifySession; + +/** + Required to register any server-side handler. + + This restricts clients from consuming resources by registering long lived + handlers (or example, addMessageHandler). Typically these would never be called + due to lack of other permissions. + + @return Instance indicating permission to register any server-side handler. + + @since 6.3 + */ ++(instancetype)registerHandler; + +/** + View the server's runtime state - for example, read metrics. + + @return Instance indicating permission to view the server's runtime state. + + @since 6.3 + */ ++(instancetype)viewServer; + +/** + Change the server's runtime state - for example, shut it down. + + @return Instance indicating permission to change the server's runtime state. + + @since 6.3 + */ ++(instancetype)controlServer; + +/** + Read the security configuration. + + @return Instance indicating permission to read the security configuration. + + @since 6.3 + */ ++(instancetype)viewSecurity; + +/** + Change the security configuration. + + @return Instance indicating permission to change the security configuration. + + @since 6.3 + */ ++(instancetype)modifySecurity; + +/** + A permission that is unsupported by the session. + + @return Instance indicating an unsupported permission by the session. + + @since 6.3 + */ ++(instancetype)unknownGlobalPermission; + +/** + Read topic views. + + @return Instance indicating the permission to read topic views. + + @since 6.3 + */ ++(instancetype)readTopicViews; + +/** + Modify topic views. + + @return Instance indicating the permission to modify topic views. + + @since 6.3 + */ ++(instancetype)modifyTopicViews; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h new file mode 100644 index 0000000..d82908f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionHTTPAuthenticationChallengeHandler; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The protocol implemented by classes providing authentication challenge + handler implementations for HTTP connections. + + Objects conforming to this protocol must be supplied with the session + configuration in order to support HTTP proxies that require authentication. + + @since 6.0 + */ +@protocol PTDiffusionHTTPAuthentication + +/** + Create a challenge handler to be responsible for responding to authentication + challenges during connection negotiation. + + @return the challenge handler + + @since 6.0 + */ +-(id)createHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h new file mode 100644 index 0000000..74c30b3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h @@ -0,0 +1,65 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionHTTPAuthenticationChallengeStatus; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An HTTP response from a server connection request, challenging the + client to authenticate. + + @see PTDiffusionHTTPAuthenticationChallengeHandler + + @since 6.0 + */ +@interface PTDiffusionHTTPAuthenticationChallenge : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The status received from the HTTP server. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionHTTPAuthenticationChallengeStatus* status; + +/** + The headers received from the HTTP server. + + @since 6.0 + */ +@property(nonatomic, readonly) NSDictionary* headers; + +/** + Compares the receiver to the given challenge. + + @param challenge The HTTP authentication challenge object with which to compare + the receiver. + + @return `YES` if the challenge is identical to the receiver, otherwise `NO`. + + @note Two challenge objects are equal if they have the same statusCode and + headers properties. The reasonPhrase property is not used when evaluating + equality. + + @since 6.0 + */ +-(BOOL)isEqualToHTTPAuthenticationChallenge:(nullable PTDiffusionHTTPAuthenticationChallenge *)challenge; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h new file mode 100644 index 0000000..f2125a6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionHTTPAuthenticationChallenge; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The protocol implemented by classes providing an authentication challenge + handler implementation for HTTP connections. + + @see PTDiffusionHTTPAuthentication + + @since 6.0 + */ +@protocol PTDiffusionHTTPAuthenticationChallengeHandler + +/** + Called when a challenge is received. The receiver must return a response to the + challenge. + + @param challenge The challenge received from the HTTP server, encapsulating + Status-Code and headers. + + @return HTTP headers to be sent in response to the challenge. + + @exception NSInvalidArgumentException If challenge is `nil`. + + @since 6.0 + */ +-(NSDictionary*)responseForChallenge:(PTDiffusionHTTPAuthenticationChallenge *)challenge; + +/** + The maximum number of HTTP transactions permitted before authentication fails. + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger maximumConversations; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h new file mode 100644 index 0000000..97ef12d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h @@ -0,0 +1,79 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An HTTP Status received as part of an authentication challenge. + + @see PTDiffusionHTTPAuthenticationChallenge + + @since 6.0 + */ +@interface PTDiffusionHTTPAuthenticationChallengeStatus : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The server responded to the connection request with HTTP Status-Code 401. + + @return The HTTP authentication challenge status response from the server. + + @note The reasonPhrase property for the static instance returned by this + method will always be `nil`. + + @since 6.0 + */ ++(instancetype)unauthorized; + +/** + The server responded to the connection request with HTTP Status-Code 407. + + @return The HTTP authentication challenge status response from the server. + + @note The reasonPhrase property for the static instance returned by this + method will always be `nil`. + + @since 6.0 + */ ++(instancetype)proxyAuthenticationRequired; + +/** + The HTTP Reason-Phrase provided by the server with the response that generated + this status. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) NSString* reasonPhrase; + +/** + Compares the receiver to the given status. + + @param status The HTTP authentication challenge status object with which to + compare the receiver. + + @return `YES` if the status is identical to the receiver, otherwise `NO`. + + @note Two status objects are equal if they mean the same thing. + The reasonPhrase property is not used when evaluating equality. + + @since 6.0 + */ +-(BOOL)isEqualToHTTPAuthenticationChallengeStatus:(nullable PTDiffusionHTTPAuthenticationChallengeStatus *)status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h new file mode 100644 index 0000000..d17e32d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionHTTPAuthentication; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Connection details for an HTTP proxy to be tunneled through in order to + reach the Diffusion server. + + @see PTDiffusionSessionConfiguration + + @since 6.0 + */ +@interface PTDiffusionHTTPProxyConfiguration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a HTTP proxy authentication object initialized with the given host and port. + + @param host The host name of the HTTP proxy. + + @param port The port of the HTTP proxy. + + @return A HTTP proxy authentication object initialized with the given host and port. + + @exception NSInvalidArgumentException If host is `nil`. + + @since 6.0 + */ +-(instancetype)initWithHost:(NSString *)host + port:(UInt32)port NS_DESIGNATED_INITIALIZER; + +/** + Returns a HTTP proxy authentication object initialized with the given host, port + and authentication. + + @param host The host name of the proxy. + + @param port The TCP port of the proxy. + + @param authentication The provider to be used if the proxy requests authentication. + + @return A HTTP proxy authentication object initialized with the given host, port + and authentication. + + @exception NSInvalidArgumentException If either host or authentication is `nil`. + + @see PTDiffusionBasicHTTPProxyAuthentication + + @since 6.0 + */ +-(instancetype)initWithHost:(NSString *)host + port:(UInt32)port + authentication:(id)authentication NS_DESIGNATED_INITIALIZER; + +/** + The host name of the proxy. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* host; + +/** + The TCP port of the proxy. + + @since 6.0 + */ +@property(nonatomic, readonly) UInt32 port; + +/** + The provider to be used if the proxy requests authentication. + + @see PTDiffusionBasicHTTPProxyAuthentication + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) id authentication; + +/** + Compares the receiver to the given configuration. + + @param configuration The HTTP proxy configuration object with which to compare + the receiver. + + @return `YES` if the configuration is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToHTTPProxyConfiguration:(nullable PTDiffusionHTTPProxyConfiguration *)configuration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h new file mode 100644 index 0000000..a702e5a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h @@ -0,0 +1,56 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Representation of the HTTP Response received from the server. + */ +@interface PTDiffusionHTTPResponse : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @brief Status code as defined by RFC 2616, section 6.1.1. + + The Status-Code element is a 3-digit integer result code of the + attempt to understand and satisfy the request. + + */ +@property(nonatomic, readonly) NSInteger statusCode; + +/** + @brief Reason Phrase as defined by RFC 2616, section 6.1.1. + + The Reason-Phrase is intended to give a short textual description of the Status-Code. + */ +@property(nonatomic, readonly) NSString* reasonPhrase; + +/** +@brief The headers of the HTTP response. + */ +@property(nonatomic, readonly) NSDictionary* headers; + +/** + @brief The message body of the HTTP response + + Will be nil if there was no message body. + */ +@property(nonatomic, readonly, nullable) NSData* bodyData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h new file mode 100644 index 0000000..2eadd76 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h @@ -0,0 +1,837 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionBinaryDelta; +@class PTDiffusionJSONFetchResult; +@class PTDiffusionJSONTimeSeriesQueryResult; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionResponse; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionJSONRequestDelegate; +@protocol PTDiffusionJSONRequestStreamDelegate; +@protocol PTDiffusionJSONSessionResponseStreamDelegate; +@protocol PTDiffusionJSONValueStreamDelegate; +@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" + + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable JSON value with support for both binary and JSON deltas. + + JSON is "JavaScript Object Notation", a lightweight data-interchange format. + See [www.json.org](http://www.json.org). + + Internally the value is stored and transmitted not as a JSON string, but in + CBOR format to reduce memory and network overhead. CBOR (Concise Binary + Object Representation) is a standardized format for binary representation of + structured data defined by [RFC 7049](https://tools.ietf.org/html/rfc7049). + See [www.cbor.io](http://www.cbor.io). + + Each JSON value is represented as a single CBOR data item. CBOR supports + composite data types just like JSON, so this data item can be an array or a + map of other data items. The `null` value is represented by the CBOR `Null` + value. + + @since 5.9 + */ +@interface PTDiffusionJSON : PTDiffusionBytes + +/** + Return a JSON object initialized with the given object. + + Object hierarchies passed to this method must be constructed from Foundation + objects which can be logically encoded with CBOR. This provides flexibility + above and beyond the basic capabilities of a 'pure JSON' encoding as well as + being less restrictive than the capabilities of NSJSONSerialization. + + This means: + - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, + `NSDictionary` or `NSNull`. + - Dictionary keys may be instances of any supported type. + - The top level object may be of any supported type. + + Being more permissive than NSJSONSerialization in that: + - `NSData` instances may be used. + - Dictionary keys are not restricted to instances of `NSString`. + - The top level object is not restricted to being a container (`NSArray` or + `NSDictionary`). + + Applications may take advantage of the more permissive nature of the + underlying CBOR encoding by using these capabilities, assuming: + 1. Encoding to JSON string is not required. + 2. Other client applications, perhaps developed in a different language and + against a different library, can also support the capabilities. + + @param object The object to be serialized to CBOR and stored internally to + represent the receiver. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return JSON object initialized with the given object. + + @exception NSInvalidArgumentException Raised if the `object` argument is `nil`. + + @since 5.9 + */ +-(nullable instancetype)initWithObject:(id)object + error:(NSError **)error; + +/** + Convenience wrapper around initWithObject:error: that first uses + NSJSONSerialization to generate the object to be serialized. + + @param jsonData A data object containing JSON data. See Apple's + NSJSONSerialization documentation for detailed information regarding + supported encodings. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return JSON object initialized with the given JSON data. + + @exception NSInvalidArgumentException Raised if the `jsonData` argument is `nil`. + + @since 5.9 + */ +-(nullable instancetype)initWithJSONData:(NSData *)jsonData + error:(NSError **)error; + +/** + Convenience wrapper around initWithJSONData:error: that first encodes the + given string as UTF-8 (NSUTF8StringEncoding), requiring lossless conversion. + + @param jsonString A JSON string. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return JSON object initialized with the given JSON string. + + @exception NSInvalidArgumentException Raised if the `jsonString` argument is `nil`. + + @since 6.0 + */ +-(nullable instancetype)initWithJSONString:(NSString *)jsonString + error:(NSError **)error; + +/** + Compare the receiver's JSON value with another (e.g. an earlier version) to + create a binary delta. + + @param json The original to which the delta should be able to be applied in + order to generate the value represented by the receiver. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return A delta representing the difference between json and the receiver, + or `nil` if there was an error (e.g. either the original or the receiver + don't represent a valid JSON value). + + @exception NSInvalidArgumentException Raised if the json argument is `nil`. + + @since 5.9 + */ +-(nullable PTDiffusionBinaryDelta *)binaryDiffFromJSON:(PTDiffusionJSON *)json + error:(NSError **)error; + +/** + Apply a binary delta to the receiver's JSON value to create a new value. + + @param delta The delta describing the changes to be applied to the receiver's + value in order to create the value to be returned. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return The new JSON value, or `nil` if there was an error (e.g. the receiver + does not represent a valid JSON value). + + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. + + @since 5.9 + */ +-(nullable PTDiffusionJSON *)applyDelta:(PTDiffusionBinaryDelta *)delta + error:(NSError **)error; + +/** + Check whether the receiver is valid. + + @param error If not valid, upon return contains an `NSError` object that + describes the problem. + + @return `YES` if this instance is valid. + + @since 5.9 + */ +-(BOOL)validateWithError:(NSError **)error; + +/** + Creates a Foundation object from the receiver's JSON value. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return An object, or `nil` if there was an error (e.g. the receiver doesn't + represent a valid JSON value). + + @since 5.9 + */ +-(nullable id)objectWithError:(NSError **)error; + +/** + Convenience wrapper around objectError: that then uses NSJSONSerialization to + generate the JSON data. + + @param error If an error occurs, upon return contains an `NSError` object + that describes the problem. + + @return A data object containing JSON, or `nil` if there was an error (e.g. + the receive doesn't represent a valid JSON value or cannot be converted to + pure JSON). + + @since 5.9 + */ +-(nullable NSData*)JSONDataWithError:(NSError **)error; + +/** + A request that can be used to send this value using messaging. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRequest* request; + +/** + A response that can be used to send this value using messaging. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionResponse* response; + +/** + An update constraint requiring the current value of a topic to match this + value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; + +/** + Creates a value stream capable of receiving JSON values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ ++(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving JSON time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving JSON requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving JSON requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving JSON responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; + +/** + Compares the receiver to the given JSON. + + @param json The JSON object with which to compare the receiver. + + @return `YES` if the data in json is equal to the contents of the receiver, otherwise `NO`. + + @note Two JSON objects are equal if they are internally represented by the + same CBOR encoding. + + @since 5.9 + */ +-(BOOL)isEqualToJSON:(nullable PTDiffusionJSON *)json; + +@end + +/** + @brief Extension adding support for responding to requests using JSON values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionJSON) + +/** + Dispatch a response to a request. + + @param json The value to send in response. + + @exception NSInvalidArgumentException Raised if the json argument is `nil`. + + @since 6.0 + */ +-(void)respondWithJSON:(PTDiffusionJSON *)json; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a JSON response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionJSON) + +/** + Send a request for which a JSON response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a JSON response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + JSONCompletionHandler:(void (^)(PTDiffusionJSON * _Nullable json, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using JSON values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) + +/** + Update a time series topic by appending a new JSON value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + JSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + + +/** + Update a time series topic by appending a new JSON value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + JSONValue:(PTDiffusionJSON *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new JSON value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + JSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have JSON values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + JSONCompletionHandler:(void (^)(PTDiffusionJSONTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with JSON. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionJSON) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with JSON. + + The JSON data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as + JSON will be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchJSONValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionJSONFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with JSON values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionJSON) + +/** + Sets a topic to a specified JSON value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toJSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified JSON value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toJSONValue:(PTDiffusionJSON *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a JSON value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToJSONValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a JSON value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToJSONValue:(PTDiffusionJSON *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with JSON values + if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If either argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + JSON values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#json. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +@end + +NS_ASSUME_NONNULL_END + +#pragma clang diagnostic pop diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDelta.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDelta.h new file mode 100644 index 0000000..81a2962 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDelta.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; +@class PTDiffusionJSONDeltaChangeMap; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable structural delta describing the differences between two + JSON values. + + Unlike a binary delta, a structural delta can be queried to determine its + effect. + + JSON deltas are useful for identifying small changes to complex JSON values. + + @see PTDiffusionJSON + + @since 6.3 + */ +@interface PTDiffusionJSONDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The parts of the first JSON value not found in the second JSON value. + + @note The pointer references used for the change map keys are relative to the + first JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* removed; + +/** + The parts of the second JSON value not found in the first JSON value. + + @note The pointer references used for the change map keys are relative to the + second JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* inserted; + +/** + Whether the two JSON values used to create this instance are different. + + @since 6.3 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h new file mode 100644 index 0000000..d09763e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h @@ -0,0 +1,86 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable map describing the changes to a JSON value. + + The map contains an entry for each change, as follows: + + - The key is a [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the change in the complete value. Since a JSON value is a + list of zero or more data items, the reference always begins with an array + index. For example, the first part is identified by the JSON Pointer `/0`. + - The value is part of the complete value. It is returned as a JSON object that + can be parsed independently as a unit, or converted to a Foundation object or + JSON string. + + @since 6.3 + */ +@interface PTDiffusionJSONDeltaChangeMap : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The entries forming the change map. + */ +@property(nonatomic, readonly) NSDictionary* map; + +/** + Returns a view of the portion of this map whose keys are descendants of + `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the descendants of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)descendantsOfPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Returns a view of the portion of this map whose keys are descendants or parents + of `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + This method can be used to determine whether a structural delta affects a + particular part of a JSON value. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the intersection of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)intersectionOfPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h new file mode 100644 index 0000000..7c5533e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSONFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a JSON fetch operation issued to the + server. + + A JSON fetch operation is issued using the + PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionJSONFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * jsonResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h new file mode 100644 index 0000000..0450807 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a JSON fetch operation for a single + selected topic. + + A JSON fetch operation is issued using the + PTDiffusionFetchRequest#fetchJSONValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionJSONFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) PTDiffusionJSON* json; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h new file mode 100644 index 0000000..ca6c7ad --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Result of calls to the Partial Update feature. + + See PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:completionHandler: and + PTDiffusionTopicUpdateFeature::applyJsonPatch:toPath:withConstraint:completionHandler: + + Check `failedOperation` to determine whether any of the operations failed. + + @since 6.4 + + */ +@interface PTDiffusionJSONPatchResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @brief an optional NSNumber which if non-null, contains the index of + the first operation which failed + */ +@property(nonatomic, nullable, readonly) NSNumber *failedOperation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h new file mode 100644 index 0000000..5a8bd92 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling JSON messaging requests with a + handler registered at the server. + + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionJSONRequestDelegate + +/** + Called when a JSON request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param json The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithJSON:(PTDiffusionJSON *)json + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h new file mode 100644 index 0000000..3b737e9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling JSON messaging requests. + + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionJSONRequestStreamDelegate + +/** + Called when a JSON request has been received. + + @param stream The stream that received the request. + + @param json The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithJSON:(PTDiffusionJSON *)json + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h new file mode 100644 index 0000000..e51bb2c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling JSON messaging responses from + individual sessions. + + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionJSONSessionResponseStreamDelegate + +/** + Called when a session responds to a request with JSON. + + @param stream The stream that received the response. + + @param json The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithJSON:(PTDiffusionJSON *)json + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h new file mode 100644 index 0000000..e0edc20 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as JSON. + + @since 6.0 + */ +@interface PTDiffusionJSONTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The JSON value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionJSON* json; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..fdf131e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSONTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + JSON values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with JSON values. + + @since 6.0 + */ +@protocol PTDiffusionJSONTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a JSON value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldJsonEvent The previous event. If `nil` then this is the first event. + + @param newJsonEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldJSONEvent:(nullable PTDiffusionJSONTimeSeriesEvent *)oldJsonEvent + newJSONEvent:(PTDiffusionJSONTimeSeriesEvent *)newJsonEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h new file mode 100644 index 0000000..bca18ac --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSONTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of JSON time series events. + + @since 6.0 + */ +@interface PTDiffusionJSONTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The JSON time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* jsonEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h new file mode 100644 index 0000000..5389c12 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with JSON + values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionJSONUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSON* value; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either value or completionHandler is + `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(PTDiffusionJSON *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h new file mode 100644 index 0000000..bcb1b11 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionJSON; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for JSON + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for JSON + topics. + + @see PTDiffusionJSON + + @since 5.9 + */ +@protocol PTDiffusionJSONValueStreamDelegate + +/** + An update was received for a topic path handled by a JSON value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldJson The previous value. If `nil` then this is the first value. + + @param newJson The new value derived from the last update received from the + server. + + @since 5.9 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldJSON:(nullable PTDiffusionJSON *)oldJson + newJSON:(PTDiffusionJSON *)newJson; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h new file mode 100644 index 0000000..f835e7e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h @@ -0,0 +1,111 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionLoggingDestinationConfiguration; +@class PTDiffusionLoggingLevel; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Logging provides access to debug information that can be enabled at runtime. + + Changes to properties here have immediate effect on the verbosity or otherwise + of log output. + + The format of output log messages is subject to change. + + By default messages are sent to the Apple System Log facility using synchronous + calls to the Foundation framework's NSLog function. The destinationConfiguration + property can be used to change this behaviour. + + @since 5.7 + */ +@interface PTDiffusionLogging : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns the Diffusion logging object representing the current application process. + + @return Singleton Diffusion logging object representing the current application process. + + @since 5.7 + */ ++(PTDiffusionLogging *)logging; + +/** + Global switch to switch on or off logging. A value of `YES` switches logging on and + a value of `NO` switches it off. + + The default value for this property is `NO`. + + @note Logging may be switched on using this property but the amount of informational + messages output depends on the combination of other properties defined by this + interface. + + @since 5.7 + */ +@property(nonatomic, readwrite, getter=isEnabled) BOOL enabled; + +/** + The ranking of information messages required to be output. + This property allows the granularity of log output to be set. + Only messages ranked at this granularity or above will be enabled. + + The default value for this property is [PTDiffusionLoggingLevel info]. + + @since 5.7 + */ +@property(nonatomic, readwrite) PTDiffusionLoggingLevel* level; + +/** + Set the format of log message output. The syntax of this string is subject to change + so the required formatting tokens are not documented or intended to be constructed for use + by application developers unless instructed by a member of support staff in order to + assist in debugging an issue. + + @param format The format of log message output. + + @since 5.7 + */ +-(void)setFormat:(NSString *)format; + +/** + Set all properties to default values, as required for production use when + debugging information is not required or desired. + A call to this method turns off all runtime-switchable log output. + + @note This method intentionally does not reset the destinationConfiguration + property. + + @since 5.7 + */ +-(void)reset; + +/** + Options allowing log output to be directed to a custom location. + + The default value for this property is `nil`, specifying that messages should + be sent to the Apple System Log facility using synchronous calls to the + Foundation framework's NSLog function. + + @since 6.0 + */ +@property(nonatomic, readwrite, nullable) PTDiffusionLoggingDestinationConfiguration* destinationConfiguration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h new file mode 100644 index 0000000..89407c2 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h @@ -0,0 +1,61 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Options allowing log output to be directed to a custom location. + + @see PTDiffusionLogging + + @since 6.0 + */ +@interface PTDiffusionLoggingDestinationConfiguration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a logging destination configuration object initialized with the + given message printer. + + @param messagePrinter A block that may be called multiple times during the + lifetime of the current process. + + @return A logging destination configuration object initialized with the given + message printer. + + @note The message printer will always be called from a single GCD dispatch + queue managed by the client library and dedicated to this application process. + + @since 6.0 + */ +-(instancetype)initWithMessagePrinter:(PTDiffusionLoggingMessagePrinter)messagePrinter NS_DESIGNATED_INITIALIZER; + +/** + A block that may be called multiple times during the lifetime of the current + process in order to emit formatted log messages. + + @note This property has the `nullable` attribute in order to allow for future + expansion of this API. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable, copy) PTDiffusionLoggingMessagePrinter messagePrinter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h new file mode 100644 index 0000000..556f664 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h @@ -0,0 +1,80 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A level of information events useful for debugging. + + The levels defined here are modelled on those defined by SLF4J as used by + the Diffusion Java API. + + @see PTDiffusionLogging + + @since 5.7 + */ +@interface PTDiffusionLoggingLevel : PTDiffusionEnumeration + +/** + Designates error events that might still allow the application to continue + running normally. + + @return Instance representing the error logging level. + + @since 5.7 + */ ++(instancetype)error; + +/** + Designates potentially harmful situations. + + @return Instance representing the warning logging level. + + @since 5.7 + */ ++(instancetype)warn; + +/** + Designates informational messages that highlight the process of the application + at a coarse-grained level. + + @return Instance representing the informational logging level. + + @since 5.7 + */ ++(instancetype)info; + +/** + Designates fine-grained informational messages that are most useful to debug + an application. + + @return Instance representing the debug logging level. + + @since 5.7 + */ ++(instancetype)debug; + +/** + Designates finer-grained informational events than debug. + + @return Instance representing the trace logging level. + + @since 5.7 + */ ++(instancetype)trace; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h new file mode 100644 index 0000000..d15d48b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h @@ -0,0 +1,26 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The type definition for a block accepting formatted log messages. + + @see PTDiffusionLoggingDestinationConfiguration + + @since 6.0 + */ +typedef void (^PTDiffusionLoggingMessagePrinter)(NSString* message); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h new file mode 100644 index 0000000..15e6912 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h @@ -0,0 +1,297 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBytes; +@class PTDiffusionRequestStream; +@class PTDiffusionTopicSelector; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionSessionId; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTopicTreeRegistration; + + +/** + Values assigned to the `code` property of NSError objects generated by the + PTDiffusionMessagingFeature. + + @since 6.5 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionMessagingFeatureErrorCode) { + /** + The filter was rejected. The message was not sent to any clients. + + @see PTDiffusionUnderlyingErrorsKey + + @since 6.5 + + @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. + */ + PTDiffusionMessagingFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead.") = 1, +}; + + +NS_ASSUME_NONNULL_BEGIN + + +/** + The value assigned to the `domain` property of NSError objects generated by the + PTDiffusionMessagingFeature. + + @since 6.5 + + @deprecated since 6.7 Error domains have been converged into PTDiffusion. + */ +extern NSString *const PTDiffusionMessagingFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); + + +/** + @brief This feature provides a client session with request-response messaging + capabilities that can be used to implement application services. + + Request-response messaging allows a session to send requests to other + sessions. Each receiving session provides a corresponding response, which is + returned to the sending session. Each request and response carries an + application provided value. + + The method used to send a request determines which sessions will receive it. + Each request is routed using the provided *message path* – an + application provided string. Two addressing schemes are provided: + unaddressed requests and addressed requests. + + ### Unaddressed requests + + A session can provide an application service by implementing a handler and + registering it with the server. This is somewhat similar to implementing a + REST service, except that interactions between the sender and receiver are + asynchronous. + + Unaddressed requests sent using `sendRequest` + are routed by the server to a handler that has been pre-registered by another + session, and matches the message path. + + Handlers are registered with `#addRequestHandler:forPath:sessionProperties:completionHandler:`. + Each session may register at most one handler for a given message path. + Optionally, one or more session property names can be provided (see + PTDiffusionSession for a full description of session properties), in which + case the values of the session properties for each recipient session will be + returned along with its response. To add a request handler, the control client + session must have PTDiffusionGlobalPermission.registerHandler permission. If + registering to receive session property values, the session must also have + PTDiffusionGlobalPermission.viewSession permission. + + Routing works as follows: + + 1. The session sends the request, providing the message path, the response stream, + the request value and the completion handler that will be called once the server replies. + + 2. The server uses the message path to apply access control. The sender must have the + PTDiffusionPathPermission.sendToMessageHandler path permission for the message path, + or the request will be rejected. + + 3. The server uses the message path to select the appropriate recipient session. + Recipient sessions must pre-register a handler. If there is no registered recipient + session, the request will be rejected. + + 4. Otherwise, the server forwards the request to one of the sessions registered + to handle the message path. The message path is also passed to the recipient + session, providing a hierarchical context. + + 5. The recipient session processes the request and returns a response to the + server, which forwards the response to the sending session. + + Registration works across a cluster of servers. If no matching handler is + registered on the server to which the sending session is connected, the + request will be routed to another server in the cluster that has one. + + ### Addressed Requests + + Addressed requests provide a way to perform actions on a group of sessions, + or to notify sessions of one-off events (for repeating streams of events, use + a topic instead). + + An addressed request can be sent to a set of sessions using + `#sendRequest:toFilter:path:responseStream:completionHandler:`. For the details of session + filters, see PTDiffusionSession. Sending a request to a filter will match zero + or more sessions. Each response received will be passed to the provided + completionHandler. As a convenience, an addressed request can be sent a + specific session using the overloaded variant of + `sendRequest:toSessionId:completionHandler` that accepts a session id. + + Sending an addressed request requires PTDiffusionPathPermission.sendToSession + permission. + + If the sending session is connected to a server belonging to a cluster, the + recipient sessions can be connected to other servers in the cluster. The + filter will be evaluated against all sessions hosted by the cluster. + + To receive addressed requests, a session must set up a local request stream + to handle the specific message path, using `#setRequestStream:forPath:`. + When a request is received for the message path, the method + `diffusionStream:didReceive...Request:` responder from the + PTDiffusionStreamDelegate is triggered. + The session should respond using the provided responder. + Stream delegates receive a `diffusionDidCloseStream:` callback when + unregistered and a `diffusionStream:didFailOnError:` if the session is closed. + + If a request is sent to a session that does not have a matching stream for + the message path, an error will be returned to the sending session. + + ### Accessing the feature + Obtain this feature from a PTDiffusionSession as follows: + +
+ PTDiffusionMessagingFeature * messaging = session.messaging;
+ 
+ + For more detail, + see: @ref md_messaging "Messaging with the Apple client library". + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionMessagingFeature : PTDiffusionFeature + +/** + Assign the request stream to handle requests sent to the given path. + + @param stream The request stream which should be mapped to receive requests + sent to the given path. + + @param path The path for which received requests should be dispatched to the + given request stream. + + @return The previously set request stream for the given path, or `nil` if this + is a fresh dispatch mapping. + + @since 6.0 + */ +-(nullable PTDiffusionRequestStream *)setRequestStream:(PTDiffusionRequestStream *)stream + forPath:(NSString *)path; + +/** + Remove the request stream mapped to the given path. + + @param path The path for which any request stream mapping should be removed. + + @return The previously set request stream for the given path, or `nil` if there + was not an existing dispatch mapping. + + @since 6.0 + */ +-(nullable PTDiffusionRequestStream *)removeRequestStreamForPath:(NSString *)path; + + +/** + Register a request handler to handle messages received from other client + sessions on a path. + + @param handler Specifies the handler to be registered at the server. + + @param path The request path. + + @param sessionProperties a list of keys of session properties that should + be supplied with each message. See PTDiffusionSession for a full list of + available fixed property keys. To request no properties supply an empty list. + To request all fixed properties include PTDiffusionSession#allFixedProperties + as a key. In this case any other fixed property keys would be ignored. + To request all user properties include PTDiffusionSession#allUserProperties + as a key. In this case any other user properties are ignored. + + @param 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 the `registration` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.5 + */ +-(void)addRequestHandler:(PTDiffusionRequestHandler *)handler + forPath:(NSString *)path + sessionProperties:(NSArray *)sessionProperties + completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +/** + Register a request handler to handle requests from other client session + for a branch of the message path hierarchy. + + Each control session may register a single handler for a branch. When the + handler is no longer required, it may be closed using the + PTDiffusionTopicTreeRegistration provided by the completionHandler. To change + the handler for a particular branch the previous handler must first be + closed. + + This is equivalent to calling + `#addRequestHandler:forPath:sessionProperties:completionHandler:` + with an empty array for session properties. + + @param handler Specifies the handler to be registered at the server. + + @param path The request path. + + @param 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 the `registration` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.5 + */ +-(void)addRequestHandler:(PTDiffusionRequestHandler *)handler + forPath:(NSString *)path + completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +/** + Send a request to all sessions that satisfy a given session filter. + + @param request The request to send. + + @param filter The session filter expression. + + @param path The path to send the request to. + + @param responseStream The stream that will handle the incoming responses. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. Success indicates that the server has dispatched all + the requests. + + @note The completion handler block will be invoked with a `nil` for the `error` + argument and zero for the `count` argument if no client sessions matched the + filter. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toFilter:(NSString *)filter + path:(NSString *)path + responseStream:(PTDiffusionSessionResponseStream *)responseStream + completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h new file mode 100644 index 0000000..7a99879 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h @@ -0,0 +1,66 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The common base interface for metric collectors. + + @since 6.7 + */ +@interface PTDiffusionMetricCollector: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Name of the metric collector + + @since 6.7 + */ +@property(nonatomic, readonly) NSString *name; + + +/** + Indicates whether the metric collector exports to Prometheus. + + @since 6.7 + */ +@property(nonatomic, readonly) BOOL exportsToPrometheus; + + +/** + @brief Limit the number of groups maintained by this metric collector. + + Session metric collectors can {@link PTDiffusionSessionMetricCollector#groupByProperties + group metrics by property}. + Topic metric collectors can {@link PTDiffusionSessionTopicCollector#groupsByTopicType + group metrics by topic type}. + This property places an upper limit on the number of groups that will be maintained for the + metric collector. + + For example, if a session metric collector groups by `$SessionId` and `maximumGroups` is 10, + then metrics will only be collected for the first 10 sessions. + + @since 6.8 + */ +@property(nonatomic, readonly) NSInteger maximumGroups; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h new file mode 100644 index 0000000..3b99f77 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The common base interface for metric collectors. + + @since 6.7 + */ +@interface PTDiffusionMetricCollectorBuilder: NSObject + + +/** + @brief Resets the builder. + + @return the builder + */ +-(instancetype)reset; + + +/** + @brief Specifies whether the metric collector should export metrics + to Prometheus or not. + + The default is that metrics are not exported to Prometheus. + + @param export true to export metrics to Prometheus. + + @return the builder + */ +-(instancetype)exportToPrometheus:(BOOL)exportToPrometheus; + + +/** + @brief Set the maximum number of groups maintained by the metric collector. + + By default, the number of groups is not limited. + + @param limit a positive integer + + @return the builder + */ +-(instancetype)maximumGroups:(NSInteger)limit; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h new file mode 100644 index 0000000..df615f3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h @@ -0,0 +1,239 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionMetricCollector; +@class PTDiffusionTopicMetricCollector; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client to configure metric collectors. + + Diffusion servers provide metrics which are made available in several ways: +
    +
  • Java Management Extensions (JMX) MBeans. +
  • Through the Diffusion Management Console. +
  • As endpoints for Prometheus. +
+ + Metric collectors allow custom aggregation of metrics that are relevant to + your application. There are no default metric collectors, only the ones that + you create. + + There are two types of metric collector: Session Metric Collectors and Topic + Metric Collectors. + + For full details regarding the configuration and operation of metric + collectors see the user manual. + + ### Session Metric Collectors. + + These can be configured to record metric data for a subset of all sessions, + specified with a session filter. + + The set of metrics recorded by each session metric collector is the same as + those recorded for the whole server. For full details of session metrics, see + the table in the user manual. + + If the session filters of two different session metric collectors select the + same session, both will record metrics for that session. It is only valid to + add the metrics of different session metric collectors if their session + filters select distinct sets of sessions. + + You can optionally group the sessions within a collector by session + properties. + + ### Topic Metric Collectors + These can be configured to record metric data for a subset of all topics, + specified with a topic selector. + + You can optionally group the topics within a collector by topic type. + + The set of metrics recorded by each topic metric collector is the same as + those recorded for the whole server. For full details of topic metrics, see + the table in the user manual. + + If the topic selectors of two different topic metric collectors select the + same topic, both will record metrics for that topic. It is only valid to add + the metrics of different topic metric collectors if their topic selectors + select distinct sets of topics. + + ### Access control + + The following access control restrictions are applied: +
    +
  • To {@link #putSessionMetricCollector:completionHandler: put} or + {@link #removeSessionMetricCollector:completionHandler: remove} a session metric collector, a + session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} + global permission. +
  • To {@link #putTopicMetricCollector:completionHandler: put} or + {@link #removeTopicMetricCollector:completionHandler: remove} a topic metric collector, a + session needs the {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} + global permission. +
  • To list {@link #listSessionMetricCollectors: session metric collectors} or + {@link #listTopicMetricCollectors: topic metric collectors}, a session needs + the {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} global permission. +
+ + ### Accessing the feature + This feature may be obtained from a {@link Session session} as follows: +
+    PTDiffusionMetricsFeature *const metrics = session.metrics;
+  
+ + @author DiffusionData Limited + + @since 6.7 + */ +@interface PTDiffusionMetricsFeature : PTDiffusionFeature + +/** + Add a session metric collector, replacing any with the same name. + + @param collector the session metric collector + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_InvalidFilter if the metric collector session filter is invalid; +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void)putSessionMetricCollector:(PTDiffusionSessionMetricCollector *)collector + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + Retrieves the current session metric collectors. + + @param 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 the `collectors` will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) listSessionMetricCollectors:(void (^)(NSArray* _Nullable collectors, + NSError * _Nullable error)) completionHandler; + + +/** + Removes any session metric collector with the given name, if it exists. + + @param name the session metric collector name + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) removeSessionMetricCollector:(NSString *)name + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + Add a topic metric collector, replacing any with the same name. + + {@link PTDiffusionTopicMetricCollector} instance can be created using + {@link PTDiffusionTopicMetricCollectorBuilder}. + + @param collector the topic metric collector + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) putTopicMetricCollector:(PTDiffusionTopicMetricCollector *)collector + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + Retrieves the current topic metric collectors. + + @param 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 the `collectors` will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.viewServer VIEW_SERVER} permission; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) listTopicMetricCollectors:(void (^)(NSArray* _Nullable collectors, + NSError * _Nullable error)) completionHandler; + + +/** + Removes any topic metric collector with the given name, if it exists. + + @param name the topic metric collector name + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • PTDiffusionError_AccessDenied if the calling session does not have the + {@link PTDiffusionGlobalPermission.controlServer CONTROL_SERVER} permission; +
  • PTDiffusionError_ClusterRouting if the operation failed due to a transient cluster error; +
  • PTDiffusionError_SessionClosed if the session is closed. +
+ + @since 6.7 + */ +-(void) removeTopicMetricCollector:(NSString *)name + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h new file mode 100644 index 0000000..5b87b0b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionMissingTopicNotification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Handler called when a client session subscribes or fetches using a topic + selector that matches no topics. + + @see PTDiffusionTopicControlFeature + + @since 5.7 + */ +@protocol PTDiffusionMissingTopicHandler + +/** + Called when a session requests a topic that does not exist, and the + topic path belongs to part of the topic tree for which this handler + was registered. + + @param registration The topic tree registration for which this handler applies. + + @param notification The missing topic notification. + + @since 5.7 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + hadMissingTopicNotification:(PTDiffusionMissingTopicNotification *)notification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h new file mode 100644 index 0000000..f35483e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h @@ -0,0 +1,108 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Notification that a session has made a request using a selector that does + not match any topics. + + @see PTDiffusionMissingTopicHandler + + @since 5.7 + */ +@interface PTDiffusionMissingTopicNotification : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Cancel the client request on the server. + + @deprecated Since 6.6. + This method is a no-op. In previous releases this would + prevent the selector from being added to the session's + selections. + Since 6.6, the selector is always added to the session's + selections before this notification is issued regardless. + + @since 5.7 + */ +-(void)cancel +__deprecated_msg("Will be removed in a future release."); + + +/** + Instruct the server to complete processing of the request. + + @deprecated Since 6.6 + This method is a no-op. In previous releases this would + cause the selector to be added to the sessions's + selections and the selection to be re-evaluated. + Since 6.6, the selector is always added to the session's + selections before this notification is issued. + + + @since 5.7 + */ +-(void)proceed +__deprecated_msg("Will be removed in a future release."); + + +/** + The identity of the client session that made the request. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + + +/** + The topic selector expression that triggered this notification. + + @since 5.7 + */ +@property(nonatomic, readonly) NSString* topicSelectorExpression; + + +/** + The list of the names of the servers through which the notification + has been routed. + + The first name in this list will be the name of the server to which + the originating session was connected. If the notification was routed + through remote server connections before reaching the recipient then + those servers will also be listed in the order that the notification + passed through them. + + @since 6.7 + */ +@property (nonatomic, readonly) NSArray* serverNames; + + +/** + The session properties of the session that made the request. + + @since 6.7 + */ +@property (nonatomic, readonly) NSDictionary* sessionProperties; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h new file mode 100644 index 0000000..d25abaf --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h @@ -0,0 +1,294 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A mutable data model based upon a schema. + + An initial version of such a model can be created from a schema using + PTDiffusionRecordV2Schema#createMutableModel. A model created in this way will + have all mandatory fields set to default values. + + The model may then be updated as required and then at any time a + PTDiffusionRecordV2 object can be generated from the current state by reading + the PTDiffusionRecordV2Model#value property. That object may then be used to + update a topic. + + When values for integer or decimal type fields are supplied the values are + validated and normalized. All number values will have any insignificant + leading zeroes removed. A decimal value will also be rounded to its specified + scale using half-up rounding. + + @since 6.0 + */ +@interface PTDiffusionMutableRecordV2Model : PTDiffusionRecordV2Model + +/** + Appends a new initialized record occurrence to the end of a variable + multiplicity record list. + + As the only variable multiplicity record can be the last one there is no need + to name the record. This method will add to the list of occurrences of the last + defined record. The record will be initialized with default values appropriate + to the schema definition and may then have individual field items set + separately. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the last or only record is not a variable repeating record or has already + reached the maximum number of occurrences. + + @since 6.0 + */ +-(BOOL)addRecordError:(NSError **)error; + +/** + Appends new values to the end of a variable length field list. + + This is a convenience method for adding to the end of the last record and is + therefore useful when there is only one record type. + + @param fieldValues The values to add. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - details conflict with the schema, possibly because the last field of the last + record is not a variable multiplicity field or the maximum number of + occurrences for the field would be breached. + - one of the values is incompatible with the field type. + + @exception NSInvalidArgumentException If fieldValues is `nil`. + + @note This method does nothing if fieldValues is an empty array. + + @since 6.0 + */ +-(BOOL)addFieldValues:(NSArray *)fieldValues + error:(NSError **)error; + +/** + Appends new values to the end of a variable length field list. + + This can only be used for a variable multiplicity field which can only be the + last field in a record and therefore the field does not need to be named. + + @param recordName The name of the record. + + @param recordIndex The index identifying the occurrence of the record. + + @param fieldValues The values to add. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - details conflict with the schema, possibly because the last field of the + record is not a variable multiplicity field or the maximum number of + occurrences for the field would be breached. + - one of the values is incompatible with the field type. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If either recordName or fieldValues is + `nil`, or if recordIndex is negative. + + @note This method does nothing if fieldValues is an empty array. + + @since 6.0 + */ +-(BOOL)addToRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldValues:(NSArray *)fieldValues + error:(NSError **)error; + +/** + Remove all optional instances of a variable multiplicity field. + + As a variable repeating field can only be the last or only field within a + record then the field name does not need to be specified. + + This will only remove field occurrences down to the minimum number of + occurrences specified by the schema. + + If the last or only field within the record is not defined as variable + multiplicity, this would have no effect. + + @param recordName The name of the record. + + @param recordIndex The index of the record. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - `recordName` is not defined in the schema. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordName is `nil`, or if recordIndex + is negative. + + @since 6.0 + */ +-(BOOL)clearVariableFieldsForRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + error:(NSError **)error; + +/** + Removes all optional instances of a variable multiplicity record. + + As a variable repeating record can only be the last or only record then the + record name does not need to be specified. + + This will only remove record occurrences down to the minimum number of + occurrences specified by the schema. + + If the last or only record is not defined as variable multiplicity, calling + this method has no effect. + + @since 6.0 + */ +-(void)clearVariableRecords; + +/** + Removes the specified occurrence of a variable multiplicity field. + + A variable multiplicity field must be the last or only field within a record + and therefore the field name is not required. + + @param recordName The name of the record. + + @param recordIndex The record index. + + @param fieldIndex The index of the field to remove. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the record is not known or the last or only field within the record is not a + variable repeating field or can not be removed as it would violate the + minimum number of occurrences. + - either `recordIndex` or `fieldIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is + negative or fieldIndex is negative. + + @since 6.0 + */ +-(BOOL)removeFieldWithIndex:(SInt32)fieldIndex + fromRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + error:(NSError **)error; + +/** + Removes the specified occurrence of a variable multiplicity record. + + A variable multiplicity record must be the last or only record within a schema + and therefore the record name is not required. + + @param recordIndex The index of the record to remove. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the last or only record is not a variable multiplicity record or can not be + removed as it would violate the minimum number of occurrences. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordIndex is negative. + + @since 6.0 + */ +-(BOOL)removeRecordWithIndex:(SInt32)recordIndex + error:(NSError **)error; + +/** + Sets a specified field value. + + @param recordName The name of the record containing the field. + + @param recordIndex The index of the record containing the field. + + @param fieldName The name of the field. + + @param fieldIndex The index of the field. + + @param fieldValue The new value. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the details given conflict with the schema or the value is incompatible with + the schema field type. + - either `recordIndex` or `fieldIndex` is out of bounds. + + @exception NSInvalidArgumentException If recordName is `nil`, recordIndex is + negative, fieldName is `nil`, fieldIndex is negative or fieldValue is `nil`. + + @since 6.0 + */ +-(BOOL)setRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldName:(NSString *)fieldName + fieldIndex:(SInt32)fieldIndex + toFieldValue:(NSString *)fieldValue + error:(NSError **)error; + +/** + Sets a specified field value. + + This allows an item to be addressed using a key of the form + `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in + which case 0 is assumed. The record part may also be omitted in which case the + first occurrence of the first record is assumed. + + @param key The field key. + + @param fieldValue The field value. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the key does not address a valid field. + - a specified index is out of bounds. + - the key format is invalid. + - a specified index is not a valid number. + + @exception NSInvalidArgumentException If either key or fieldValue is `nil`. + + @since 6.0 + */ +-(BOOL)setFieldValue:(NSString *)fieldValue + forKey:(NSString *)key + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h new file mode 100644 index 0000000..c05250c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h @@ -0,0 +1,44 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionNumberFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a numeric fetch operation issued to the + server. + + A numeric fetch operation is issued using either of the + PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: + or + PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: + methods. + + @since 6.2 + */ +@interface PTDiffusionNumberFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * numberResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h new file mode 100644 index 0000000..5a3f194 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a numeric fetch operation for a single + selected topic. + + A numeric fetch operation is issued using either of the + PTDiffusionFetchRequest#fetchDoubleFloatNumberValuesWithTopicSelectorExpression:completionHandler: + or + PTDiffusionFetchRequest#fetchInt64NumberValuesWithTopicSelectorExpression:completionHandler: + methods. + + @since 6.2 + */ +@interface PTDiffusionNumberFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) NSNumber* number; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h new file mode 100644 index 0000000..ae0ba41 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling numeric messaging requests with + a handler registered at the server. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionNumberRequestDelegate + +/** + Called when a numeric request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param number The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithNumber:(nullable NSNumber *)number + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h new file mode 100644 index 0000000..5b784bd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h @@ -0,0 +1,47 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling Number messaging requests. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionNumberRequestStreamDelegate + +/** + Called when a numeric request has been received. + + @param stream The stream that received the request. + + @param number The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithNumber:(nullable NSNumber *)number + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h new file mode 100644 index 0000000..49030b4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling numeric messaging responses from + individual sessions. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionNumberSessionResponseStreamDelegate + +/** + Called when a session responds to a request with a number. + + @param stream The stream that received the response. + + @param number The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithNumber:(nullable NSNumber *)number + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h new file mode 100644 index 0000000..ba41d8d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as a number. + + @since 6.0 + */ +@interface PTDiffusionNumberTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The numeric value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) NSNumber* number; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..03082c0 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionNumberTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + numeric values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with numeric values. + + @since 6.0 + */ +@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldNumberEvent The previous event. If `nil` then this is the first event. + + @param newNumberEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldNumberEvent:(nullable PTDiffusionNumberTimeSeriesEvent *)oldNumberEvent + newNumberEvent:(PTDiffusionNumberTimeSeriesEvent *)newNumberEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h new file mode 100644 index 0000000..ba80576 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionNumberTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of number time series events. + + @since 6.0 + */ +@interface PTDiffusionNumberTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The number time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* numberEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h new file mode 100644 index 0000000..fcf8324 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h @@ -0,0 +1,112 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + numerical primitive values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionNumberUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly, nullable) NSNumber* value; + +/** + Sets the topic to a specified value or no value. + + When a `nil` value is supplied to this method for a PTDiffusionTopicType_Int64 + or PTDiffusionTopicType_Double topic, the topic will be updated to have no + value. If a previous value was present subscribers will receive a notification + that the new value is null. New subscribers will not receive a value + notification. + + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h new file mode 100644 index 0000000..ca73355 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for number + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for numeric + topics. + + @see PTDiffusionPrimitive + + @since 6.0 + */ +@protocol PTDiffusionNumberValueStreamDelegate + +/** + An update was received for a topic path handled by a number value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldNumber The previous value. If `nil` then this is either the first + value, or the previous value was `nil` indicating no value. + + @param newNumber The new value derived from the last update received from the + server, or `nil` if there is no value. + + @since 6.0 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldNumber:(nullable NSNumber *)oldNumber + newNumber:(nullable NSNumber *)newNumber; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h new file mode 100644 index 0000000..e999346 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A constraint requiring the current value of a JSON topic to match the + partially described value. + + The Swift code: + + let constraint = try PTDiffusionUpdateConstraint + .jsonValue() + .withStringValue(idValue, atPointer: "/id") + .without("/cancellation") + + creates a constraint for a JSON object with a specific ID value and no value + for a "cancellation" property. + + Missing keys are matched differently to keys that are present with `null` + values. + + @since 6.3 + */ +@interface PTDiffusionPartialJSONUpdateConstraint : PTDiffusionUpdateConstraint + +/** + Require a `null` value at a specific position in the JSON object. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the `null` value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return A new constraint or `nil` if there was an error. + + @exception NSInvalidArgumentException If pointer is `nil`. + + @since 6.3 + */ +-(nullable instancetype)withNullAt:(NSString *)pointer + error:(NSError **)error; + +/** + Require a specific position in the JSON object to be absent. This does not + match positions that have `null` values. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference that should have no value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return A new constraint or `nil` if there was an error. + + @exception NSInvalidArgumentException If the pointer argument is `nil`. + + @since 6.3 + */ +-(nullable instancetype)without:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h new file mode 100644 index 0000000..bef37ec --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h @@ -0,0 +1,203 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Permissions protecting access-controlled operations that are evaluated + for a specific topic path. + + @see PTDiffusionGlobalPermission + + @since 6.5 + + */ + +@interface PTDiffusionPathPermission : PTDiffusionEnumeration + +/** + Required to receive information from a topic. + + If a session does not have read_topic permission for a path, the path will be + excluded from the results of subscription or fetch operations for the session, + and the path's details cannot be retrieved by the session. + + @see #selectTopic + + @return Instance indicating permission to receive information from a topic. + + @since 6.3 + */ ++(instancetype)readTopic; + +/** + Update a topic. + + @return Instance indicating permission to update a topic. + + @since 6.3 + */ ++(instancetype)updateTopic; + +/** + Add a topic or remove a topic. + + @return Instance indicating permission to add or remove a topic. + + @since 6.3 + */ ++(instancetype)modifyTopic; + +/** + Send a message to a handler registered with the server. + + @return Instance indicating permission to send a message to a handler + registered with the server. + + @since 6.3 + */ ++(instancetype)sendToMessageHandler; + +/** + Send a message to a client session. + + @return Instance indicating permission to send a message to a client session. + + @since 6.3 + */ ++(instancetype)sendToSession; + +/** + Use a topic selector that selects the topic path. + + A session must have this permission for the path prefix of any topic selector + used to subscribe or fetch. + + When the subscription or fetch request completes, the resulting topics are + further filtered based on the #readTopic permission. + + A session that has #readTopic but not #selectTopic for a particular topic path + cannot subscribe directly to topics belonging to the path. However, the session + can be independently subscribed by a control session that has + PTDiffusionGlobalPermission#modifySession permission in addition to the + appropriate #selectTopic permission. + + @return Instance indicating permission to use a topic selector that selects + the topic path. + + @since 6.3 + */ ++(instancetype)selectTopic; + +/** + Evaluate queries that return a non-current view of a time series path. + + The #readTopic permission is required to evaluate any type of query for a time + series path. This permission is additionally required for queries that + potentially return a non-current view of all or part of a time series. Such + queries include value range queries that specify an edit range, and all types + of edit range query. + + @return Instance indicating permission to evaluate queries that return a + non-current view of a time series path. + + @see PTDiffusionTimeSeriesFeature + + @since 6.3 + */ ++(instancetype)queryObsoleteTimeSeriesEvents; + +/** + Submit edits to time series topic events. + + The #updateTopic permission is required to update a time series path. This + permission is additionally required to submit edits to a time series path. + + @return Instance indicating permission to submit edits to time series + topic events. + + @see PTDiffusionTimeSeriesFeature + @see #editOwnTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editTimeSeriesEvents; + +/** + Submit edits to time series path events which have an author which is the same + as the principal of the calling session. + + This permission is a more restrictive alternative to #editTimeSeriesEvents. + + The #updateTopic permission is required to update a time series path. This + permission is additionally required to submit edits to a time series path + where the event author is the same as the principal of the calling session. + + @return Instance indicating permission to submit edits to time series path + events which have an author identical to the principal of the + calling session. + + @see PTDiffusionTimeSeriesFeature + @see #editTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editOwnTimeSeriesEvents; + +/** + Acquire a session lock. + + @return Instance indicating permission to acquire a session lock. + + @see PTDiffusionSessionLock + + @since 6.3 + */ ++(instancetype)acquireLock; + +/** + A permission that is unsupported by the session. + + @return Instance indicating an unsupported permission. + + @since 6.3 + */ ++(instancetype)unknownTopicPermission; + + +/** + Expose a branch of the topic tree as a virtual session tree. + + The EXPOSE_BRANCH path permission is powerful since it allows a + session to expose a whole branch of the topic tree under a different set + of path permissions. + + A session granted EXPOSE_BRANCH for a particular path effectively + has the permission for all descendant paths. From a security perspective, + if a role grants EXPOSE_BRANCH at branch X it is + ineffectual for it also to deny EXPOSE_BRANCH at a child branch + X/Y because a branch mapping to X can still expose paths + below X/Y. + + @return Instance indicating permission to expose branches. + + @see PTDiffusionSessionTrees + @since 6.7 +*/ ++(instancetype)exposeBranch; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h new file mode 100644 index 0000000..6d4d4f3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Details returned in response to a ping to the server. + + A ping details object is immutable. + + @see PTDiffusionPingsFeature + + @since 5.7 + */ +@interface PTDiffusionPingDetails : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The round trip time from when the ping was sent to the time + the response was received. + + @since 5.7 + */ +@property(nonatomic, readonly) NSTimeInterval roundTripTime; + +/** + The time the ping was sent. + + @since 5.7 + */ +@property(nonatomic, readonly) NSDate* timestamp; + +/** + Compares the receiver to the given content. + + @param pingDetails The ping details object with which to compare the receiver. + + @return `YES` if the ping details is equal to the contents of the receiver, otherwise `NO`. + + @since 5.7 + */ +-(BOOL)isEqualToPingDetails:(nullable PTDiffusionPingDetails *)pingDetails; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h new file mode 100644 index 0000000..7371089 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h @@ -0,0 +1,51 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionPingDetails; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Pings feature provides a client session with the ability to ping the server. + + The main purpose of a ping is to test, at a very basic level, the current + network conditions that exist between the client session and the server it is + connected to. Each ping request will return details on the latency + experienced in the form of a round-trip time value. + + The Pings feature for a session can be obtained from the session's `pings` property. + + @see PTDiffusionSession + + @since 5.7 + */ +@interface PTDiffusionPingsFeature : PTDiffusionFeature + +/** + Send a ping to the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if the completionHandler is `nil`. + + @since 5.7 + */ +-(void)pingServerWithCompletionHandler:(void (^)(PTDiffusionPingDetails * _Nullable details, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h new file mode 100644 index 0000000..22b31b5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h @@ -0,0 +1,2432 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionNumberFetchResult; +@class PTDiffusionNumberTimeSeriesQueryResult; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionStringFetchResult; +@class PTDiffusionStringTimeSeriesQueryResult; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionNumberRequestDelegate; +@protocol PTDiffusionNumberRequestStreamDelegate; +@protocol PTDiffusionNumberSessionResponseStreamDelegate; +@protocol PTDiffusionNumberTimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionNumberValueStreamDelegate; +@protocol PTDiffusionStringRequestDelegate; +@protocol PTDiffusionStringRequestStreamDelegate; +@protocol PTDiffusionStringSessionResponseStreamDelegate; +@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionStringValueStreamDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Support for creating value streams for primitive values including + string and numeric types. + + @since 6.0 + */ +@interface PTDiffusionPrimitive : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Creates a value stream capable of receiving double-precision floating point + numbers (Eight-byte IEEE 754). + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)doubleFloatNumberValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving 64-bit integer values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)int64NumberValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving string values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)stringValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving double-precision floating point + numeric time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)doubleFloatNumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving 64-bit integer time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)int64NumberTimeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving string time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)stringTimeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving double-precision floating point + numeric requests (Eight-byte IEEE 754) for a handler registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)doubleFloatRequestHandlerWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving 64-bit integer requests for a + handler registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)int64RequestHandlerWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving string requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)stringRequestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving double-precision floating point + numeric requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)doubleFloatRequestStreamWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving 64-bit integer requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)int64RequestStreamWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving string requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)stringRequestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving double-precision floating point + numeric responses from discrete sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)doubleFloatSessionResponseStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving 64-bit integer responses from + discrete sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)int64SessionResponseStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving string responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)stringSessionResponseStreamWithDelegate:(id)delegate; + +/** + Creates a request that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param value The value to send as the request. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequest *)requestWithDouble:(double)value; + +/** + Creates a request that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param number The value to send as the request. This may be `nil` in order to + create a 'null' request. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(nullable PTDiffusionRequest *)requestWithDoubleFloatNumber:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a request that can be used to send the given 64-bit integer value using + messaging. + + @param value The value to send as the request. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequest *)requestWithLongLong:(long long)value; + +/** + Creates a request that can be used to send the given 64-bit integer value using + messaging. + + @param number The value to send as the request. This may be `nil` in order to + create a 'null' request. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(nullable PTDiffusionRequest *)requestWithInt64Number:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a request that can be used to send the given string using messaging. + + @param string The value to send as the request. This may be `nil` in order to + create a 'null' request. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(nullable PTDiffusionRequest *)requestWithString:(nullable NSString *)string + error:(NSError **)error; + +/** + Creates a response that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param value The value to send as the response. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionResponse *)responseWithDouble:(double)value; + +/** + Creates a response that can be used to send the given double-precision floating + point (Eight-byte IEEE 754) value using messaging. + + @param number The value to send as the response. This may be `nil` in order to + create a 'null' response. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new response, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(nullable PTDiffusionResponse *)responseWithDoubleFloatNumber:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a response that can be used to send the given 64-bit integer value + using messaging. + + @param value The value to send as the response. + + @return The new request, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionResponse *)responseWithLongLong:(long long)value; + +/** + Creates a response that can be used to send the given 64-bit integer value + using messaging. + + @param number The value to send as the response. This may be `nil` in order to + create a 'null' response. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new response, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(nullable PTDiffusionResponse *)responseWithInt64Number:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Creates a response that can be used to send the given string using messaging. + + @param string The value to send as the response. This may be `nil` in order to + create a 'null' response. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new response, or `nil` on failure. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(nullable PTDiffusionResponse *)responseWithString:(nullable NSString *)string + error:(NSError **)error; + +/** + Returns an update constraint requiring the current value of a topic to match + the given double-precision floating point (Eight-byte IEEE 754) value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param value The value to be matched against the topic value. + + @return The new constraint, or `nil` on failure. + + @since 6.3 + */ ++(PTDiffusionUpdateConstraint *)updateConstraintWithDouble:(double)value; + +/** + Returns an update constraint requiring the current value of a topic to match + the given double-precision floating point (Eight-byte IEEE 754) value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param number The value to be matched against the topic value. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new constraint, or `nil` on failure. + + @exception NSInvalidArgumentException If the number argument is `nil`. + + @since 6.3 + */ ++(nullable PTDiffusionUpdateConstraint *)updateConstraintWithDoubleFloatNumber:(NSNumber *)number + error:(NSError **)error; + +/** + Returns an update constraint requiring the current value of a topic to match + the given 64-bit integer value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param value The value to be matched against the topic value. + + @return The new constraint, or `nil` on failure. + + @since 6.3 + */ ++(PTDiffusionUpdateConstraint *)updateConstraintWithLongLong:(long long)value; + +/** + Returns an update constraint requiring the current value of a topic to match + the given 64-bit integer value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param number The value to be matched against the topic value. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new constraint, or `nil` on failure. + + @exception NSInvalidArgumentException If the number argument is `nil`. + + @since 6.3 + */ ++(nullable PTDiffusionUpdateConstraint *)updateConstraintWithInt64Number:(NSString *)number + error:(NSError **)error; + +/** + Returns an update constraint requiring the current value of a topic to match + the given string value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @param string The value to be matched against the topic value. + + @param error Location to store a reason if this method returns `nil` to + indicate failure. + + @return The new constraint, or `nil` on failure. + + @exception NSInvalidArgumentException If the number argument is `nil`. + + @since 6.3 + */ ++(nullable PTDiffusionUpdateConstraint *)updateConstraintWithString:(NSString *)string + error:(NSError **)error; + +@end + +/** + @brief Extension adding support for responding to requests using primitive + values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionPrimitive) + +/** + Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a + request. + + @param value The value to send in response. + + @since 6.0 + */ +-(void)respondWithDouble:(double)value; + +/** + Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a + request. + + @param number The value to send in response. This may be `nil` in order to send + a 'null' response. + + @param error Location to store a reason if this method returns `NO` to + indicate failure. + + @return `YES` if a response was queued for dispatch or `NO` if the supplied + number could not be encoded using this data type. + + @since 6.0 + */ +-(BOOL)respondWithDoubleFloatNumber:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Dispatch a 64-bit integer response to a request. + + @param value The value to send in response. + + @since 6.0 + */ +-(void)respondWithLongLong:(long long)value; + +/** + Dispatch a 64-bit integer response to a request. + + @param number The value to send in response. This may be `nil` in order to send + a 'null' response. + + @param error Location to store a reason if this method returns `NO` to + indicate failure. + + @return `YES` if a response was queued for dispatch or `NO` if the supplied + number could not be encoded using this data type. + + @since 6.0 + */ +-(BOOL)respondWithInt64Number:(nullable NSNumber *)number + error:(NSError **)error; + +/** + Dispatch a string response to a request. + + @param string The value to send in response. This may be `nil` in order to send + a 'null' response. + + @param error Location to store a reason if this method returns `NO` to + indicate failure. + + @return `YES` if a response was queued for dispatch or `NO` if the supplied + string could not be encoded using this data type. + + @since 6.0 + */ +-(BOOL)respondWithString:(nullable NSString *)string + error:(NSError **)error; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a primitive value in response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionPrimitive) + +/** + Send a request for which a string response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; + +/** + Send a request for which a double-precision floating point (Eight-byte IEEE 754) + response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; + +/** + Send a request for which a 64-bit integer response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable number, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a string response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + stringCompletionHandler:(void (^)(NSString * _Nullable string, NSError * _Nullable error))completionHandler; + +/** + Send a request to a session for which a double-precision floating point + (Eight-byte IEEE 754) response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + doubleFloatNumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; + +/** + Send a request to a session for which a 64-bit integer response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + int64NumberCompletionHandler:(void (^)(NSNumber * _Nullable string, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using primitive values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) + +/** + Update a time series topic by appending a new string value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + stringValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new string value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + stringValue:(nullable NSString *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new double-precision floating point + (Eight-byte IEEE 754) value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) appendToTopicPath:(NSString *)topicPath + doubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new double-precision floating point + (Eight-byte IEEE 754) value with a supplied timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author + set to the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void) appendToTopicPath:(NSString *)topicPath + doubleFloatNumberValue:(nullable NSNumber *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new 64-bit integer value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + int64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new 64-bit integer value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + int64NumberValue:(nullable NSNumber *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new string value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + stringValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new double-precision floating point + (Eight-byte IEEE 754) value that overrides the value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void) editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + doubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new 64-bit integer value that + overrides the value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + int64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have string values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + stringCompletionHandler:(void (^)(PTDiffusionStringTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have double-precision + floating point (Eight-byte IEEE 754) values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + doubleFloatNumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have 64-bit integer + values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + int64NumberCompletionHandler:(void (^)(PTDiffusionNumberTimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with + primitive values. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionPrimitive) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with string. + + The string data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as strings will be + removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / + PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / + PTDiffusionFetchRequest::beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchStringValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionStringFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with double-precision floating point (Eight-byte IEEE + 754). + + The doubleFloat data type constrains the topic types. So, any topic types + specified in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as + double-precision floating point (Eight-byte IEEE 754) will be removed from the + list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / + PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / + PTDiffusionFetchRequest::beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchDoubleFloatNumberValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with 64-bit integer. + + The int64 data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest::topicTypes: that cannot be read as 64-bit integer will + be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest::fromTopicPath: / + PTDiffusionFetchRequest::afterTopicPath: and/or PTDiffusionFetchRequest::toTopicPath: / + PTDiffusionFetchRequest::beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchInt64NumberValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionNumberFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with primitive values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionPrimitive) + +/** + Sets a topic to a specified string value, or null. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toStringValue:(nullable NSString *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toDoubleValue:(double)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) number value, or null. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toDoubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified 64-bit integer value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toLongLongValue:(long long)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified 64-bit integer number value, or null. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either path or completionHandler are + `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toInt64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified string value, or null, if a constraint is + satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toStringValue:(nullable NSString *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toDoubleValue:(double)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified double-precision floating point (Eight-byte IEEE + 754) number value, or null, if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toDoubleFloatNumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Sets a topic to a specified 64-bit integer value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toLongLongValue:(long long)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified 64-bit integer number value, or null, if a + constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of path, constraint or + completionHandler are `nil`. + + @since 6.3 + */ +-(BOOL) setWithPath:(NSString *)path + toInt64NumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a string value, or null. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#string. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToStringValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleValue:(double)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) number value, or null. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleFloatNumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a 64-bit integer value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToLongLongValue:(long long)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a 64-bit integer number value, or null. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToInt64NumberValue:(nullable NSNumber *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a string value, or null, if a constraint + is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification or + completionHandler arguments are `nil`. Also if the topic type defined in the + specification is incompatible with PTDiffusionDataTypes#string. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToStringValue:(nullable NSString *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) value if a constraint is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleValue:(double)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a double-precision floating point + (Eight-byte IEEE 754) number value, or null, if a constraint is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToDoubleFloatNumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Ensures a topic exists and sets it to a 64-bit integer value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToLongLongValue:(long long)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a 64-bit integer number value, or null, + if a constraint is satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toJSONValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If any of the path, specification, + constraint or completionHandler arguments are `nil`. Also if the topic type + defined in the specification is incompatible with PTDiffusionDataTypes#int64. + + @since 6.3 + */ +-(BOOL) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToInt64NumberValue:(nullable NSNumber *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with string + values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values if a constraint is + satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + string values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#string. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + 64-bit integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#int64. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + string values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#string. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values if a constraint is + satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#doubleFloat. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +/** + Creates an update stream to use for creating and updating a specific topic with + 64-bit integer values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#int64. + + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + + @since 6.3 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); + +@end + +/** + @brief Extension adding support to partial JSON update constraints for + requiring primitive values at locations referenced with a JSON pointer. + + @since 6.3 + */ +@interface PTDiffusionPartialJSONUpdateConstraint (PTDiffusionPrimitive) + +/** + Require a double-precision floating point (Eight-byte IEEE 754) value at a + specific position in the JSON object. + + @param value The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given double value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If pointer is `nil`. + + @since 6.3 + */ +-(nullable instancetype)withDoubleValue:(double)value + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a double-precision floating point (Eight-byte IEEE 754) number value at + a specific position in the JSON object. + + @param number The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given number value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If number or pointer is `nil`. + + @note To match a JSON `null` at the referenced location use + PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: + + @since 6.3 + */ +-(nullable instancetype)withDoubleFloatNumberValue:(NSNumber *)number + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a 64-bit integer value at a specific position in the JSON object. + + @param value The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given long value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If pointer is `nil`. + + @since 6.3 + */ +-(nullable instancetype)withLongLongValue:(long long)value + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a 64-bit integer number value at a specific position in the JSON + object. + + @param number The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given 64-bit number value + at the given specific position in the JSON object. + + @exception NSInvalidArgumentException If number or pointer is `nil`. + + @note To match a JSON `null` at the referenced location use + PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: + + @since 6.3 + */ +-(nullable instancetype)withInt64NumberValue:(NSNumber *)number + atPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Require a string value at a specific position in the JSON object. + + @param string The value expected at the location referenced by pointer. + + @param pointer A [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the value in the JSON object. + + @param error Location to store a reason in case of failure. May be `nil`. + + @return Primitive instance initialized with the given string value at the + given specific position in the JSON object. + + @exception NSInvalidArgumentException If string or pointer is `nil`. + + @note To match a JSON `null` at the referenced location use + PTDiffusionPartialJSONUpdateConstraint#withNullAt:error: + + @since 6.3 + */ +-(nullable instancetype)withStringValue:(NSString *)string + atPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h new file mode 100644 index 0000000..8e03dfd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h @@ -0,0 +1,742 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import +#import +#import + +@class PTDiffusionRecordV2Delta; +@class PTDiffusionRecordV2FetchResult; +@class PTDiffusionRecordV2Model; +@class PTDiffusionRecordV2Schema; +@class PTDiffusionRecordV2TimeSeriesQueryResult; +@class PTDiffusionRecordV2UpdateStream; +@class PTDiffusionRequest; +@class PTDiffusionRequestHandler; +@class PTDiffusionRequestStream; +@class PTDiffusionResponse; +@class PTDiffusionSessionResponseStream; +@class PTDiffusionTimeSeriesEventMetadata; +@class PTDiffusionTimeSeriesRangeQuery; +@class PTDiffusionTopicCreationResult; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionValueStream; + +@protocol PTDiffusionRecordV2RequestDelegate; +@protocol PTDiffusionRecordV2RequestStreamDelegate; +@protocol PTDiffusionRecordV2SessionResponseStreamDelegate; +@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate; +@protocol PTDiffusionRecordV2ValueStreamDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable record value with support for binary deltas. + + @since 6.0 + */ +@interface PTDiffusionRecordV2 : PTDiffusionBytes + +/** + Parses the value into a model based upon a specified schema. + + This assumes that data is compatible with the schema and does not do any + validation. There is no need to validate the data if this has been done on + entry or at the server. However, if the data is invalid then issues may occur + when attempting to access it. + + If it is not certain that the data is valid then the + #validatedModelWithSchema:error: method should be used instead. + + @param schema The schema to use for parsing the data. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable model derived from the data value; or `nil` if an error + occurred, in which case `*error` will be populated with the failure reason. + Reasons for failure include: + - the data value does not contain correctly encoded record data. + + @since 6.0 + */ +-(nullable PTDiffusionRecordV2Model *)modelWithSchema:(PTDiffusionRecordV2Schema *)schema + error:(NSError **)error; + +/** + Parses the value into a model based upon a specified schema. + + @param schema The schema to use for parsing the data. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable model derived from the data value; or `nil` if an error + occurred, in which case `*error` will be populated with the failure reason. + Reasons for failure include: + - the data value does not contain correctly encoded record data. + - the data value is incompatible with the supplied schema. + */ +-(nullable PTDiffusionRecordV2Model *)validatedModelWithSchema:(PTDiffusionRecordV2Schema *)schema + error:(NSError **)error; + +/** + Returns the data value as an array of arrays of strings. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable array of records derived from the data value; or `nil` if + an error occurred, in which case `*error` will be populated with the failure + reason. + + @since 6.0 + */ +-(nullable NSArray *> *)recordsWithError:(NSError **)error; + +/** + Returns the data value as an array of fields. + + This disregards record boundaries. If there is more than one record, they are + concatenated to produce a list of all of the fields. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable array of fields derived from the data value; or `nil` if + an error occurred, in which case `*error` will be populated with the failure + reason. + + @note This method would normally only be used when it is known that there is + only one record. + + @since 6.0 + */ +-(nullable NSArray *)fieldsWithError:(NSError **)error; + +/** + Compare this value with an earlier version to calculate a structural delta. + + @param originalRecord The original value to compare with this value. + + @return Structural delta between the given value and the current value. + + @since 6.0.2 + */ +-(PTDiffusionRecordV2Delta *)diffFromOriginalRecord:(PTDiffusionRecordV2 *)originalRecord; + +/** + A request that can be used to send this value using messaging. + + @since 6.0.1 + */ +@property(nonatomic, readonly) PTDiffusionRequest* request; + +/** + A response that can be used to send this value using messaging. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionResponse* response; + +/** + An update constraint requiring the current value of a topic to match this + value. + + Use PTDiffusionUpdateConstraint#noValue to check if the topic has no value. + + This constraint is useful when changing the value of a topic. It is unsatisfied + if no topic is present at the path, making it unsuitable for operations that + try to add topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionUpdateConstraint * updateConstraint; + +/** + Creates a value stream capable of receiving record values. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)valueStreamWithDelegate:(id)delegate; + +/** + Creates a value stream capable of receiving record time series events. + + @param delegate The object which will handle the incoming stream. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be added as a + receiver of values using the Topics feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionTopicsFeature + + @since 6.0 + */ ++(PTDiffusionValueStream *)timeSeriesEventValueStreamWithDelegate:(id)delegate; + +/** + Creates a request handler capable of receiving record requests for a handler + registered at the server. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned handler. + + @return An object reliant on the supplied delegate that can be registered at + the server using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestHandler *)requestHandlerWithDelegate:(id)delegate; + +/** + Creates a request stream capable of receiving record requests. + + @param delegate The object which will handle the incoming requests. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.0 + */ ++(PTDiffusionRequestStream *)requestStreamWithDelegate:(id)delegate; + +/** + Creates a response stream capable of receiving record responses from discrete + sessions. + + @param delegate The object which will handle the incoming responses. A weak + reference is maintained to this object by the returned stream. + + @return An object reliant on the supplied delegate that can be set as the + receiver of requests using the Messaging feature. + + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ ++(PTDiffusionSessionResponseStream *)sessionResponseStreamWithDelegate:(id)delegate; + +/** + Compares the receiver to the given record. + + @param record The record object with which to compare the receiver. + + @return `YES` if the data in record is equal to the contents of the receiver, + otherwise `NO`. + + @note Two record objects are equal if they hold the same number of data bytes, + and if the bytes at the same position in the objects are the same. + + @since 6.3 + */ +-(BOOL)isEqualToRecord:(nullable PTDiffusionRecordV2 *)record; + +@end + +/** + @brief Extension adding support for responding to requests using record values. + + @since 6.0 + */ +@interface PTDiffusionResponder (PTDiffusionRecordV2) + +/** + Dispatch a response to a request. + + @param record The value to send in response. + + @exception NSInvalidArgumentException Raised if the record argument is `nil`. + + @since 6.0 + */ +-(void)respondWithRecord:(PTDiffusionRecordV2 *)record; + +@end + +/** + @brief Extension adding support to the Messaging feature for sending requests + accepting a record response. + + @since 6.0 + */ +@interface PTDiffusionMessagingFeature (PTDiffusionRecordV2) + +/** + Send a request for which a record response is expected. + + The message will be routed to an appropriately registered control handler for + the given path. + + @param request The request to send. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toPath:(NSString *)path + recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; + + +/** + Send a request to a session for which a record response is expected. + + @param request The request to send. + + @param sessionId The session to send the request to. + + @param path The path to send the request to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(void) sendRequest:(PTDiffusionRequest *)request + toSessionId:(PTDiffusionSessionId *)sessionId + path:(NSString *)path + recordCompletionHandler:(void (^)(PTDiffusionRecordV2 * _Nullable record, NSError * _Nullable error))completionHandler; + + +@end + + +/** + @brief Extension adding support to the Time Series feature for appending and + editing events using record values. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature (PTDiffusionRecordV2) + +/** + Update a time series topic by appending a new record value. + + The server will add an event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void)appendToTopicPath:(NSString *)topicPath + recordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new record value with a supplied + timestamp. + + The server will add an event to the end of the time series based on the + supplied value and timestamp, with a new sequence number, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param value The event value. + + @param timestamp The supplied timestamp, must be greater or equal to that + of the most recent event appended to the topic. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.6 + */ +-(void)appendToTopicPath:(NSString *)topicPath + recordValue:(PTDiffusionRecordV2 *)value + timestamp:(NSDate *)timestamp + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Update a time series topic by appending a new record value that overrides the + value of an existing event. + + The existing event is identified by its sequence number and must be an original + event. + + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + @param topicPath The path of the time series topic to update. + + @param originalSequence The sequence number of the original event to edit. + + @param value The event value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any of the topicPath, value or + completionHandler arguments are `nil`. Also raised if the originalSequence + argument exceeds `INT64_MAX`. + + @since 6.0 + */ +-(void)editAtTopicPath:(NSString *)topicPath + originalSequence:(UInt64)originalSequence + recordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTimeSeriesEventMetadata * _Nullable eventMetadata, NSError * _Nullable error))completionHandler; + +/** + Evaluate a query for a time series topic where events have record values. + + @param query The configured query. + + @param topicPath The path of the time series topic to query. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + */ +-(void) evaluateQuery:(PTDiffusionTimeSeriesRangeQuery *)query + atTopicPath:(NSString *)topicPath + recordCompletionHandler:(void (^)(PTDiffusionRecordV2TimeSeriesQueryResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with + records. + + @since 6.2 + */ +@interface PTDiffusionFetchRequest (PTDiffusionRecordV2) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to only those topics with a + data type compatible with records. + + The record data type constrains the topic types. So, any topic types specified + in a previous call to PTDiffusionFetchRequest#topicTypes: that cannot be read as + records will be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.2 + */ +-(void)fetchRecordValuesWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionRecordV2FetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +/** + @brief Extension adding support to the Topic Update feature for updating topics + with record values. + + @since 6.3 + */ +@interface PTDiffusionTopicUpdateFeature (PTDiffusionRecordV2) + +/** + Sets a topic to a specified record value. + + @param path The path of the topic. + + @param value The value. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toRecordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Sets a topic to a specified record value if a constraint is satisfied. + + @param path The path of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void) setWithPath:(NSString *)path + toRecordValue:(PTDiffusionRecordV2 *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a record value. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toRecordValue:completionHandler:. + + @param path The path of the topic. + + @param value The value. + + @param specification The required specification of the topic. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToRecordValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Ensures a topic exists and sets it to a record value if a constraint is + satisfied. + + If a topic does not exist at the path, one will be created using the + specification. If a topic does exist, its specification must match + specification, otherwise the operation will fail. + + In other respects this method works in the same way as + setWithPath:toRecordValue:constraint:completionHandler:. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param value The value. + + @param constraint The constraint that must be satisfied for the topic to be + updated. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(void) addWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + andSetToRecordValue:(PTDiffusionRecordV2 *)value + constraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Creates an update stream to use for updating a specific topic with record + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + +/** + Creates an update stream to use for updating a specific topic with record + values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path + constraint:(PTDiffusionUpdateConstraint *)constraint; + +/** + Creates an update stream to use for creating and updating a specific topic with + record values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification; + +/** + Creates an update stream to use for creating and updating a specific topic with + record values if a constraint is satisfied. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @param specification The required specification of the topic. + + @param constraint The constraint that must be satisfied for the update stream + to be validated. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil` or if the topic + type defined in the specification is incompatible with + PTDiffusionDataTypes#recordV2. + + @since 6.3 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + constraint:(PTDiffusionUpdateConstraint *)constraint; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h new file mode 100644 index 0000000..3150322 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h @@ -0,0 +1,79 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Builds free format PTDiffusionRecordV2 values. + + This type of builder may be used to generate free format recordV2 values which + are not constrained by a PTDiffusionRecordV2Schema. + + Every mutating method returns the builder instance allowing calls to be + chained. + + @since 6.0.1 + */ +@interface PTDiffusionRecordV2Builder : NSObject + +/** + Adds a new record comprising the given fields. + + @param fields Field values. This may be an empty array, in which case the new + record is added with no fields. + + @return Builder instance with the new record added. + + @since 6.0.1 + */ +-(instancetype)addRecordWithFields:(NSArray *)fields; + +/** + Adds one or more field values. + + If there is a current record, adds the fields to the end of the current record; + otherwise, adds a new record and adds the fields to that. + + @param fields Field values. This may be an empty array, in which case nothing + changes. + + @return Builder instance with the new field values added. + + @since 6.0.1 + */ +-(instancetype)addFields:(NSArray *)fields; + +/** + Clears all current values from the builder allowing it to be reused to generate new data. + + @return Builder instance with all current values cleared. + + @since 6.0.1 + */ +-(instancetype)clear; + +/** + Returns an immutable record from the current state of this builder. + + @return Immutable record from the current state of this builder. + + @since 6.0.1 +*/ +-(PTDiffusionRecordV2 *)build; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h new file mode 100644 index 0000000..0b42ba3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h @@ -0,0 +1,66 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2DeltaChange; +@class PTDiffusionRecordV2Schema; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A description of the differences between two record values. + + @since 6.0.2 + */ +@interface PTDiffusionRecordV2Delta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a list of the changes represented by the delta with reference to the + specified schema. + + The schema supplied must comply with the data format of the delta. No + validation takes place, so if the schema does not match the data then the + results may be unpredictable. + + @param schema The schema to use for interpreting this delta. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return List of the changes represented by the delta with reference to the + specified schema. + + @since 6.0.2 + */ +-(nullable NSArray *)changesWithSchema:(PTDiffusionRecordV2Schema *)schema + error:(NSError **)error; + +/** + Compares the receiver to the given recordV2 delta. + + @param delta The object with which to compare the receiver. + + @return `YES` if the delta is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0.2 + */ +-(BOOL)isEqualToRecordV2Delta:(nullable PTDiffusionRecordV2Delta *)delta; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h new file mode 100644 index 0000000..c98bb5d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h @@ -0,0 +1,100 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2DeltaChangeType; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Represents a single change between one record value and another. + + @since 6.0.2 + */ +@interface PTDiffusionRecordV2DeltaChange : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + @brief A change contained within a record delta. + + @since 6.0.2 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2DeltaChangeType* type; + +/** + The name of the affected record. + + @since 6.0.2 + */ +@property(nonatomic, readonly) NSString* recordName; + +/** + The index of the affected record. + + This will be `0` for the first (or only) record occurrence with the given name. + + @since 6.0.2 + */ +@property(nonatomic, readonly) SInt32 recordIndex; + +/** + The name of the affected field. + + This will be a zero length (empty) string if the type is + PTDiffusionRecordV2DeltaChangeType#recordsAdded or + PTDiffusionRecordV2DeltaChangeType#recordsRemoved. + + @since 6.0.2 + */ +@property(nonatomic, readonly) NSString* fieldName; + +/** + The index of the affected field. + + This will be `0` if the type is + PTDiffusionRecordV2DeltaChangeType#recordsAdded or + PTDiffusionRecordV2DeltaChangeType#recordsRemoved. + + @since 6.0.2 + */ +@property(nonatomic, readonly) SInt32 fieldIndex; + +/** + The string key representation of the affected item in the form + `recordName(recordIndex).fieldName(fieldIndex)` or just + `recordName(recordIndex)` if the type is + PTDiffusionRecordV2DeltaChangeType#recordsAdded or + PTDiffusionRecordV2DeltaChangeType#recordsRemoved. + + @since 6.0.2 + */ +@property(nonatomic, readonly) NSString* key; + +/** + Compares the receiver to the given recordV2 delta change. + + @param change The object with which to compare the receiver. + + @return `YES` if the change is equal to the contents of the receiver, + otherwise `NO`. + + @since 6.0.2 + */ +-(BOOL)isEqualToRecordV2DeltaChange:(nullable PTDiffusionRecordV2DeltaChange *)change; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h new file mode 100644 index 0000000..35b3210 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h @@ -0,0 +1,98 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The type of change represented by a record delta. + + @since 6.0.2 + */ +@interface PTDiffusionRecordV2DeltaChangeType : PTDiffusionEnumeration + +/** + The change indicates that a field had its value changed. + + This could be a field that has had its value changed or a new field that has + been added at the end of a variable length record. + + The change will contain name and index details of both the record and the + field. + + @return Instance indicating that a field had its value changed. + + @since 6.0.2 + */ ++(instancetype)fieldChanged; + +/** + The change indicates that one or more field values have been added. + + This will only occur when variable multiplicity fields are used within records. + + The change will contain name and index of the record and the name and index of + the first field added. + + @return Instance indicating that one or more field values have been added. + + @since 6.0.2 + */ ++(instancetype)fieldsAdded; + +/** + The change indicates that a field value has been removed. + + This will only occur when variable multiplicity fields are used within records. + + The change will contain name and index details of the record and the name and + index of the first field removed. + + @return Instance indicating that a field value has been removed. + + @since 6.0.2 + */ ++(instancetype)fieldsRemoved; + +/** + The change indicates that one or more records have been added. + + This will only occur when variable multiplicity records are in use. + + The change will contain only the record name and the index of the first record + added. + + @return Instance indicating that one or more records have been added. + + @since 6.0.2 + */ ++(instancetype)recordsAdded; + +/** + The change indicates that one or more records have been removed. + + This will only occur when variable multiplicity records are in use. + + The change will contain only the record name and the index of the first record + removed. + + @return Instance indicating that one or more records have been removed. + + @since 6.0.2 + */ ++(instancetype)recordsRemoved; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h new file mode 100644 index 0000000..ce9ae6e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2FetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a record fetch operation issued to the + server. + + A record fetch operation is issued using the + PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionRecordV2FetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * recordResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h new file mode 100644 index 0000000..a3808c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a record fetch operation for a single + selected topic. + + A record fetch operation is issued using the + PTDiffusionFetchRequest#fetchRecordValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionRecordV2FetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) PTDiffusionRecordV2* record; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h new file mode 100644 index 0000000..407076f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h @@ -0,0 +1,183 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A data model based upon a schema. + + A read only model can be created from any PTDiffusionRecordV2 object using the + PTDiffusionRecordV2#modelWithSchema: method. The model then provides direct + access to the fields within the data. Fields may be accessed either by + explicitly specifying the record and field occurrence or by specifying a key of + the form: + + `recordName(recordIndex).fieldName(fieldIndex)` + + Indexes start from 0 and if omitted then 0 is assumed. The record name may also + be omitted, in which case the first record definition. This form of addressing + is useful when there is only one record definition. + + Examples of valid keys include: + + | Key | Meaning | + | --------------------------- | ----------------------------------------------------------------------------- | + | `Address(4).AddressLine(3)` | The 4th `AddressLine` occurrence within the 5th `Address` record. | + | `Address.Name` | The first (or only) `Name` field within the first (or only) `Address` record. | + | `AddressLine(1)` | The 2nd `AddressLine` field within the first (or only) record. | + | `Name` | The first (or only) `Name` field within the first (or only) record. | + + The #recordCountWithRecordName:error: and + #fieldCountWithRecordName:recordIndex:fieldName:error: methods are useful for + determining the actual number of occurrences of variable multiplicity items. + + @since 6.0 + */ +@interface PTDiffusionRecordV2Model : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns an immutable record instance generated from this model; or `nil` if an + error occurred, in which case `*error` will be populated with the failure + reason. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return Immutable record instance generated from this model. + + @since 6.0 + */ +-(nullable PTDiffusionRecordV2 *)valueWithError:(NSError **)error; + +/** + Returns the actual number of occurrences of a named field within a specified + record occurrence. + + For all but variable fields this returns the schema defined number of + occurrences of the field. + + @param recordName The record name. + + @param recordIndex The record index. + + @param fieldName The field name. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The actual number of occurrences of the field as an unsigned integer; + or `nil` if an error occurred, in which case `*error` will be populated with + the failure reason. Reasons for failure include: + - either `recordName` or `fieldName` are not defined in the schema. + - `recordIndex` is out of bounds. + + @exception NSInvalidArgumentException If either recordName or fieldName is + `nil`, or if recordIndex is negative. + + @since 6.0 + */ +-(nullable NSNumber *)fieldCountWithRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldName:(NSString *)fieldName + error:(NSError **)error; + +/** + Returns the actual number of occurrences of a named record. + + If the record is not variable, this is the same as the defined number of + occurrences in the schema. + + @param recordName The record name. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The actual number of occurrences of the record as an unsigned integer; + or `nil` if an error occurred, in which case `*error` will be populated with + the failure reason. Reasons for failure include: + - `recordName` is not defined in the schema. + + @exception NSInvalidArgumentException If recordName is `nil`. + + @since 6.0 + */ +-(nullable NSNumber *)recordCountWithRecordName:(NSString *)recordName + error:(NSError **)error; + +/** + Get a field value. + + This allows an item to be addressed using a key of the form + `recordName(recordIndex).fieldName(fieldIndex)`. Indexes may be omitted in + which case 0 is assumed. The record part may also be omitted in which case the + first occurrence of the first record is assumed. + + @param key The field key. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The field value; or `nil` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - the key does not address a valid field. + - an index is out of bounds. + - the key format is invalid. + - an index is not a valid number. + + @exception NSInvalidArgumentException If key is `nil`. + + @since 6.0 + */ +-(nullable NSString *)fieldValueForKey:(NSString *)key + error:(NSError **)error; + +/** + Get a field value. + + @param recordName The name of the record. + + @param recordIndex the index of the record. + + @param fieldName The name of the field. + + @param fieldIndex The index of the field. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return The field value; or `nil` if an error occurred, in which case `*error` + will be populated with the failure reason. Reasons for failure include: + - either `recordName` or `fieldName` are not defined in the schema. + - either `recordIndex` or `fieldIndex` is out of bounds. + + @exception NSInvalidArgumentException If either recordName or fieldName is + `nil`, recordIndex is negative or fieldIndex is negative. + + @since 6.0 + */ +-(nullable NSString *)fieldValueForRecordName:(NSString *)recordName + recordIndex:(SInt32)recordIndex + fieldName:(NSString *)fieldName + fieldIndex:(SInt32)fieldIndex + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h new file mode 100644 index 0000000..f840fb6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling record messaging requests with a + handler registered at the server. + + @see PTDiffusionRecordV2 + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionRecordV2RequestDelegate + +/** + Called when a record request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param record The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h new file mode 100644 index 0000000..9902618 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling RecordV2 messaging requests. + + @see PTDiffusionRecordV2 + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionRecordV2RequestStreamDelegate + +/** + Called when a record request has been received. + + @param stream The stream that received the request. + + @param record The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithRecord:(PTDiffusionRecordV2 *)record + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h new file mode 100644 index 0000000..9eb1c8b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h @@ -0,0 +1,114 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionMutableRecordV2Model; +@class PTDiffusionRecordV2SchemaRecord; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A schema. + + A schema describes data value format in terms of one or more record definitions. + A record definition describes the layout of a record and comprises one or more + field definitions. + + Within the data value there can be multiple occurrences of a record or field + described by a single definition. The defined (or allowed, when describing + variable numbers) number of occurrences of each definition is referred to as + its 'multiplicity'. The multiplicity can be fixed (the item occurs a fixed + number of times), or variable (the item occurs from a minimum number of times + to a maximum number of times). If a variable field is used it must be the last + in a record definition and if a variable record is used it must be the last in + the schema definition. + + A field may be defined as of type 'string', 'integer' or 'decimal'. A decimal + type has a further property of 'scale' which defines the number of digits to + the right of the decimal point. + + @see PTDiffusionRecordV2SchemaBuilder + + @since 6.0 + */ +@interface PTDiffusionRecordV2Schema : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a schema object initialized from the given JSON definition. + + @param jsonData Encoded JSON string representation of the schema. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return An immutable schema derived from the JSON representation; or `nil` if + an error occurred, in which case `*error` will be populated with the failure + reason. + + @since 6.0 + */ ++(nullable instancetype)schemaWithJSONData:(NSData *)jsonData + error:(NSError **)error; + +/** + Returns the schema in a JSON format. + + @return Schema in a JSON format. + + @since 6.0 + */ +-(NSData *)JSONData; + +/** + Create a mutable model based upon the schema. + + The model will be created with all mandatory record occurrences and all + mandatory field occurrences initialized to default values. + + Such a model may be mutated and used to generate updated PTDiffusionRecordV2 + instances for updating purposes. + + @return a new initialized model. + + @since 6.0 + */ +-(PTDiffusionMutableRecordV2Model *)createMutableModel; + +/** + An immutable, ordered list of record definitions. + + There will be at least one. + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray * records; + +/** + Compares the receiver to the given schema. + + @param schema The schema object with which to compare the receiver. + + @return `YES` if the schema is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2Schema:(nullable PTDiffusionRecordV2Schema *)schema; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h new file mode 100644 index 0000000..c709608 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h @@ -0,0 +1,342 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRecordV2Schema; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Used to build an immutable PTDiffusionRecordV2Schema. + + A schema defines the records and fields that may occur in a RecordV2 topic + value. + + The schema must declare at least one record type and every record must have at + least one field type declared. + + Every record type and field type has a 'multiplicity' which defines the number + of times that the record or field may occur within the data. Multiplicity is + specified as a 'minimum' and 'maximum' number of occurrences or where the + minimum and maximum are the same (fixed multiplicity) then the multiplicity may + be specified as a single 'occurs' value. If the minimum and maximum are + different, this is referred to a 'variable' multiplicity. Only the last record + declared or the last field within a record may have variable multiplicity. The + maximum value may be declared as -1 to indicate that the record or field can + have an unlimited number of occurrences. + + The builder is used to add a record definition followed by the fields within + it. After all fields have been added to a record another may then be added, and + so on, and then finally #build is queried to return an immutable schema + object. + + Every mutating method returns the builder instance allowing calls to be + chained. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaBuilder : NSObject + +/** + Returns an immutable schema from the current state of this builder. + + @return Immutable schema from the current state of this builder. + + @exception NSInternalInconsistencyException No records have been specified yet + for this builder instance. + + @since 6.0 + */ +-(PTDiffusionRecordV2Schema *)build; + +/** + Add a new single occurrence record to the schema. + + This is the equivalent to calling #addRecordWithName:occurs: with a value of + `1` for `occurs`. + + @param name The record name. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addRecordWithName:(NSString *)name; + +/** + Add a new fixed multiplicity record to the schema. + + This is the equivalent to calling #addRecordWithName:min:max: with the value of + `occurs` for both `min` and `max`. + + @param name The record name. + + @param occurs The number of times the record is to occur. This must be a + positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addRecordWithName:(NSString *)name + occurs:(SInt32)occurs; + +/** + Add a new record to the schema. + + @param name The record name. + + @param min The minimum number of occurrences of the record. + + @param max The maximum number of occurrences of the record. This must either be + `-1` to indicate an unlimited number or it must be a positive number greater + than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addRecordWithName:(NSString *)name + min:(SInt32)min + max:(SInt32)max; + +/** + Add a new single occurrence string field to the current record. + + This is the equivalent to calling #addStringWithName:occurs: with a value of + `1` for `occurs`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addStringWithName:(NSString *)name; + +/** + Add a new fixed multiplicity string field to the current record. + + This is the equivalent to calling #addStringWithName:min:max: with the value of + `occurs` for both `min` and `max`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param occurs The number of times the field is to occur within the record. This + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addStringWithName:(NSString *)name + occurs:(SInt32)occurs; + +/** + Add a new string field to the current record. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param min The minimum number of occurrences of the field within the record. + + @param max The maximum number of occurrences of the field within the record. + This must either be `-1` to indicate an unlimited number or it must be a + positive number greater than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addStringWithName:(NSString *)name + min:(SInt32)min + max:(SInt32)max; + +/** + Add a new single occurrence integer field to the current record. + + This is the equivalent to calling #addIntegerWithName:occurs: with a value of + `1` for `occurs`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addIntegerWithName:(NSString *)name; + +/** + Add a new fixed multiplicity integer field to the current record. + + This is the equivalent to calling #addIntegerWithName:min:max: with the value + of `occurs` for both `min` and `max`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param occurs The number of times the field is to occur within the record. This + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `occurs` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addIntegerWithName:(NSString *)name + occurs:(SInt32)occurs; + +/** + Add a new integer field to the current record. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param min The minimum number of occurrences of the field within the record. + + @param max The maximum number of occurrences of the field within the record. + This must either be `-1` to indicate an unlimited number or it must be a + positive number greater than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addIntegerWithName:(NSString *)name + min:(SInt32)min + max:(SInt32)max; + +/** + Add a new single occurrence decimal field to the current record. + + This is the equivalent to calling #addDecimalWithName:scale:occurs: with a + value of `1` for `occurs`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param scale The scale of the field (the number of decimal places). This must + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `scale` is less + than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addDecimalWithName:(NSString *)name + scale:(SInt32)scale; + +/** + Add a new fixed multiplicity decimal field to the current record. + + This is the equivalent to calling #addDecimalWithName:scale:min:max: with the + value of `occurs` for both `min` and `max`. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param scale The scale of the field (the number of decimal places). This must + must be a positive value. + + @param occurs The number of times the field is to occur within the record. This + must be a positive value. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil`, `scale` is less than + one or `occurs` is less than one. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addDecimalWithName:(NSString *)name + scale:(SInt32)scale + occurs:(SInt32)occurs; + +/** + Add a new decimal field to the current record. + + @param name The field name. This must not be the same as any field already + added to the record. + + @param scale The scale of the field (the number of decimal places). This must + must be a positive value. + + @param min The minimum number of occurrences of the field within the record. + + @param max The maximum number of occurrences of the field within the record. + This must either be `-1` to indicate an unlimited number or it must be a + positive number greater than or equal to `min`. + + @return This builder. + + @exception NSInvalidArgumentException If `name` is `nil` or `max` is invalid. + + @exception NSInternalInconsistencyException If schema rules are violated. + + @since 6.0 + */ +-(instancetype)addDecimalWithName:(NSString *)name + scale:(SInt32)scale + min:(SInt32)min + max:(SInt32)max; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h new file mode 100644 index 0000000..18e6233 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2SchemaFieldType; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A field definition within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaField : PTDiffusionRecordV2SchemaNode + +/** + The field type. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2SchemaFieldType* type; + +/** + The scale of a decimal field or zero for other types. + + @since 6.0 + */ +@property(nonatomic, readonly) SInt32 scale; + +/** + Compares the receiver to the given schema field. + + @param field The schema field object with which to compare the receiver. + + @return `YES` if the field is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2SchemaField:(nullable PTDiffusionRecordV2SchemaField *)field; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h new file mode 100644 index 0000000..9370ef7 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Type of field defined within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaFieldType : PTDiffusionEnumeration + +/** + Plain string. + + @return Instance representing the plain string schema field type. + + @since 6.0 + */ ++(instancetype)string; + +/** + Integer. + + @return Instance representing the integer schema field type. + + @since 6.0 + */ ++(instancetype)integer; + +/** + Decimal. + + @return Instance representing the decimal schema field type. + + @since 6.0 + */ ++(instancetype)decimal; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h new file mode 100644 index 0000000..6e796e9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A node within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaNode : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The node name. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* name; + +/** + The minimum number of occurrences of the node within its parent. + + This may be zero for a variable multiplicity field, otherwise it will be a + positive value. + + @since 6.0 +*/ +@property(nonatomic, readonly) SInt32 min; + +/** + The maximum number of occurrances of the node within its parent. + + This will be a positive value greater than or equal to the minimum value, or + -1 to indicate an unlimited number. + + @since 6.0 +*/ +@property(nonatomic, readonly) SInt32 max; + +/** + `YES` if the node has variable multiplicity - i.e. `min != max`. + + @since 6.0 + */ +@property(nonatomic, readonly, getter=isVariable) BOOL variable; + +/** + Compares the receiver to the given schema node. + + @param node The schema node object with which to compare the receiver. + + @return `YES` if the node is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2SchemaNode:(nullable PTDiffusionRecordV2SchemaNode *)node; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h new file mode 100644 index 0000000..2cf810e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h @@ -0,0 +1,50 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2SchemaField; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A record definition within a schema. + + @since 6.0 + */ +@interface PTDiffusionRecordV2SchemaRecord : PTDiffusionRecordV2SchemaNode + +/** + An ordered list of the field definitions within the record. + + There will be at least one. + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* fields; + +/** + Compares the receiver to the given schema record. + + @param record The schema record object with which to compare the receiver. + + @return `YES` if the record is equal to the contents of the receiver, otherwise + `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToRecordV2SchemaRecord:(nullable PTDiffusionRecordV2SchemaRecord *)record; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h new file mode 100644 index 0000000..a122db1 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling record messaging responses from + individual sessions. + + @see PTDiffusionRecordV2 + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionRecordV2SessionResponseStreamDelegate + +/** + Called when a session responds to a request with a record. + + @param stream The stream that received the response. + + @param record The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithRecord:(PTDiffusionRecordV2 *)record + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h new file mode 100644 index 0000000..c6c096b --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as a record. + + @since 6.0 + */ +@interface PTDiffusionRecordV2TimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The record value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2* record; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..1baa01e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2TimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + record values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with record values. + + @since 6.0 + */ +@protocol PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a record value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldRecordEvent The previous event. If `nil` then this is the first event. + + @param newRecordEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldRecordEvent:(nullable PTDiffusionRecordV2TimeSeriesEvent *)oldRecordEvent + newRecordEvent:(PTDiffusionRecordV2TimeSeriesEvent *)newRecordEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h new file mode 100644 index 0000000..4b532e6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2TimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of record time series events. + + @since 6.0 + */ +@interface PTDiffusionRecordV2TimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The record time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* recordEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h new file mode 100644 index 0000000..9d92497 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h @@ -0,0 +1,109 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + record values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionRecordV2UpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionRecordV2* value; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If either value or completionHandler is + `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(PTDiffusionRecordV2 *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h new file mode 100644 index 0000000..0a94cc5 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRecordV2; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for record + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for record + topics. + + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@protocol PTDiffusionRecordV2ValueStreamDelegate + +/** + An update was received for a topic path handled by a record value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldRecord The previous value. If `nil` then this is the first value. + + @param newRecord The new value derived from the last update received from the + server. + + @since 6.0 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldRecord:(nullable PTDiffusionRecordV2 *)oldRecord + newRecord:(PTDiffusionRecordV2 *)newRecord; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h new file mode 100644 index 0000000..ca77e51 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A reference to a registered handle. + + Such a reference is provided once a handler with a server-side presence has + been registered. + + @since 6.1 + */ +@interface PTDiffusionRegistration : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Request that the handler is unregistered from the server. + + After the handler is unregistered, the completionHandler will be notified. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.1 + */ +-(void)closeWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Request that the handler is unregistered from the server. + + If the handler has already been unregistered, calling this method has no effect. + + @note Before 6.1 this method was defined on PTDiffusionTopicTreeRegistration. + + @since 5.7 + */ +-(void)close; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h new file mode 100644 index 0000000..de32eb6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h @@ -0,0 +1,78 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRemoteServerConnectionOption; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Interface for a RemoteServer specification + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionRemoteServer : NSObject + + +/** + The remote server name + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *name; + + +/** + The URL for connection to remote server. + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *url; + + +/** + The principal used for the remote server connection + + @since 6.5 + */ +@property (nonatomic, readonly) NSString *principal; + + +/** + The remote server connection options + + @since 6.5 + */ +@property (nonatomic, readonly) NSDictionary *connectionOptions; + + +/** + The missing topic notification filter expression or null if + one has not been specified. + + @since 6.7 + */ +@property (nonatomic, readonly) NSString *missingTopicNotificationFilter; + + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h new file mode 100644 index 0000000..4251fa9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h @@ -0,0 +1,157 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionRemoteServerConnectionOption; +@class PTDiffusionRemoteServer; +@class PTDiffusionCredentials; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A Remote Server builder. + + A builder of this type is used to create instances of {@link PTDiffusionRemoteServer} + that can be supplied to {@link PTDiffusionRemoteServersFeature#createRemoteServer:completionHandler: createRemoteServer:}. + + @since 6.7 + */ +@interface PTDiffusionRemoteServerBuilder : NSObject + +/** + Reset the builder. + + @return this builder. + + @since 6.7 + */ +-(instancetype)reset; + + +/** + Specifies the name of a principal used by the remote server to + connect to the primary server. + + The default, if not specified, is the anonymous principal. + + @param principal principal name of a zero length string to indicate an + anonymous connection. + + @return this builder. + + @since 6.7 + */ +-(instancetype)principal:(NSString * _Nullable)principal; + + +/** + Specifies the credentials to use when connecting to the primary server. + + The default, if not specified, is {@link PTDiffusionCredentials.noCredentials}. + + @param credentials the credentials to use. + + @return this builder. + + @since 6.7 + */ +-(instancetype)credentials:(PTDiffusionCredentials * _Nullable)credentials; + + +/** + Specifies a map of {@link PTDiffusionRermoteServerConnectionOption} settings. + + This will replace any options currently set for the builder. + + Any options not supplied will take their default values. + + If no connection options are specified, either using this method or + {@link PTDiffusionRemoteServerBuilder#connectionOption:withValue:} then all options + will take their default values. + + @param connectionOptions the map of options. + + @return this builder. + + @since 6.7 + */ +-(instancetype)connectionOptions:(NSDictionary* _Nullable)connectionOptions; + + +/** + Specifies a single connection option. + + This will add to the options currently specified to the builder, or replace a value if + it has already been specified. + + @param option the connection option. + + @param value the connection option value or null to remove the option. + + @return this builder. + + @since 6.7 + */ +-(instancetype)connectionOption:(PTDiffusionRemoteServerConnectionOption *)option + withValue:(NSString * _Nullable)value; + + +/** + Specifies a topic selector expression which will filter missing + topic notifications propagated from secondary to primary servers. + + {@link PTDiffusionMissingTopicNotification}s are notified when a client + subscribes using a topic selector that matches no existing topics. + By specifying a missing topic notification filter, all notifications that + match the filter on the secondary server will be propagated to the primary server. + + A match occurs if the path prefix of the subscription selector matches the path + prefix of the specified selector. + + If no filter is specified then no missing topic notifications will be propagated. + + The special selector expression `*.*` may be used to indicate that all missing topic + notifications should be propagated. + + Only the path prefix of the specified selector(s) is considered when matching therefore, + any use of regular expressions would be ignored. + + @param filter a topic selector expression specifying the filter to apply or null to remove + any existing filter. + + @return this builder. + + @since 6.7 + */ +-(instancetype)missingTopicNotificationFilter:(NSString * _Nullable)filter; + + +/** + Creates a remote server object using the current values known + to this builder. + + @param name the name of the remote server. + + @param url the URL to use to connect to the primary server. + + @return a new remote server instance. + + @since 6.7 + */ +-(PTDiffusionRemoteServer *)createWithName:(NSString *)name + andURL:(NSString *)url; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h new file mode 100644 index 0000000..45be376 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h @@ -0,0 +1,165 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Connection option key for a remote server + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionRemoteServerConnectionOption : PTDiffusionEnumeration + + +/** + Specifies the reconnection timeout session attribute. + + This is the total time in milliseconds that will be allowed to + reconnect a failed connection to the remote server. + + For reconnection to work the remote server connector must have + been configured to support reconnection. + + If a value is not specified + `PTDiffusionSessionConfiguration.reconnectionTimeout` is used. + + @return Instance representing the key for the reconnection timeout session attribute. + + @since 6.5 + */ ++(instancetype)reconnectionTimeout; + + +/** + Specifies the delay after losing a connection before attempting a + reconnection. + + The value is specified in milliseconds. Default 1000 (1 second). + + @return Instance representing the key for the delay after losing a + connection before attempting a reconnection. + + @since 6.5 + */ ++(instancetype) retryDelay; + + +/** + Specifies the recovery buffer size session attribute. + + If the remote server is configured to support reconnection, a + session established with a non-zero reconnect-timeout retains a + buffer of sent messages. If the session disconnects and + reconnects, this buffer is used to re-send messages that the + server has not received. + + The default value is 10,000 messages. If reconnect-timeout is 0 + then this value is ignored. + + @return Instance representing the key for the recovery buffer size + session attribute. + + @since 6.5 + */ ++(instancetype)recoveryBufferSize; + + +/** + Specifies the input buffer size session attribute. + + This is the size of the input buffer to use for the connection + with the remote server. It is used to receive messages from the + remote server. This should be set to the same size as the output + buffer used at the remote server. + + If not specified, a default of 1024k is used. + + @return Instance representing the key for the input buffer size + session attribute. + + @since 6.5 + */ ++(instancetype)inputBufferSize; + + +/** + Specifies the output buffer size session attribute. + + This is the size of the output buffer to use for the connection + with the remote server. It is used to send messages to the remote + server. This should be set to the same size as the input buffer + used by the remote server. + + If not specified, a default of 1024k is used. + + @return Instance representing the key for output buffer size + session attribute. + + @since 6.5 + */ ++(instancetype)outputBufferSize; + + +/** + Specifies the maximum queue size session attribute. + + This is the maximum number of messages that can be queued to send + to the remote server. If this number is exceeded, the connection + will be closed. This must be sufficient to cater for messages + that may be queued whilst disconnected (awaiting reconnect). + + The default value is 10,000 messages. + + @return Instance representing the key for the maximum queue size + session attribute. + + @since 6.5 + */ ++(instancetype)maximumQueueSize; + + +/** + Specifies the connection timeout session attribute value (in + milliseconds). + + If a value is not specified + `PTDiffusionSessionConfiguration.connectionTimeout` is used. + + @return Instance representing the key for the connection timeout + session attribute. + + @since 6.5 + */ ++(instancetype)connectionTimeout; + + + +/** + Specifies the write timeout session attribute value (in + milliseconds). + + @return Instance representing the key for the write timeout + session attribute. + + @since 6.5 + */ ++(instancetype)writeTimeout; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h new file mode 100644 index 0000000..ed52d78 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h @@ -0,0 +1,97 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Represents the current connection state of the remote server + + This is used by the Remote Servers feature + + @since 6.5 + */ +@interface PTDiffusionRemoteServerConnectionState : PTDiffusionEnumeration + + +/** + The connection is inactive. + + This means that the remote server can successfully connect but a + physical connection is not being maintained as there are no + components that require the remote server. + + If in an inactive or failed state, a test connection will have + been tried to check that the connection can be made and the + connection will then have been closed. + + @return Instance representing the inactive connection state. + + @since 6.5 + */ ++(instancetype)inactive; + + +/** + The remote server is connected and actively in use by components + that require it. + + @return Instance representing the connected connection state. + + @since 6.5 + */ ++(instancetype)connected; + + +/** + The connection has failed but a retry is scheduled. + + In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` + will provide details of the failure that resulted in a retry. + + @return Instance representing the retrying connection state. + + @since 6.5 + */ ++(instancetype)retrying; + + +/** + The connection failed to establish. + + If the connection was in an inactive or failed state state, a + test connection was tried and failed. + + In this case `[PTDiffusionCheckRemoteServerResult failureMessage]` + will provide more detail. + + @return Instance representing the failed connection state. + + @since 6.5 + */ ++(instancetype)failed; + + +/** + The named remote server did not exist. + + @return Instance representing the remote server missing connection state. + + @since 6.5 + */ ++(instancetype)missing; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h new file mode 100644 index 0000000..cedcce6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h @@ -0,0 +1,272 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionCredentials; +@class PTDiffusionRemoteServer; +@class PTDiffusionRemoteServerConnectionOption; +@class PTDiffusionRemoteServerConnectionState; +@class PTDiffusionCheckRemoteServerResult; +@class PTDiffusionCreateRemoteServerResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client session to manage remote servers. + + A remote server provides the configuration to connect to a Diffusion server + belonging to a different cluster. Each server in the local cluster will + establish a session with each remote server. + + Higher level components, such as remote topic views, can specify the use of + such remote servers by name. The connecting and disconnecting is handled + automatically by the server (or servers in the same cluster) where the remote + servers are defined. + + A component can specify a remote server by name even if it does not exist + (has not yet been created) and when the remote server is created the + connection will take place automatically. + + If a remote server is removed and there are components that depend upon it, + those components will be disabled. + + An example of the use of remote servers is within remote topic views (those + that indicate that their source topics are to be taken from a different + server) where the name of such a server can be specified. + + ### Remote Server persistence and replication + + Remote server configurations created through this feature are replicated + across a cluster and persisted to disk. + + ### Access control + + The following access control restrictions are applied: + +
    +
  • To create, remove or check a remote server, a session needs the + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission. +
  • To list remote servers, a session needs the + {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission. +
+ + ### Accessing the feature + + This feature may be obtained from a {@link PTDiffusionSession session} as follows: + +
+ PTDiffusionRemoteServersFeature *remoteServers = session.remoteServersFeature;
+ 
+ + @since 6.5 + */ +@interface PTDiffusionRemoteServersFeature : PTDiffusionFeature + + +/** + @brief Create a new remote server instance at the server. + + If a remote server with the same name already exists an error will be returned. + + @param remoteServer remote server definition using a {@link PTDiffusionRemoteServerBuilder + remote server builder}. + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a full definition of the remote server created + by the operation. + If the remote server definition is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.7 + */ +-(void)createRemoteServer:(PTDiffusionRemoteServer *const)remoteServer + completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler; + + +/** + @brief Create a new remote server instance with default connection options. + + If a remote server with the same name already exists an error will be returned. + + @param name the name of the remote server + + @param url the URL used to connect to the primary server + + @param principal the name of a principal used by the remote server to + connect to the primary server. A zero length string may be + supplied to indicate an anonymous connection + + @param credentials used for connecting to the primary server + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a full definition of the remote server created + by the operation. + If the remote server definition is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + + @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. + This method will be removed in a future release. + */ +-(void)createRemoteServer:(NSString *const)name + withURL:(NSString *const)url + principal:(NSString *const)principal + credentials:(PTDiffusionCredentials *const)credentials + completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); + + +/** + @brief Create a new remote server instance. + + If a remote server with the same name already exists an error will be returned. + + @param name the name of the remote server + + @param url the URL used to connect to the primary server + + @param principal the name of a principal used by the remote server to + connect to the primary server. A zero length string may be + supplied to indicate an anonymous connection + + @param credentials used for connecting to the primary server + + @param connectionOptions map of connection option settings. Any options + not supplied will take their default values + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a full definition of the remote server + created by the operation. + If the remote server definition is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_RemoteServerExists} - if a remote server with the given name already exists +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + + @deprecated since 6.7 Use {@link createRemoteServer:completionHandler:} in preference. + This method will be removed in a future release. + */ +-(void)createRemoteServer:(NSString *const)name + withURL:(NSString *const)url + principal:(NSString *const)principal + credentials:(PTDiffusionCredentials *const)credentials + connectionOptions:(NSDictionary const*)connectionOptions + completionHandler:(void (^)(PTDiffusionCreateRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); + + + +/** + @brief Check the current state of a named remote server. + + This will report back the current state of the remote server, but also + can be used to forcibly retry a failed remote server connection. + + @param name the name of the remote server + + @param completionHandler a completion handler that returns when a response is + received from the server, return the details of the remote server state. + If the state is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + */ +-(void)checkRemoteServer:(NSString *const)name + completionHandler:(void (^)(PTDiffusionCheckRemoteServerResult * _Nullable result, + NSError * _Nullable error))completionHandler; + + +/** + @brief List all the remote servers that have been created + + @param completionHandler a completion handler that returns when a response is + received from the server, returning a list of remote servers. + If the list is nil, this could mean an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_AccessDenied} - if the calling session does not have + {@link PTDiffusionGlobalPermission#viewServer VIEW_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - if the session is closed +
+ + @since 6.5 + */ +-(void)listRemoteServers:(void (^)(NSArray * _Nullable result, + NSError * _Nullable error))completionHandler; + + +/** + @brief Remove a named remote server if it exists + + If the named remote server does not exist the completionHandler + will return without an error + + When a named remote server is removed, any components that specify it + would be disabled. + + @param name the name of the remote server + + @param completionHandler a completion handler that returns when a response is + received from the server. + If the error is not nil, this means an error has occurred. + These may include: +
    +
  • {@link PTDiffusionError_ClusterRouting} or {@link PTDiffusionError_ClusterRepartition} - + if a transient cluster error occurred +
  • {@link PTDiffusionError_AccessDenied} - + if the calling session does not have + {@link PTDiffusionGlobalPermission#controlServer CONTROL_SERVER} permission +
  • {@link PTDiffusionError_SessionClosed} - + if the session is closed +
+ + @since 6.5 + */ +-(void)removeRemoteServer:(NSString *const)name + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h new file mode 100644 index 0000000..c1c1ce8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A request to be sent using messaging. + + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionRequest : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h new file mode 100644 index 0000000..7bd3717 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A request context provides additional contextual information for + received messaging requests. + + @since 6.0 + */ +@interface PTDiffusionRequestContext : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The ID of the session that sent the request. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + +/** + The message path of the request. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* path; + +/** + Properties of the session that sent the request. + + @since 6.0 + */ +@property(nonatomic, readonly) NSDictionary* sessionProperties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h new file mode 100644 index 0000000..89599c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Handler to receive request notifications. + + @see PTDiffusionMessagingFeature + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionRequestHandler : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h new file mode 100644 index 0000000..d546be8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A request stream represents an asynchronous, variable length feed of + messaging requests. + + @see PTDiffusionMessagingFeature + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionRequestStream : PTDiffusionStream + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h new file mode 100644 index 0000000..58d4204 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h @@ -0,0 +1,62 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionResponse; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Responder provided with requests, used to dispatch responses. + + @see PTDiffusionRequestHandler + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.0 + */ +@interface PTDiffusionResponder : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Dispatch a response to a request. + + @param response The value to send in response. + + @exception NSInvalidArgumentException Raised if the response argument is `nil`. + + @since 6.1 + */ +-(void)respondWithResponse:(PTDiffusionResponse *)response; + +/** + Dispatch a rejection to a request, indicating that a response could not be + generated. + + @param reason Freeform text to provide to the requestor by way of explanation + for this rejection. + + @exception NSInvalidArgumentException Raised if the reason argument is `nil`. + + @since 6.0 + */ +-(void)rejectWithReason:(NSString *)reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h new file mode 100644 index 0000000..2dbb969 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h @@ -0,0 +1,36 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A response to be sent using messaging. + + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionMessagingFeature + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.1 + */ +@interface PTDiffusionResponse : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h new file mode 100644 index 0000000..068bed3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Defines a retry strategy. + + A retry strategy will be applied when an initial to attempt to open a session + fails with a SessionEstablishmentTransientException + + The strategy is defined in terms of the number of milliseconds between retries and + the maximum number of retries to attempt. + + @since 6.9 + */ +@interface PTDiffusionRetryStrategy : NSObject + +/** + The retry strategy that indicates that no retry is to be attempted. + */ ++(instancetype)NO_RETRY; + +/** + Creates a new retry strategy object. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + @param attempts the number of retry attempts + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval andAttempts:(const NSInteger) attempts; + + +/** + Creates a new retry strategy that will retry indefinitely at the + specified interval. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval; + + +/** + No retry constructor + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)init; + + +/** + The number of milliseconds between retries + + @since 6.9 + */ +@property(nonatomic, readonly) NSUInteger interval; + + +/** + The maximum number of retries to attempt + + @since 6.9 + */ +@property(nonatomic, readonly) NSInteger attempts; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h new file mode 100644 index 0000000..5d8212d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h @@ -0,0 +1,87 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionCredentials; +@class PTDiffusionGlobalPermission; +@class PTDiffusionPathPermission; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature provides a client session with the ability to change its + associated principal as well as to query permissions assigned to it. + + The Security feature for a session can be obtained from the session's + `security` property. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSecurityFeature : PTDiffusionFeature + +/** + Change the security principal associated with the current session. + + If authentication fails, the current principal will remain valid. + + @param principal The new principal name. + + @param credentials The credentials authenticating the new principal. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if the completionHandler argument + is `nil`. + + @since 5.6 + */ +-(void)changePrincipal:(nullable NSString *)principal + credentials:(nullable PTDiffusionCredentials *)credentials + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Query the global permissions assigned to the calling session. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.3 + */ +-(void)getGlobalPermissionsWithCompletionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; + +/** + Query the topic permissions assigned to the calling session on a given path. + + @param path the path to query for permissions + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @since 6.3 + */ +-(void)getTopicPermissionsForPath:(NSString *)path + completionHandler:(void (^)(NSSet * _Nullable permissions, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h new file mode 100644 index 0000000..58b20c8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h @@ -0,0 +1,55 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +/** + Delivery priority for a sent message. + + @since 5.6 + */ +typedef NS_ENUM(NSUInteger, PTDiffusionSendDeliveryPriority) { + /** + Normal priority. + + @since 5.6 + */ + PTDiffusionSendDeliveryPriority_Normal = 1, + + /** + Highest priority. + + @since 5.6 + */ + PTDiffusionSendDeliveryPriority_High = 2, + + /** + Lowest priority. + + @since 5.6 + */ + PTDiffusionSendDeliveryPriority_Low = 3, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a localized string representation of the given send delivery priority. + + @param priority The send delivery priority for which a description is to be + returned. + + @since 5.7 + */ +NSString* PTDiffusionSendDeliveryPriorityToString(PTDiffusionSendDeliveryPriority priority); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h new file mode 100644 index 0000000..d11fd1f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h @@ -0,0 +1,613 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionClientControlFeature; +@class PTDiffusionMessagingFeature; +@class PTDiffusionPingsFeature; +@class PTDiffusionSecurityFeature; +@class PTDiffusionSessionConfiguration; +@class PTDiffusionSessionId; +@class PTDiffusionSessionLock; +@class PTDiffusionSessionLockAttempt; +@class PTDiffusionSessionLockScope; +@class PTDiffusionSessionState; +@class PTDiffusionSubscriptionControlFeature; +@class PTDiffusionTimeSeriesFeature; +@class PTDiffusionTopicControlFeature; +@class PTDiffusionTopicNotificationsFeature; +@class PTDiffusionTopicsFeature; +@class PTDiffusionTopicUpdateFeature; +@class PTDiffusionTopicViewsFeature; +@class PTDiffusionRemoteServersFeature; +@class PTDiffusionSessionTreesFeature; +@class PTDiffusionMetricsFeature; +@class PTDiffusionHTTPResponse; + +@protocol PTDiffusionErrorListener; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A client session to a server or cluster of servers. + + The @ref md_quick_start "Quick Start" guide provides basic instructions on how + to connect to a Diffusion server. + + Also see: + - @ref md_session_filters "Session Filters". + - @ref md_session_properties "Session Properties". + + A new session can be created by connecting to a server using + `#openWithURL:completionHandler:` specifying the server URL. + A `PTDiffusionSessionConfiguration` can also be configured to control + the behaviour of the session using `#openWithURL:configuration:completionHandler:` + + The session provides a variety of operations to the application. These are + grouped into feature interfaces, such as Topics and Messaging, + exposed to the application through the following methods: +
    +
  • #clientControl +
  • #messaging +
  • #pings +
  • #remoteServers +
  • #security +
  • #subscriptionControl +
  • #timeSeries +
  • #topicControl +
  • #topics +
  • #topicUpdate +
  • #topicViews +
+ + ###Session lifecycle + + Each session is managed by a server. The server assigns the session a + unique identity, and manages the session's topic subscriptions, + security details, and session properties. + + A session can be terminated using `close`. A session may also be + terminated by the server because of an error or a time out, or by other + privileged sessions using the ClientControl feature. + + A client can become disconnected from the server, and reconnect to the server + without loss of the session. Reconnection can be configured using + `PTDiffusionSessionConfiguration.reconnectionStrategy`. The server + must be configured to allow reconnection. + + If a session is connected to a server that belongs to a cluster with session + replication enabled, and then becomes disconnected, it will attempt to + reconnect to the original server. A properly configured load balancer can + detect that the original server is unavailable and re-route the reconnection + request to a second server in the cluster. The second server can recover + session data and continue the session. This process is known as "fail over". + Unlike reconnection, in-flight messages can be lost during failover, and the + application will be unsubscribed and re-subscribed to topics. + + The current state of the session can be retrieved with `state`. + This property is Key-Value Observable with changes being notified on + the main dispatch queue when the session state changes. + + ### Session locks + + The actions of multiple sessions can be coordinated using session locks. See + PTDiffusionSession#lockWithName:completionHandler: + + @since 5.6 + */ +@interface PTDiffusionSession : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Starts asynchronously connecting to a Diffusion server using the given session configuration. + + @param url The location of the server to connect to. Encapsulates host, port and protocol to use. + Must be absolute. + + @param configuration The configuration options to connect with. + + @param completionHandler The completion handler to call on connection success or failure. + The completion handler will be called from the main dispatch queue and will only be called once. + + @note Your completion handler _must_ store a strong reference to the session instance in order + for it to remain open. + + @note The completion handler block is called after the session's state property has been set + to connected but before those observing through the notification center are informed. + + @since 5.6 + */ ++(void)openWithURL:(NSURL *)url + configuration:(PTDiffusionSessionConfiguration *)configuration + completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; + + +/** + Starts asynchronously connecting to a Diffusion server using the default session configuration. + + @param url The location of the server to connect to. Encapsulates host, port and protocol to use. + Must be absolute. + + @param completionHandler The completion handler to call on connection success or failure. + The completion handler will be called from the main dispatch queue and will only be called once. + + @note Your completion handler _must_ store a strong reference to the session instance in order + for it to remain open. + + @note The completion handler block is called after the session's state property has been set + to connected but before those observing through the notification center are informed. + + @since 5.6 + */ ++(void)openWithURL:(NSURL *)url + completionHandler:(void (^)(PTDiffusionSession * _Nullable session, NSError * _Nullable error))completionHandler; + + +/** + The configuration used to open the session. + + @since 5.6 + */ +@property(nonatomic, readonly, copy) PTDiffusionSessionConfiguration* configuration; + + +/** + The unique identifier for the session as assigned by the server it connects to. + + This property is Key-Value Observable with changes being notified on the main dispatch queue. + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + + +/** + The name of the security principal associated with the session. + + @return The principal name. If the session has no associated principal, it is + known as an anonymous session, in which case the empty string + anonymousPrincipal will be assigned to this property. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* principal; + + +/** + The current state of the session. + + This property is Key-Value Observable with changes being notified on the main dispatch queue. + KVO notifications are sent before the invocation of any callback handler blocks. + + @note Session state can also be observed using the notification center. + See PTDiffusionSessionStateChange for details. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionSessionState* state; + + +/** + The delegate to use to report unexpected, non-fatal errors to. + + @since 6.0 + */ +@property(nonatomic, weak) id errorListener; + + +/** + Close the session. Once closed a session cannot be restarted. + + @since 5.6 + */ +-(void)close; + + +/** + Attempt to acquire a session lock. + + The completion handler block will be called with the requested lock if the + server assigns it to the session. Otherwise, the completion handler block will + be called with an error indicating why the lock could not be acquired. + + Acquiring the lock can take an arbitrarily long time if other sessions are + competing for the lock. The server will retain the session's request for the + lock until it is assigned to the session, the session is closed, or the session + cancels the CompletableFuture. + + A session can call this method multiple times. If the lock is acquired, all + calls will complete successfully with equal SessionLocks. + + Calling cancel on the returned PTDiffusionCancellable has no effect on other + pending calls to acquire this lock. + + Upon successful acquisition, the session owns the lock and is responsible for + unlocking it. When calling cancel on the returned PTDiffusionCancellable, take + care that it has not already completed by checking the return value. The + following Swift code releases the lock if the request could not be canceled. + + let attempt = session.lock(withName: "my-lock") { (lock, error) in + / / .. + } + + if (!attempt.cancel()) { + attempt.lock?.unlock() { (wasOwned, error) in } + } + + A session that acquires a lock will remain its owner until it is unlocked or + the session closes. The variant of this methods that takes a scope parameter + provides the further option of releasing the lock when the session loses its + connection to the server. + + ### Access control + + To allow fine-grained access control, lock names are interpreted as path names, + controlled with the `PTDiffusionPathPermission.acquireLock` path permission. This allows permission to + be granted to a session to acquire the lock `update-topic/a` while preventing + the session from acquiring the lock `update-topic/b`, for example. + + @param name The name of the session lock. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + If this session has successfully acquired the session lock, or this session + already owns the session lock, the completion handler will be called with the + lock instance. + + If the completion handler is called with an error to indicate failure, this + session does not own the session lock. Common reasons for failure include: + + - The calling session does not have the `PTDiffusionPathPermission.acquireLock` permission for this lock + name. + - The session is closed. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @see #lockWithName:scope:completionHandler: + + @since 6.3 + */ +-(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name + completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; + + +/** + Variant of #lockWithName:completionHandler: that provides control over when a + lock will be released. + + If called with PTDiffusionSessionLockScope#unlockOnSessionLoss, this method + behaves exactly like #lockWithName:completionHandler:. + + If called with PTDiffusionSessionLockScope#unlockOnConnectionLoss, any lock + that is returned will be unlocked if the session loses its connection to the + server. This is useful to allow another session to take ownership of the lock + while this session is reconnecting. + + @param name The name of the session lock + + @param scope Preferred scope. The scope of a lock controls when it will be + released automatically. If a session makes multiple requests for a lock using + different scopes, and the server assigns the lock to the session fulfilling the + requests, the lock will be given the weakest scope + (PTDiffusionSessionLockScope#unlockOnConnectionLoss). + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @see #lockWithName:completionHandler: + + @since 6.3 + */ +-(PTDiffusionSessionLockAttempt *)lockWithName:(NSString *)name + scope:(PTDiffusionSessionLockScope *)scope + completionHandler:(void (^)(PTDiffusionSessionLock * _Nullable lock, NSError * _Nullable error))completionHandler; + + +/** + Returns the last HTTP response received from the server. + + @since 6.3.6 + */ +-(PTDiffusionHTTPResponse * _Nullable)websocketHTTPResponse; + + + +#pragma mark - Features + +/** + The Client control feature provides the capability to listen and set session properties + + @since 6.5 + */ +@property(nonatomic, readonly) PTDiffusionClientControlFeature *clientControl; + + +/** + The Topics feature provides the capability to receive streamed topic updates and/or + fetch the state of topics. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionTopicsFeature* topics; + + +/** + The Topic Control features provides the capability to manage topics. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionTopicControlFeature* topicControl; + + +/** + The Topic Update feature provides a client session with the ability to update + topics. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionTopicUpdateFeature* topicUpdate; + + +/** + The Messaging feature provides messaging capabilities. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionMessagingFeature* messaging; + + +/** + The Security feature provides a client session with the ability to change + the associated principal. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionSecurityFeature* security; + + +/** + The Pings feature provides a client session with the ability to test the + roundtrip time associated with sending a request to the server and receiving + the associated response. + + @since 5.7 + */ +@property(nonatomic, readonly) PTDiffusionPingsFeature* pings; + + +/** + The Time Series feature provides a client session with the ability to update + and query time series topics. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionTimeSeriesFeature* timeSeries; + + +/** + The Topic Notifications feature allows a client session to receive + notifications about changes to selected topics. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionTopicNotificationsFeature* topicNotifications; + + +/** + The Subscription Control feature allows a client session to subscribe or + unsubscribe other sessions to topics, as well as also providing a mechanism for + handling requests to subscribe to routing topics. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionSubscriptionControlFeature* subscriptionControl; + + +/** + The Topic Views feature allows a client session to manage topic views. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionTopicViewsFeature* topicViews; + + +/** + The Remote Servers feature allows a client session to create, remove, list + and check remote servers. + + @since 6.5 + */ +@property(nonatomic, readonly) PTDiffusionRemoteServersFeature* remoteServers; + + +/** + The Session Trees feature allows the creation and alteration of branch mapping tables. + + @see PTDiffusionSessionTreesFeature + + @since 6.7 + */ +@property(nonatomic, readonly) PTDiffusionSessionTreesFeature* sessionTrees; + + +/** + The Metrics feature allows a client to configure metric collectors. + + @see PTDiffusionMetricsFeature + + @since 6.7 + */ +@property(nonatomic, readonly) PTDiffusionMetricsFeature* metrics; + + + + +#pragma mark - Session properties + +/** + Value assigned to the principal property if this is an anonymous session. + + @since 6.0 + */ ++(NSString *)anonymousPrincipal; + + +/** + This constant can be used instead of a property key in requests for session + property values to indicate that all fixed session properties are required. + + @since 6.0 + */ ++(NSString *)allFixedProperties; + + +/** + This constant can be used instead of a property key in requests for session + property values to indicate that all user defined session properties are + required. + + @since 6.0 + */ ++(NSString *)allUserProperties; + + +/** + Session property key for session roles. + + @since 6.2 + */ ++(NSString *)rolesPropertyKey; + + +/** + Session property key for session identifier. + + @see PTDiffusionSessionId + + @since 6.2 + */ ++(NSString *)sessionIdPropertyKey; + + +/** + Session property key for principal. + + @since 6.2 + */ ++(NSString *)principalPropertyKey; + + +/** + Session property key for connector name. + + @since 6.2 + */ ++(NSString *)connectorPropertyKey; + + +/** + Session property key for transport. + + @since 6.2 + */ ++(NSString *)transportPropertyKey; + + +/** + Session property key for client type. + + @since 6.2 + */ ++(NSString *)clientTypePropertyKey; + + +/** + Session property key for country code. + + @since 6.2 + */ ++(NSString *)countryPropertyKey; + + +/** + Session property key for language code. + + @since 6.2 + */ ++(NSString *)languagePropertyKey; + + +/** + Session property key for server name. + + @since 6.2 + */ ++(NSString *)serverNamePropertyKey; + + +/** + Session property key for client IP address. + + @since 6.2 + */ ++(NSString *)clientIPPropertyKey; + + +/** + Session property key for client latitude. + + @since 6.2 + */ ++(NSString *)latitudePropertyKey; + + +/** + Session property key for client longitude. + + @since 6.2 + */ ++(NSString *)longitudePropertyKey; + + +/** + Session property key for client start time. + + @since 6.2 + */ ++(NSString *)startTimePropertyKey; + +/** + Session property key for gateway client type. + + @since 6.6 + */ ++(NSString *)gatewayTypePropertyKey; + +/** + Session property key for gateway client id. + + @since 6.6 + */ ++(NSString *)gatewayIdPropertyKey; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h new file mode 100644 index 0000000..01639df --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h @@ -0,0 +1,517 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionCredentials; +@class PTDiffusionHTTPProxyConfiguration; +@class PTDiffusionRetryStrategy; + +@protocol PTDiffusionSessionReconnectionStrategy; +@protocol PTDiffusionSessionStateChangeDelegate; + +extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; + + +NS_ASSUME_NONNULL_BEGIN + + +/** + @brief A session configuration defines behavior and policies to use when connecting to Diffusion. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSessionConfiguration : NSObject + + +/** + Returns a session configuration object initialized with the given principal and credentials. + + @param principal The security principal to use when opening the session. + A value of `nil` dictates that no principal name will be associated with the session, + indicating anonymous authentication. + + @param credentials The security credentials to use when opening the session. + A value of `nil` dictates that no credentials will be used when authenticating the session. + + @return The session configuration instance initialized with the given principal and credentials. + + @since 5.6 + */ +-(instancetype)initWithPrincipal:(nullable NSString *)principal + credentials:(nullable PTDiffusionCredentials *)credentials; + + +/** + The security principal to use when opening the session. + + A value of `nil` dictates that no principal name will be associated with the session, + indicating anonymous authentication. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly, copy) NSString *principal; + + +/** + The security credentials to use when opening the session. + + A value of `nil` dictates that no credentials will be used when authenticating the session. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; + + +/** + The reconnection timeout in seconds that will be used on connection failure. + + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. + + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; + + +/** + The reconnection strategy that will be used on connection failure. + + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default + reconnection strategy will be employed. + + @since 5.6 + */ +@property(nonatomic, nullable, readonly) id reconnectionStrategy; + + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) PTDiffusionRetryStrategy* initialRetryStrategy; + + +/** + The default recovery buffer size in messages. + + @return Number representing the default recovery buffer size in messages. + + @see recoveryBufferSize + + @since 6.0 + */ ++(NSUInteger)defaultRecoveryBufferSize; + +/** + The recovery buffer size in messages; can be zero. + + If the server is configured to support reconnection, a session established with + a non-zero reconnection time retains a buffer of sent messages. + If the session disconnects and reconnects, this buffer is used to re-send + messages that the server has not received. + + Higher values increase the chance of successful reconnection, but increase the + per-session memory footprint. + + @see defaultRecoveryBufferSize + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger recoveryBufferSize; + + +/** + The default connection timeout (2 seconds). + + @return Time interval representing the default connection timeout. + + @since 5.7 + */ ++(NSTimeInterval)defaultConnectionTimeout; + + +/** + The lowest value that the maximum message size can be set to in bytes. + + @return Number representing the lowest value in bytes that the maximum message size can be set to. + + @see maximumMessageSize + + @since 6.0 + */ ++(NSUInteger)maximumMessageSizeMinimum; + + +/** + The default maximum message size in bytes. + + The maximum message size limits the + size of received messages. This default value is NSUIntegerMax, so the message + size is effectively unlimited. + + @return Number representing the default maximum message size in bytes. + + @see maximumMessageSize + + @since 6.0 + */ ++(NSUInteger)defaultMaximumMessageSize; + + +/** + The default maximum outbound queue size in messages. + + @return Number representing the default maximum outbound queue size in messages. + + @see maximumQueueSize + + @since 6.0 + */ ++(NSUInteger)defaultMaximumQueueSize; + + +/** + The maximum message size in bytes. + + This constrains the size of messages that may be received from the server and + thus the size of any content that can be received. The limit protects against + unexpectedly large messages. + + @see defaultMaximumMessageSize + @see maximumMessageSizeMinimum + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger maximumMessageSize; + + +/** + The maximum size of the outbound message queue for the connection. + + The outbound message queue should be large enough to accommodate all the + messages sent to the server. This would include topic updates, messaging and + service requests such as registering a handler. + + It may be necessary to increase this value for applications that send messages + in bursts, or continue to send messages when a session is disconnected and + reconnecting. Larger values allow more messages to be queued, and increase the + memory footprint of the session. + + If the outbound message queue fills, sending a message will cause the session + to close with an error. + + @see defaultMaximumQueueSize + + @since 6.0 + */ +@property(nonatomic, readonly) NSUInteger maximumQueueSize; + + +/** + The connection timeout. + + This constrains the time taken to establish an initial connection to the server. + The server is responsible for limiting the overall time taken to complete a connection + once it has received the request. + + @since 5.7 + */ +@property(nonatomic, readonly) NSTimeInterval connectionTimeout; + + +/** + Security settings to be applied to the underlying transport streams for SSL/TLS + encrypted connections. + + A value of `nil` or an empty dictionary indicates that default settings, as + defined by the host operating system, will be applied. + + Supported keys are documented by Apple under 'CFStream Property SSL Settings + Constants' in their Core Foundation + [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). + + For example, a rudimentary approach to allowing otherwise disallowed self-signed + certificates could be to disable validation of the certificate chain entirely: + + configuration.sslOptions = + [NSDictionary dictionaryWithObject:kCFBooleanFalse + forKey:kCFStreamSSLValidatesCertificateChain]; + + @since 5.7.1 + */ +@property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; + + +/** + User-defined @ref md_session_properties "session properties". + + These properties will be provided to the server when a session is created using + this session configuration. They will be validated during authentication and + may be discarded or changed. + + A value of `nil` or an empty dictionary indicates that no user-defined session + properties will be provided to the server on connection. + + @since 6.3 + */ +@property(nonatomic, nullable, readonly, copy) NSDictionary* properties; + + +/** + Configuration of the HTTP Proxy that should be used to make connections to the server. + + This allows connection to a server using HTTP CONNECT tunneling through the + specified proxy. + + A value of `nil` dictates that a proxy is not used. This is the default. + + @since 6.0 + */ +@property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) id sessionStateListener; + + +/** + Compares the receiver to the given session configuration. + + @param sessionConfiguration The session configuration object with which to compare the receiver. + + @return `YES` if the receiver and the given session configuration will have the same effect. + + @since 5.6 + */ +-(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; + + +@end + + + + +/** + @brief A mutable session configuration can be modified prior to being used to define + behaviour and policies to use when connecting to Diffusion. + + @since 5.6 + */ +@interface PTDiffusionMutableSessionConfiguration : PTDiffusionSessionConfiguration + +/** + The security principal to use when opening the session. + + A value of `nil` dictates that no principal name will be associated with the session, + indicating anonymous authentication. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite, copy) NSString *principal; + + +/** + The security credentials to use when opening the session. + + A value of `nil` dictates that no credentials will be used when authenticating the session. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; + + +/** + The reconnection timeout in seconds that will be used on connection failure. + + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. + + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite) NSNumber* reconnectionTimeout; + +/** + The reconnection strategy that will be used on connection failure. + + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default + reconnection strategy will be employed. + + @since 5.6 + */ +@property(nonatomic, nullable, readwrite) id reconnectionStrategy; + + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) PTDiffusionRetryStrategy* initialRetryStrategy; + + +/** + The recovery buffer size in messages; can be zero. + + If the server is configured to support reconnection, a session established with + a non-zero reconnection time retains a buffer of sent messages. + If the session disconnects and reconnects, this buffer is used to re-send + messages that the server has not received. + + Higher values increase the chance of successful reconnection, but increase the + per-session memory footprint. + + @see defaultRecoveryBufferSize + + @since 6.0 + */ +@property(nonatomic, readwrite) NSUInteger recoveryBufferSize; + + +/** + The maximum message size in bytes. + + This constrains the size of messages that may be received from the server and + thus the size of any content that can be received. The limit protects against + unexpectedly large messages. + + @exception NSInvalidArgumentException On writing to this property if the + given size is below the allowable minimum. + + @see defaultMaximumMessageSize + @see maximumMessageSizeMinimum + + @since 6.0 + */ +@property(nonatomic, readwrite) NSUInteger maximumMessageSize; + + +/** + The maximum size of the outbound message queue for the connection. + + The outbound message queue should be large enough to accommodate all the + messages sent to the server. This would include topic updates, messaging and + service requests such as registering a handler. + + It may be necessary to increase this value for applications that send messages + in bursts, or continue to send messages when a session is disconnected and + reconnecting. Larger values allow more messages to be queued, and increase the + memory footprint of the session. + + If the outbound message queue fills, sending a message will cause the session + to close with an error. + + @see defaultMaximumQueueSize + + @since 6.0 + */ +@property(nonatomic, readwrite) NSUInteger maximumQueueSize; + + +/** + The connection timeout. + + This constrains the time taken to establish an initial connection to the server. + The server is responsible for limiting the overall time taken to complete a connection + once it has received the request. + + If not explicitly set, defaultConnectionTimeout will be assumed. + + @note If this exceeds one hour (3,600 seconds) a warning will be logged and the + connection timeout will be constrained to one hour. + + @since 5.7 + */ +@property(nonatomic, readwrite) NSTimeInterval connectionTimeout; + + +/** + Security settings to be applied to the underlying transport streams for SSL/TLS + encrypted connections. + + A value of `nil` or an empty dictionary indicates that default settings, as + defined by the host operating system, will be applied. + + Supported keys are documented by Apple under 'CFStream Property SSL Settings + Constants' in their Core Foundation + [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). + + For example, a rudimentary approach to allowing otherwise disallowed self-signed + certificates could be to disable validation of the certificate chain entirely: + + configuration.sslOptions = + [NSDictionary dictionaryWithObject:kCFBooleanFalse + forKey:kCFStreamSSLValidatesCertificateChain]; + + @since 5.7.1 + */ +@property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; + + +/** + User-defined @ref md_session_properties "session properties". + + These properties will be provided to the server when a session is created using + this session configuration. They will be validated during authentication and + may be discarded or changed. + + A value of `nil` or an empty dictionary indicates that no user-defined session + properties will be provided to the server on connection. + + @since 6.3 + */ +@property(nonatomic, nullable, readwrite, copy) NSDictionary* properties; + +/** + Configuration of the HTTP Proxy that should be used to make connections to the server. + + This allows connection to a server using HTTP CONNECT tunneling through the + specified proxy. + + A value of `nil` dictates that a proxy is not used. This is the default. + + @since 6.0 + */ +@property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) id sessionStateListener; + + +@end + + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h new file mode 100644 index 0000000..f65cc34 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h @@ -0,0 +1,100 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The value assigned to the `domain` property of NSError objects generated when + establishing or reestablishing a session's connection to the server. + + @see PTDiffusionSessionErrorCode + + @since 6.0 + + @deprecated since 6.7, use PTDiffusion instead. + */ +extern NSString *const PTDiffusionSessionErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + Values assigned to the `code` property of NSError objects generated when + establishing or reestablishing a session's connection to the server. + + @see PTDiffusionSessionErrorDomain + + @since 6.0 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { + /** + The session was closed after being unexpectedly disconnected. + + @since 6.0 + + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Disconnected instead. instead. + */ + PTDiffusionSessionErrorCode_Disconnected __deprecated_enum_msg("Use PTDiffusionError_Disconnected instead.") = 2, + + /** + The session was closed locally. + + @since 6.0 + + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_ClosedByClient instead. instead. + */ + PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, + + /** + There was a problem when establishing a session. + + The session is closed. No further operations are possible. + + @since 6.0 + + @deprecated since 6.7, use PTDiffusionError_Establishment instead. + */ + PTDiffusionSessionErrorCode_Establishment __deprecated_enum_msg("Use PTDiffusionError_Establishment instead.") = 4, + + /** + The session operation failed due to a security constraint. + + Repeating the operation with the same security credentials is likely to + fail. + + @since 6.0 + + @deprecated since 6.7, use PTDiffusionError_Security instead. + */ + PTDiffusionSessionErrorCode_Security __deprecated_enum_msg("Use PTDiffusionError_Security instead.") = 5, + + /** + The session operation failed due to an unrecognised response code. + + @since 6.3 + + @deprecated since 6.7, use PTDiffusionError_UnrecognizedResponseCode instead. + */ + PTDiffusionSessionErrorCode_UnrecognisedResponseCode __deprecated_enum_msg("Use PTDiffusionError_UnrecognizedResponseCode instead.") = 6, + + /** + The session was closed remotely. + + @since 6.6 + + @deprecated since 6.7, use PTDiffusionError_ClosedByServer instead. + */ + PTDiffusionSessionErrorCode_ClosedByServer __deprecated_enum_msg("Use PTDiffusionError_ClosedByServer instead") = 7, +}; + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h new file mode 100644 index 0000000..f21d301 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h @@ -0,0 +1,74 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session ID is a unique session identifier, allocated by the server. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSessionId : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a session ID object initialized with the given string. + + @param string A string, previously returned by the `description` method on an + instance of this class. + + @param error If this method returns `nil` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @note The string representation used is the same as that provided by our Java + client library (see the `toString()` method on `SessionId`). This is a client + operation. A session that has been closed will not be recreated. + + @return The session ID instance initialised with the given string. + + @exception NSInvalidArgumentException If the given string is `nil`. + + @since 6.0 + */ +-(nullable instancetype)initWithString:(NSString *)string + error:(NSError **)error NS_DESIGNATED_INITIALIZER; + +/** + Compares the receiver to the given session ID. + + @param sessionId The session ID object with which to compare the receiver. + + @return `YES` if the given session ID is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToSessionId:(nullable PTDiffusionSessionId *)sessionId; + +/** + Returns the description of the session ID. + + @return The description of the session ID. + + @since 6.5 + */ +-(NSString *)description; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h new file mode 100644 index 0000000..f7f2264 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h @@ -0,0 +1,165 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionLockScope; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A server-managed resource that can be used to coordinate exclusive + access to shared resources across sessions. + + For example, to ensure a single session has the right to update a topic; to + ensure at most one session responds to an event; or to select a single session + to perform a housekeeping task. Session locks support general collaborative + locking schemes. The application architect is responsible for designing a + suitable locking scheme and for ensuring each application component follows the + scheme appropriately. + + Session locks are identified by a lock name. Lock names are arbitrary and + chosen at will to suit the application. Each lock is owned by at most one + session. Locks are established on demand; there is no separate operation to + create or destroy a lock. + + A session lock is acquired using the + PTDiffusionSession#lockWithName:completionHandler: method. If no other session + owns the lock, the server will assign the lock to the calling session + immediately. Otherwise, the server will record that the session is waiting to + acquire the lock. A session can call `lock` more than once for a given session + lock; if the lock is acquired, all calls will complete successfully with equal + PTDiffusionSessionLock instances. + + If a session closes, the session locks it owns are automatically released. A + session can also release a lock using the #unlockWithCompletionHandler: method. + When a session lock is released and other sessions are waiting to acquire the + lock, the server will arbitrarily select one of the waiting sessions and notify + it that it has acquired the lock. All of the newly selected session's pending + `lock` calls will complete normally. Other sessions will continue to wait. + + The PTDiffusionSession#lockWithName:scope:completionHandler: method takes a + scope parameter that provides the further option of automatically releasing the + lock when the session loses its connection to the server. + + There is no association between a lock and a thread. If a session calls `lock` + for a lock it already owns, the call will complete normally and immediately + with a PTDiffusionSessionLock instance that is equal to the one returned when + the lock was originally acquired. A single call to `unlock` will release this + session's claim to a lock. + + Lock ownership can be lost due to an independent event such as loss of + connection, and not only due to the use of the locking API by the owner. + Consequently, the session should poll using #owned to check that it still owns + the lock before accessing the protected resource. + + ### Race conditions + + This session lock API has inherent race conditions. Even if an application is + coded correctly to protect a shared resource using session locks, there may be + a period where two or more sessions concurrently access the resource. The races + arise for several reasons including + + - due to the *check-then-act* approach of polling #owned, the lock can be lost + after the check has succeeded but before the resource is accessed; + - the server can detect a session is disconnected and assign the lock to + another session before the original session has detected the disconnection. + + Despite this imprecision, session locks provide a useful way to coordinate + session actions. + + @since 6.3 + */ +@interface PTDiffusionSessionLock : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The name of the session lock. + + @since 6.3 + */ +@property(nonatomic, readonly) NSString* name; + +/** + A value that identifies the acquisition of the lock with the given #name. + Session locks that are acquired later are guaranteed to have bigger sequence + values, allowing the sequence number to be used as a fencing token. + + @since 6.3 + */ +@property(nonatomic, readonly) SInt64 sequence; + +/** + Whether the session lock is still owned by the session. This method may be + manually polled but does not support KVO. + + @since 6.3 + */ +@property(readonly, getter=isOwned) BOOL owned; + +/** + The scope of the lock. + + The scope determines when the lock will be released automatically. + + If a session makes multiple lock requests for a lock using different scopes, + and the server assigns the lock to the session fulfilling the requests, the + lock will be given the weakest scope + (PTDiffusionSessionLockScope#unlockOnConnectionLoss). Consequently, an + individual request can complete with a lock that has a different scope to that + requested. + + @see PTDiffusionSession#lockWithName:scope:completionHandler: + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionSessionLockScope* scope; + +/** + Release the session lock, if owned. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + On successful completion, this session will no longer own the named session + lock, and `wasOwned` will wrap a `BOOL` value where `YES` indicates this + session previously owned the lock and `NO` indicates that it did not. + + On completion with failure, this session does not own the session lock. The + common reason for failure, indicated by the error reported, is that the session + is closed. + + @exception NSInvalidArgumentException Raised if completionHandler is `nil`. + + @since 6.3 + */ +-(void)unlockWithCompletionHandler:(void (^)(NSNumber * _Nullable wasOwned, NSError * _Nullable error))completionHandler; + +/** + Compares the receiver to the given session lock. + + @param sessionLock The session lock object with which to compare the receiver. + + @return `YES` if the session lock is equal to the receiver, otherwise `NO`. + + @since 6.3 + */ +-(BOOL)isEqualToSessionLock:(nullable PTDiffusionSessionLock *)sessionLock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h new file mode 100644 index 0000000..9a8588a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h @@ -0,0 +1,57 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionLock; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A handle to a session lock request. + + Instances of this object may be used to cancel the session lock attempt as well + as to query the lock instance once acquired. + + @since 6.3 + */ +@interface PTDiffusionSessionLockAttempt : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The acquired lock, if the attempt was successful. Until a response has come + back from the server, this property will be `nil`. It will remain `nil` if that + response indicates that the session lock attempt failed. + + @since 6.3 + */ +@property(nullable, readonly) PTDiffusionSessionLock * lock; + +/** + Compares the receiver to the given session lock attempt. + + @param sessionLockAttempt The session lock attempt object with which to compare + the receiver. + + @return `YES` if the session lock attempt is equal to the receiver, otherwise `NO`. + + @since 6.3 + */ +-(BOOL)isEqualToSessionLockAttempt:(nullable PTDiffusionSessionLockAttempt *)sessionLockAttempt; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h similarity index 100% rename from Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h rename to Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockScope.h diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h new file mode 100644 index 0000000..b642626 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h @@ -0,0 +1,59 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The definition of a session metric collector. + + These can be configured to record metric data for a subset of all + sessions, specified with a session filter. + + @since 6.7 + */ +@interface PTDiffusionSessionMetricCollector : PTDiffusionMetricCollector + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + The session filter. + + @since 6.7 + */ +@property(nonatomic, readonly) NSString *sessionFilter; + + +/** + The list of properties to group by. + + @since 6.7 + */ +@property(nonatomic, readonly) NSArray* groupByProperties; + + +/** + Indicates whether metrics with no matches should be removed. + + @since 6.7 + */ +@property(nonatomic, readonly) BOOL removesMetricsWithNoMatches; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h new file mode 100644 index 0000000..c73e9da --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h @@ -0,0 +1,93 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionMetricCollector; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session metric collector builder. + + @since 6.7 + */ +@interface PTDiffusionSessionMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder + + +/** + Adds the name of a session property to group by to the list known + to this builder. + + @param propertyName the name of the session property. + See {@link PTDiffusionSession Session} for details of session properties. + + @return the builder + + @since 6.7 + */ +-(instancetype)groupByProperty:(NSString *)propertyName; + + +/** + Specifies a list of session property names to group by, replacing + any current list known to this builder. + + @param propertyNames a list of session property names. + See {@link PTDiffusionSession Session} for details of session properties. + + @return the builder + + @since 6.7 + */ +-(instancetype)groupByProperties:(NSArray*) propertyNames; + + +/** + Specifies whether the metric collector should remove any metrics + that have no matches. + + The default is that the metric collector will not remove metrics + with no matches. + + @param remove true to indicate that metrics with no matches + should be removed. + + @return the builder + + @since 6.7 + */ +-(instancetype)removeMetricsWithNoMatches:(BOOL)remove; + + +/** + @brief Create a new {@link PTDiffusionSessionMetricCollector} using the values + currently known to this builder. + + @param name the name of the {@link PTDiffusionSessionMetricCollector} + + @param sessionFilter the session filter indicating the sessions + this filter should apply to. The format of a session property + filter is documented in {@link PTDiffusionSession} + + @return a new {@link PTDiffusionSessionMetricCollector} with all of the + current settings of this builder. + + @since 6.7 + */ +-(PTDiffusionSessionMetricCollector *) createCollectorWithName:(NSString *const)name + andSessionFilter:(NSString *const)sessionFilter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h new file mode 100644 index 0000000..9ca6e01 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h @@ -0,0 +1,136 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import + + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Listener for Session properties events from the server. + + @see PTDiffusionClientControlFeature + + @since 6.5 + */ +@protocol PTDiffusionSessionPropertiesDelegate + +/** + A new session was opened + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the opened session + + @param properties The properties for the opened session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionOpened:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has closed + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the closed session + + @param closeReason The reason why the session closed + + @param properties The properties for the closed session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionClosed:(PTDiffusionSessionId *)sessionId + withCloseReason:(PTDiffusionCloseReason *) closeReason + andProperties:(NSDictionary*)properties; + + + +/** + A session has been updated + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the updated session + + @param properties The properties for the updated session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionUpdated:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has disconnected + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the disconnected session + + @param properties The properties for the disconnected session + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionDisconnected:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has reconnected + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the reconnected session + + @param properties The properties for the reconnected session + + @since 6.6 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionReconnected:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + +/** + A session has failed over to a different host + + @param registration The session properties registration for which this listener applies + + @param sessionId The session ID of the failed over session + + @param properties The properties for the failed over session + + @since 6.6 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + sessionFailedOver:(PTDiffusionSessionId *)sessionId + withProperties:(NSDictionary*)properties; + + + + +@end + +NS_ASSUME_NONNULL_END + diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h new file mode 100644 index 0000000..b39b8dd --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h @@ -0,0 +1,39 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A reference to a handler registered for a particular set of + session properties + + A topic tree registration is provided once a handler with a server-side + presence has been registered. + + @since 6.5 + */ + +@interface PTDiffusionSessionPropertiesListenerRegistration : PTDiffusionRegistration + +/** + The set of session properties registered. + + @since 6.5 + */ +@property(nonatomic, readonly) NSArray* properties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h new file mode 100644 index 0000000..e788596 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionPropertiesListenerRegistration; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Common protocol for delegates that establish a server side control presence for the + client session at a particular set of session properties. + + @since 6.5 + */ +@protocol PTDiffusionSessionPropertiesListenerRegistrationDelegate + +/** + Called if the handler is closed. + + No further calls will be made to this handler. + + @param registration The session properties registration for which this delegate applies. + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistrationDidClose:(PTDiffusionSessionPropertiesListenerRegistration *)registration; + +/** + Called in the event of a contextual error relating to this handler. + + No further calls will be made to this handler. + + @param registration The session properties registration for which this delegate applies. + + @param error The failure reason. + + @since 6.5 + */ +-(void)diffusionSessionPropertiesListenerRegistration:(PTDiffusionSessionPropertiesListenerRegistration *)registration + didFailWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h new file mode 100644 index 0000000..8adf4c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A session reconnection attempt can either be started or aborted. + + @see PTDffusionSessionReconnectionStrategy + + @since 5.6 + */ +@interface PTDiffusionSessionReconnectionAttempt : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Request that the session starts the reconnection attempt. + + @since 5.6 + */ +-(void)start; + +/** + Request that the session aborts the reconnection attempt. + + @since 5.6 + */ +-(void)abort; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h new file mode 100644 index 0000000..174d5b8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h @@ -0,0 +1,97 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionReconnectionAttempt; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The session reconnection strategy protocol defines the behaviour for a session when + recovering a failed connection. + + @see PTDiffusionSessionConfiguration + + @since 5.6 + */ +@protocol PTDiffusionSessionReconnectionStrategy + +/** + The connection has failed when connecting or connected and the session is now in + a recovering state. + + @param session The session which is recovering. + + @param attempt The reconnection attempt object providing `start` and `abort` methods + to be used by the implementing strategy immediately or at some point in the future + to instruct the session how to proceed. + + @since 5.6 + */ +-(void) diffusionSession:(PTDiffusionSession *)session + wishesToReconnectWithAttempt:(PTDiffusionSessionReconnectionAttempt *)attempt; + +@end + +/** + @brief Immediate abort is a default reconnection strategy supplied with the client library. + + This strategy immediately aborts. + + @since 5.6 + */ +@interface PTDiffusionSessionImmediateAbortReconnectionStrategy : NSObject +@end + +/** + @brief Delayed is a default reconnection strategy supplied with the client library. + + This strategy attempts to reconnect after a fixed delay specified in seconds. + + @since 5.6 + */ +@interface PTDiffusionSessionDelayedReconnectionStrategy : NSObject + +/** + Returns a delayed reconnection strategy initialised with a default 5 second delay. + + @return The delayed reconnection strategy instance initialised with a 5 second delay. + + @since 5.6 + */ +-(instancetype)init; + +/** + Returns a delayed reconnection strategy initialised with the given delay. + + @param delay The delay in seconds, after which point the receiver will call the session reconnection + attempt's `start` method. + + @return The delayed reconnection strategy instance initialised with the given delay. + + @since 5.6 + */ +-(instancetype)initWithDelay:(NSTimeInterval)delay NS_DESIGNATED_INITIALIZER; + +/** + The delay, in seconds, after which point the receiver will call the session reconnection + attempt's `start` method. + + @since 5.6 + */ +@property(nonatomic, readonly) NSTimeInterval delay; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h new file mode 100644 index 0000000..8910630 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A response stream represents an asynchronous, variable length feed of + messaging responses from other sessions. + + @see PTDiffusionMessagingFeature + @see PTDiffusionBinary + @see PTDiffusionJSON + @see PTDiffusionPrimitive + @see PTDiffusionRecordV2 + + @since 6.1 + */ +@interface PTDiffusionSessionResponseStream : PTDiffusionStream + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h new file mode 100644 index 0000000..0df709f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h @@ -0,0 +1,83 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling messaging responses from + individual sessions. + + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionSessionResponseStreamDelegate + +/** + Called when a session responds to a request with an error. + + @param stream The stream that received the response. + + @param error The error generated by the responding session. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void)diffusionStream:(PTDiffusionStream *)stream + didReceiveError:(NSError *)error + fromSessionId:(PTDiffusionSessionId *)sessionId; + +/** + The stream closed prematurely. + + @param stream The stream that closed. + + @param error The reason why the stream closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + + @deprecated since 6.6 this method is no longer called; in a future + release, PTDiffusionSessionResponseStreamDelegate will no longer extend + PTDiffusionStreamDelegate + */ +-(void)diffusionStream:(PTDiffusionStream *)stream + didFailWithError:(NSError *)error +__deprecated_msg("Will be removed in a future release."); + +/** + The stream closed normally. + + @param stream The stream that closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + + @deprecated since 6.6 this method is no longer called; in a future + release, PTDiffusionSessionResponseStreamDelegate will no longer extend + PTDiffusionStreamDelegate + */ +-(void)diffusionDidCloseStream:(PTDiffusionStream *)stream +__deprecated_msg("Will be removed in a future release."); + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h new file mode 100644 index 0000000..3aa6ec9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h @@ -0,0 +1,135 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Session state represents the condition a session has in respect + of connectivity to a Diffusion server. + + A session state object is immutable. + + @see PTDiffusionSessionStateChange + + @since 5.6 + */ +@interface PTDiffusionSessionState : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + `YES` if the session has an active connection to the server, otherwise `NO`. + + @since 5.6 + */ +@property(nonatomic, readonly, getter=isConnected) BOOL connected; + +/** + `YES` if the session is in the process of attempting reconnection to the server, + otherwise `NO`. + + @since 5.6 + */ +@property(nonatomic, readonly, getter=isRecovering) BOOL recovering; + +/** + `YES` if the session is closed, otherwise `NO`. + + This might mean that the session lost its connection to the server and + could not be recovered. + + @since 5.6 + */ +@property(nonatomic, readonly, getter=isClosed) BOOL closed; + +/** + If the session is closed then this property will be `nil` if the closure + was normal and expected, otherwise it will contain the failure reason. + + @note This property is to be considered as an auxiliary, informational + attachment to this session state instance. As such it is not incorporated + within the result of the hash method and is not checked on calls to isEqual: + or isEqualToSessionState:. + + @since 5.9 + */ +@property(nonatomic, readonly, nullable) NSError* error; + +/** + Compares the receiver to the given session state. + + @param sessionState The session state object with which to compare the receiver. + + @return `YES` if the given session state is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; + + + +/** + The session has been closed by the client. + + @since 6.9 + */ ++(instancetype)ClosedByClient; + + +/** + The session has been closed (or rejected) by the server. + + @since 6.9 + */ ++(instancetype)ClosedByServer; + + +/** + The session has lost its connection to a server and could not be recovered. + + @since 6.9 + */ ++(instancetype)ClosedFailed; + + +/** + An active connection with the server has been established. + + @since 6.9 + */ ++(instancetype)ConnectedActive; + + +/** + The session is establishing its initial connection. + + @since 6.9 + */ ++(instancetype)Connecting; + + +/** + Connection with a server has been lost and the session is attempting reconnection. + + @since 6.9 + */ ++(instancetype)RecoveringReconnect; + + +@end + + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h new file mode 100644 index 0000000..8a4712f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + The name used for session state change notifications. + + The notification's `userInfo` dictionary contains a PTDiffusionSessionStateChange object that describes the state change, + accessed using #PTDiffusionSessionStateChangeUserInfoKey. + + @relates PTDiffusionSessionStateChange + @see PTDiffusionSessionStateChangeUserInfoKey + + @note Session state change notifications are notified from the main dispatch queue and are delivered after + both KVO notifications on the session's state property and any invocations of completion callback handler blocks. + + @since 5.6 + */ +extern NSString *const PTDiffusionSessionStateDidChangeNotification; + +/** + The notification `userInfo` dictionary key used to access the PTDiffusionSessionStateChange object on + receipt of a #PTDiffusionSessionStateDidChangeNotification. + + @relates PTDiffusionSessionStateChange + @see PTDiffusionSessionStateDidChangeNotification + + @since 5.6 + */ +extern NSString *const PTDiffusionSessionStateChangeUserInfoKey; + +/** + @brief A session state change represents a change in a session's state. + + A session state change object is immutable. + + The @ref md_quick_start "Quick Start" guide provides an example of observing session state changes broadcast + through the default notification center. + + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionSessionStateChange : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The previous state. This is the state that the session was in prior to transitioning to its current state. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionSessionState* previousState; + +/** + The current state. This is the state that the session has now transitioned to. + + @since 5.6 + */ +@property(nonatomic, readonly) PTDiffusionSessionState* state; + +/** + Compares the receiver to the given session state change. + + @param sessionStateChange The session state change object with which to compare the receiver. + + @return `YES` if the given session state change is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToSessionStateChange:(nullable PTDiffusionSessionStateChange *)sessionStateChange; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h new file mode 100644 index 0000000..8b2e30a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2023 DiffusionData Ltd., All Rights Reserved. +// +// Use is subject to licence terms. +// +// NOTICE: All information contained herein is, and remains the +// property of DiffusionData. The intellectual and technical +// concepts contained herein are proprietary to DiffusionData and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The optional delegate for a session which may be used to receive state notifications. + + By default a session will not have a listener. + + @since 6.9 + */ +@protocol PTDiffusionSessionStateChangeDelegate + + +/** + Called whenever the state of a session changes. + + @param session the session + @param previousState the previous state + @param state the current state + + @since 6.9 + */ +-(void)onSession:(PTDiffusionSession *)session + stateChangeFrom:(PTDiffusionSessionState *)previousState + to:(PTDiffusionSessionState *)state; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h new file mode 100644 index 0000000..e896078 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h @@ -0,0 +1,209 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionBranchMappingTable; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client session to configure session trees. + + A session tree is a virtual view of the topic tree presented to a session by + fetch and subscription operations. Custom session trees for different + sessions can be configured using declarative rules maintained by the server + to meet data security, data optimisation, or personalisation and localisation + requirements. Each session can be presented with a unique session tree based + on its session properties. + + A session tree is produced by applying branch mappings to the topic + tree. Branch mappings are organised into branch mapping tables. Each + branch mapping table is assigned to a unique path – the session tree branch. + + A session tree is composed of session paths. Each session path is + mapped via the branch mapping tables to a unique topic path. + + A branch mapping table is an ordered list of (session filter, topic tree branch) + pairs. For example, the branch mapping table for the session tree branch + market/prices might be: + +
+ Session filter                           Topic tree branch
+ =========                                =============
+ USER_TIER is '1' or $Country is 'DE'     backend/discounted_prices
+ USER_TIER is '2'                         backend/standard_prices
+ $Principal is ''                         backend/delayed_prices
+ 
+ + With this configuration, if an unauthenticated session (one that matches the + $Principal is '' session filter) subscribes to the session path + market/prices/X, and there is a topic bound to the topic path + backend/delayed_prices/X, the subscription will complete. The session + will receive a subscription notification under the session path + market/prices/X, together with the topic properties and the value of + the topic. The session is unaware that the data originates from a topic bound + to a different topic path. If no topic is bound to + backend/delayed_prices/X, the subscription will not resolve and the + session will receive no data, even if there is a topic bound to + market/prices/X. + + Session trees complement the data transformation capabilities of + {@link PTDiffusionTopicViewsFeature topic views}. In our example, the time delayed + time feed at backend/delayed_prices could be maintained by a topic + view using the delay by clause. + + Branch mappings are persisted by the server and shared across a cluster, in a + similar manner to topic views, security stores, and metric collectors. Branch + mappings are editable using this feature, and via the management console. + + For a given session and session path, at most one branch mapping applies. The + applicable branch mapping is chosen as follows: +
    +
  • Each branch mapping table with session tree branch that is a prefix of the + session path is considered. For a given table, the first branch mapping with + a condition that matches the session's properties is the one that applies. A + branch mapping table may have no applicable branch mappings for a session. +
  • If there are several such branch mapping tables with a branch mapping + that for the session, the one with the longest prefix of the session path + applies. +
  • If no branch mapping table has a branch mapping for the session, the + session path is translated to the identical topic path. +
+ + ### Access control + + To subscribe to or fetch from a session path, a session must be granted the + appropriate path permission to the session path for the operation + ({@link PTDiffusionPathPermission#selectTopic SELECT_TOPIC}, or + {@link PTDiffusionPathPermission#readTopic READ_TOPIC}). The session + doesn't require any permissions to the topic path of the topic providing + the data. + + To create or replace branch mappings, a session needs the + {@link PTDiffusionPathPermission#modifyTopic MODIFY_TOPIC} path permission + for the session tree branch of the branch mapping table, + {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} path permission + for the topic tree branch of each branch mapping, and (if an existing table with + the same session tree branch is being replaced) + {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for + each branch mapping of existing table. + + To retrieve a branch mapping table, a session needs the + {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for + its session tree branch. + + ### Accessing the feature + + This feature may be obtained from a {@link PTDiffusionSession session} as follows: +
+ PTDiffusionSessionTreesFeature *const sessionTrees = session.sessionTrees;
+ 
+ + @see PTDiffusionSession + + @since 6.7 + */ +@interface PTDiffusionSessionTreesFeature : PTDiffusionFeature + +/** + @brief Create or replace a branch mapping table. + + The server ensures that there is at most one branch mapping table for a + session tree branch. Putting a new branch mapping table will replace any previous + branch mapping table with the same session tree branch. To remove all branch + mappings for a session tree branch, put an empty branch mapping table. + + @param branchMappingTable the new table + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • InvalidBranchMappingError – if branchMappingTable or one of its + branch mappings is invalid; +
  • SessionSecurityError – if the calling + session does not have the {@link PTDiffusionPathPermission#modifyTopic + MODIFY_TOPIC} permission for the session tree branch of the branch + mapping table, {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} + permission for each branch mapping of branchMappingTable, and (if + there is an existing table for the session tree branch) + {@link PTDiffusionPathPermission#exposeBranch EXPOSE_BRANCH} permission for + each branch mapping of existing table; +
  • ClusterRoutingError – if the operation failed due to a transient + cluster error; +
  • SessionClosedError – if the session is closed. +
+ + @since 6.7 +*/ +-(void) putBranchMappingTable:(PTDiffusionBranchMappingTable *)branchMappingTable + completionHandler:(void (^)(NSError * _Nullable error)) completionHandler; + + +/** + @brief Retrieve the session tree branches of the server's branch mapping tables. + + The results will only include the session tree branches of branch mapping tables + that have at least one branch mapping and for which the calling session + has {@link PTDiffusionPathPermission#readTopic READ_TOPIC} path permission for + the session tree branch. + + Individual branch mapping tables can be retrieved using + {@link #getBranchMappingTableForSessionTreeBranch:completionHandler: getBranchMappingTable}. + + @param 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 the `sessionTreeBranches` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • SessionClosedError – if the session is closed. +
+ + @since 6.7 +*/ +-(void) getSessionTreeBranchesWithMappings:(void (^)(NSArray * _Nullable sessionTreeBranches, NSError * _Nullable error)) completionHandler; + + +/** + @brief Retrieve a branch mapping table from the server. + + If there is no branch mapping table at the given session tree branch, this + method will return an empty branch mapping table. + + @param sessionTreeBranch the session tree branch that identifies the branch mapping + table + + @param 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 the `branchMappingTable` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + These are the common reasons for failure: +
    +
  • SessionSecurityError – if the calling + session does not have the {@link PTDiffusionPathPermission#readTopic + READ_TOPIC} permission for the session tree branch; +
  • SessionClosedError – if the session is closed. +
+ + @since 6.7 +*/ +-(void) getBranchMappingTableForSessionTreeBranch:(NSString *)sessionTreeBranch + completionHandler:(void (^)(PTDiffusionBranchMappingTable * _Nullable branchMappingTable, NSError * _Nullable error)) completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h new file mode 100644 index 0000000..eb6e203 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h @@ -0,0 +1,50 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result of a querying the server for the + session properties of a particular session ID or session filter + + @since 6.5 + */ +@interface PTDiffusionSetSessionPropertiesResult : NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Map of the changed session properties + The contained values in this Map are the old values prior to the change + + @since 6.5 + */ +@property(nonatomic, readonly) NSDictionary * changedProperties; + + +/** + List of the added session properties + + @since 6.5 + */ +@property(nonatomic, readonly) NSArray * addedProperties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h new file mode 100644 index 0000000..9c98d34 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h @@ -0,0 +1,43 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@protocol PTDiffusionStreamDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A stream represents an asynchronous, variable length feed of updates from the + Diffusion server. + + @see PTDiffusionTopicsFeature + @see PTDiffusionMessagingFeature + + @since 5.6 + */ +@interface PTDiffusionStream : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The delegate receiving the streaming updates for the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h new file mode 100644 index 0000000..a37190a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h @@ -0,0 +1,57 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The stream delegate protocol defines the methods to be implemented by + classes wishing to receive streaming updates. + + @see PTDiffusionTopicsFeature + @see PTDiffusionMessagingFeature + + @since 5.6 + */ +@protocol PTDiffusionStreamDelegate + +/** + The stream closed prematurely. + + @param stream The stream that closed. + + @param error The reason why the stream closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + */ +-(void)diffusionStream:(PTDiffusionStream *)stream + didFailWithError:(NSError *)error; + +/** + The stream closed normally. + + @param stream The stream that closed. + + @note No further messages will be sent to the delegate for this stream. + + @since 5.6 + */ +-(void)diffusionDidCloseStream:(PTDiffusionStream *)stream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h new file mode 100644 index 0000000..0626764 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStringFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a string fetch operation issued to the + server. + + A string fetch operation is issued using the + PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionStringFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.2 + */ +@property(nonatomic, readonly) NSArray * stringResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h new file mode 100644 index 0000000..1a4192e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h @@ -0,0 +1,39 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a string fetch operation for a single + selected topic. + + A string fetch operation is issued using the + PTDiffusionFetchRequest#fetchStringValuesWithTopicSelectorExpression:completionHandler: + method. + + @since 6.2 + */ +@interface PTDiffusionStringFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the topic value, or `nil` if the topic has no value. + + @since 6.2 + */ +@property(nonatomic, readonly, nullable) NSString* string; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h new file mode 100644 index 0000000..65cc52e --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h @@ -0,0 +1,53 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRequestContext; +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling string messaging requests with a + handler registered at the server. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionStringRequestDelegate + +/** + Called when a string request has been received. + + @param registration The topic tree registration for which this handler applies. + + @param string The request that was received. + + @param context Context object that provides the session ID of the session that + sent the request along with the path and any requested session properties. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didReceiveRequestWithString:(nullable NSString *)string + context:(PTDiffusionRequestContext *)context + responder:(PTDiffusionResponder *)responder; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h new file mode 100644 index 0000000..0884b2a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h @@ -0,0 +1,48 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionResponder; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling String messaging requests. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.0 + */ +@protocol PTDiffusionStringRequestStreamDelegate + +/** + Called when a string request has been received. + + @param stream The stream that received the request. + + @param string The request that was received. + + @param responder Responder object to be used for responding to the request. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveRequestWithString:(nullable NSString *)string + responder:(PTDiffusionResponder *)responder; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h new file mode 100644 index 0000000..34fc4da --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling string messaging responses from + individual sessions. + + @see PTDiffusionPrimitive + @see PTDiffusionMessagingFeature + + @since 6.1 + */ +@protocol PTDiffusionStringSessionResponseStreamDelegate + +/** + Called when a session responds to a request with a string. + + @param stream The stream that received the response. + + @param string The response that was received. + + @param sessionId The id of the responding session. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveResponseWithString:(nullable NSString *)string + fromSessionId:(PTDiffusionSessionId *)sessionId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h new file mode 100644 index 0000000..afe53c8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h @@ -0,0 +1,34 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series whose value may be interpreted as a string. + + @since 6.0 + */ +@interface PTDiffusionStringTimeSeriesEvent : PTDiffusionTimeSeriesEvent + +/** + The string value associated with the event. + + @since 6.0 + */ +@property(nonatomic, readonly, nullable) NSString* string; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h new file mode 100644 index 0000000..e408ef9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h @@ -0,0 +1,58 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStringTimeSeriesEvent; +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed time series events with + string values. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed time series events when updates are received from the server + with string values. + + @since 6.0 + */ +@protocol PTDiffusionStringTimeSeriesEventValueStreamDelegate + +/** + An update was received for a topic path handled by a binary value stream. + + @param stream The value stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldStringEvent The previous event. If `nil` then this is the first event. + + @param newStringEvent The new event derived from the last update received from + the server. + + @since 6.0 + */ +-(void) diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTimeSeriesTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldStringEvent:(nullable PTDiffusionStringTimeSeriesEvent *)oldStringEvent + newStringEvent:(PTDiffusionStringTimeSeriesEvent *)newStringEvent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h new file mode 100644 index 0000000..b6b6e9c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h @@ -0,0 +1,38 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStringTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of string time series events. + + @since 6.0 + */ +@interface PTDiffusionStringTimeSeriesQueryResult : PTDiffusionTimeSeriesQueryResult + +/** + The string time series events. + + @see eventArrayStructure + + @since 6.0 + */ +@property(nonatomic, readonly) NSArray* stringEvents; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h new file mode 100644 index 0000000..30c1e89 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h @@ -0,0 +1,111 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream that provides the ability for updating topics with + string primitive values. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionStringUpdateStream : PTDiffusionUpdateStream + +/** + 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. + + @since 6.3 + */ +@property(nonatomic, readonly, nullable) NSString* value; + +/** + Sets the topic to a specified value or no value. + + When a `nil` value is supplied to this method for a PTDiffusionTopicType_String + topic, the topic will be updated to have no value. If a previous value was + present subscribers will receive a notification that the new value is null. New + subscribers will not receive a value notification. + + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **incompatible parent topic** if a topic could not be added because a topic + at a parent path is incompatible. + - **invalid topic path** if `path` is not a valid topic path. + - **invalid topic specification** if the specification is invalid, possibly + because mandatory properties were not supplied. + - **topic license limit** if the topic could not be added as it would breach a + licensing limit. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param value The value to set the topic to. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(BOOL) setValue:(nullable NSString *)value + completionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h new file mode 100644 index 0000000..47e8ceb --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h @@ -0,0 +1,60 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicSpecification; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed events for string + value topics. + + This protocol defines the methods to be implemented by classes wishing to + receive streamed events when updates are received from the server for string + topics. + + @see PTDiffusionPrimitive + + @since 6.0 + */ +@protocol PTDiffusionStringValueStreamDelegate + +/** + An update was received for a topic path handled by a string value stream. + + @param stream The topic stream that received the update. + + @param topicPath The topic path that was updated. + + @param specification The specification for the updated topic. + + @param oldString The previous value. If `nil` then this is either the first + value, or the previous value was `nil` indicating no value. + + @param newString The new value derived from the last update received from the + server, or `nil` if there is no value. + + @since 6.0 + */ +-(void)diffusionStream:(PTDiffusionValueStream *)stream + didUpdateTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + oldString:(nullable NSString *)oldString + newString:(nullable NSString *)newString; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h new file mode 100644 index 0000000..fda020c --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h @@ -0,0 +1,93 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionStream; +@class PTDiffusionTopicSpecification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed subscription events for + value topics. + + This protocol defines methods to be implemented by classes wishing to receive + streamed subscription events. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ +@protocol PTDiffusionSubscriberStreamDelegate + +/** + Subscription notification. + + This method is called when a session is subscribed to a topic that matches the + stream registration. This method is also called when a stream is added, for all + of the session's subscriptions to topics that match the stream registration. + + For a given topic, this will be the initial notification, and the first + notification following an unsubscription notification if the session + re-subscribes to the topic. + + This method is also called for fallback streams that match the topic type when + the session removes the last stream that selected a subscribed topic. The + fallback stream will now receive updates for the topic, starting with an + immediate notification of the currently cached value (if any). + + @param stream The stream that received the update. + + @param topicPath The topic path to which the session has been subscribed. + + @param specification The specification for the subscribed topic. + + @since 5.9 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didSubscribeToTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification; + +/** + Unsubscription notification. + + This method is called if the session is unsubscribed from a topic that matches + the stream registration. The stream will receive no more updates for the topic + unless the session re-subscribes to the topic. + + This method is also called for fallback streams that match the topic type if + the session adds the first stream that selects a subscribed topic. For these + notifications, the reason will be + PTDiffusionTopicUnsubscriptionReason_StreamChange. The fallback stream will no + longer receive updates for the topic. + + @param stream The stream that received the update. + + @param topicPath The topic path from which the session has been unsubscribed. + + @param specification The specification for the unsubscribed topic. + + @param reason The reason for the unsubscription. + + @since 5.9 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didUnsubscribeFromTopicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification + reason:(PTDiffusionTopicUnsubscriptionReason)reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h new file mode 100644 index 0000000..34fd1ea --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h @@ -0,0 +1,261 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionRegistration; +@class PTDiffusionSessionId; +@class PTDiffusionStream; + +@protocol PTDiffusionSubscriptionRoutingRequestHandler; + +/** + Values assigned to the `code` property of NSError objects generated by the + PTDiffusionSubscriptionControlFeature. + + @since 6.1 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionSubscriptionControlFeatureErrorCode) { + /** + The filter was rejected. The command was not sent to any clients. + + @see PTDiffusionUnderlyingErrorsKey + + @since 6.1 + + @deprecated since 6.7 Use PTDiffusionError_SendToFilterRejected instead. + */ + PTDiffusionSubscriptionControlFeatureErrorCode_SendToFilterRejected __deprecated_enum_msg("Use PTDiffusionError_SendToFilterRejected instead") = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + The value assigned to the `domain` property of NSError objects generated by the + PTDiffusionSubscriptionControlFeature. + + @since 6.1 + */ +extern NSString *const PTDiffusionSubscriptionControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + @brief The Subscription Control feature allows a client session to subscribe + or unsubscribe other sessions to topics, as well as also providing a mechanism + for handling requests to subscribe to routing topics (deprecated). + + The Subscription Control feature for a session can be obtained from the + session's `PTDiffusionSession#subscriptionControl` property. + + Requests to subscribe sessions to topics can be submitted at any time even if + the topics do not exist at the server. @ref md_topic_selectors "Topic selectors" + are used on subscription to match against topics at the server. The session + will become subscribed to any topics that exist at the server that match the + selector (unless they are already subscribed, or the session has insufficient + permission). The subscription request is also retained at the server so that if + any newly created topics match the selector, the session will then become + subscribed to it (unless a subsequent unsubscription cancels it). + + Specific sessions may be subscribed/unsubscribed if the PTDiffusionSessionId is + known. + + Subscriptions may also be requested using + @ref md_session_filters "session filters", where all sessions that satisfy a + particular filter expression will be subscribed/unsubscribed. The filter is + only evaluated once against the current sessions that exist at the time - it is + not retained and applied to any sessions that are created later. In order to be + notified of new sessions as they are created a + PTDiffusionSessionPropertiesListener can be used and those sessions subscribed + as required based upon their session properties. + + A handler for routing topics belonging to a branch of the topic tree can be + added using this feature's 'add routing subscription handler' method. When + another session subscribes to one of the routing topics, the handler will be + called to determine the appropriate source topic. + + ### Access control + + To subscribe other sessions to topics, a session must have `PTDiffusionGlobalPermission#modifySession` + permission, and `PTDiffusionPathPermission#selectTopic` permission for the path prefix of the topic + selector used for subscription. The subscribed sessions will only be subscribed + to matching topics for which they have `PTDiffusionPathPermission#readTopic` permission. + + To unsubscribe other sessions, a session must have `PTDiffusionGlobalPermission#modifySession` permission. + + To register a routing subscription handler the session needs `PTDiffusionGlobalPermission#viewSession`, + `PTDiffusionGlobalPermission#modifySession` and `PTDiffusionGlobalPermission#registerHandler` permissions. + + When handling a subscription request to a routing topic via a routing handler + the target session needs `PTDiffusionPathPermission#readTopic` permission to both the routing topic + being subscribed to and the target topic that is assigned. + + @since 6.1 + */ +@interface PTDiffusionSubscriptionControlFeature : PTDiffusionFeature + +/** + Subscribe another session to topics. + + New subscriptions will be established for existing topics that match the + provided topic selector and for which the subscribed session has `PTDiffusionPathPermission#readTopic` + permission. The topic selector will be added to the topic selections of the + subscribed session, and re-evaluated when new topics are added or the session's + security roles change. + + A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot + subscribe directly, but can be subscribed indirectly using this method. + + @param sessionId Identifies the session to subscribe. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to subscribe to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.1 + */ +-(void) subscribeSessionId:(PTDiffusionSessionId *)sessionId + withTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Unsubscribe another session from topics. + + @param sessionId Identifies the session to unsubscribe. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to unsubscribe from. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.1 + */ +-(void) unsubscribeSessionId:(PTDiffusionSessionId *)sessionId + withTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Subscribe sessions that satisfy a given session filter to topics. + + For each session that matches the filter, new subscriptions will be established + for existing topics that match the provided topic selector and for which the + sessions has `PTDiffusionPathPermission#readTopic` permission. The topic selector will be added to the + topic selections of the subscribed session, and re-evaluated when new topics + are added or the session's security roles change. + + A session that does not have `PTDiffusionPathPermission#selectTopic` permission for a topic cannot + subscribe directly, but can be subscribed indirectly using this method. + + @param filter The @ref md_session_filters "session filter" expression. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to subscribe to. + + @param 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 the `count` argument indicates the number of clients + that satisfied the filter and qualified for subscription. On failure the + `error` argument passed to the block will not be `nil` and the `count` argument + will be zero. The completion handler will be called asynchronously on the main + dispatch queue. + + @note The completion handler block will be invoked with a `nil` for the `error` + argument and zero for the `count` argument if no client sessions satisified the + filter. + + @exception NSInvalidArgumentException If any arguments are `nil`. + + @since 6.1 + */ +-(void) subscribeWithFilter:(NSString *)filter + topicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; + +/** + Unsubscribe sessions that satisfy a given session filter from topics. + + @param filter The @ref md_session_filters "session filter" expression. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server, identifying the topics to unsubscribe from. + + @param 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 the `count` argument indicates the number of clients + that satisfied the filter and qualified for unsubscription. On failure the + `error` argument passed to the block will not be `nil` and the `count` argument + will be zero. The completion handler will be called asynchronously on the main + dispatch queue. + + @note The completion handler block will be invoked with a `nil` for the `error` + argument and zero for the `count` argument if no client sessions satisified the + filter. + + @exception NSInvalidArgumentException If any arguments are `nil`. + + @since 6.1 + */ +-(void)unsubscribeWithFilter:(NSString *)filter + topicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSUInteger count, NSError * _Nullable error))completionHandler; + +/** + Adds a handler for routing topics that belong to a branch of the topic tree. + When another session subscribes to one of the routing topics, the handler will + be called to determine the appropriate source topic. + + For each subscription to the routing topic, the server will select a handler + registered for the most specific branch. If multiple handlers are registered + for the same branch, the server will select one of them arbitrarily. + + @param handler The object which will handle the incoming subscription routing + requests. It will be sent messages asynchronously on the main dispatch queue. + A weak reference is maintained to this object. + + @param topicPath Identifies the branch of the topic tree to associate the + handler with. + + @param 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 the `registration` argument will point to a + registration object which can be used to manage the registration. The + completion handler will be called asynchronously on the main dispatch queue. + + @return Stream resulting from the registration of the given routing request handler + for the given topic path. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + + @deprecated since 6.7 Routing Topics are deprecated. The more powerful + {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. + */ +-(PTDiffusionStream *)addRoutingRequestHandler:(id)handler + forTopicPath:(NSString *)topicPath + completionHandler:(void (^)(PTDiffusionRegistration * _Nullable registration, NSError * _Nullable error))completionHandler __deprecated_msg("Will be removed in a future release."); + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h new file mode 100644 index 0000000..80ed457 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h @@ -0,0 +1,103 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSessionId; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A single request from a session to subscribe to a routing topic. + + Each request received by a handler must either be routed or deferred. + + @since 6.1 + */ +@interface PTDiffusionSubscriptionRoutingRequest : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Identifies the session making the subscription request. + + @since 6.1 + */ +@property(nonatomic, readonly) PTDiffusionSessionId* sessionId; + +/** + Identifies the subscribed routing topic. + + @since 6.1 + */ +@property(nonatomic, readonly) NSString* topicPath; + +/** + Defer the handling of this subscription request. + + * When a request is deferred, the server will discard the request, and the + requesting session will not receive a subscription notification. + + An implementation can retain the requesting PTDiffusionSessionId and the + routing topic's path so a routing subscription can be established at a later + time using the PTDiffusionSubscriptionControlFeature. + + Each instance of this class can be used once. If route or defer has already + been called for this instance, calling this method will cause a warning to be + logged by the server, but otherwise have no effect. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if completionHandler is `nil`. + + @since 6.1 + */ +-(void)deferWithCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Resolve a subscription request by providing the path of a source topic to which + the requesting session will be subscribed via the routing topic. + + The requesting session will receive a subscription notification with the + routing topic's path and the topic specification of the source topic. If the + source topic is stateful, the requesting session will also be sent an update + for the routing topic path with the current value of the source topic. The + existence of the source topic is hidden from the requesting session. Updates to + the source topic are forwarded to the session as if they came from the routing + topic. + + A session that does not have `SELECT_TOPIC` or `READ_TOPIC` permission for the + source topic cannot subscribe directly, but can be subscribed indirectly using + this method. + + @param topicPath The topic path of the source topic to route to. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.1 + */ +-(void)routeToSourceTopicPath:(NSString *)topicPath + withCompletionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h new file mode 100644 index 0000000..c68e149 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h @@ -0,0 +1,47 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionSubscriptionRoutingRequest; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed subscription routing + requests. + + This protocol defines methods to be implemented by classes wishing to provide + routing functionality. + + @see PTDiffusionSubscriptionControlFeature + + @since 6.1 + */ +@protocol PTDiffusionSubscriptionRoutingRequestHandler + +/** + Notification of a request to subscribe to a specific routing topic. + + @param stream The stream that received the update. + + @param request The request, which must be replied to or deferred. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveSubscriptionRoutingRequest:(PTDiffusionSubscriptionRoutingRequest *)request; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h new file mode 100644 index 0000000..6e286ba --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h @@ -0,0 +1,110 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionBytes; +@class PTDiffusionTimeSeriesFetchResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An event in a time series. + + Two instances are equal if and only if they have identical attributes. + Typically two instances that have the same sequence number will be equal, but + this may not be true if the event has changed on the server. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesEvent : PTDiffusionTimeSeriesEventMetadata + +/** + If this is an edit event, returns the metadata of the original event that this + event replaces; otherwise returns this event. + + The result is always the metadata of an original event, never that of an edit + event. + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionTimeSeriesEventMetadata* originalEvent; + +/** + If this is an edit event then `YES`, otherwise `NO` indicating that this is an + original event. + + @since 6.0 + */ +@property(nonatomic, readonly, getter=isEditEvent) BOOL editEvent; + +/** + The value associated with the event. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionBytes* bytes; + +/** + Compares the receiver to the given time series event. + + @param timeSeriesEvent The time series event object with which to compare the + receiver. + + @return `YES` if it is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesEvent:(nullable PTDiffusionTimeSeriesEvent *)timeSeriesEvent; + +@end + +/** + @brief Extension adding support to Topics feature fetch requests allowing them + to be constrained to only those topics with a data type compatible with time + series events. + + @since 6.3 + */ +@interface PTDiffusionFetchRequest (PTDiffusionTimeSeriesEvent) + +/** + Sends a fetch request to the server, specifying that values should be returned + for selected topics, constraining the selection to time series topics. Any + topic types specified in a previous call to PTDiffusionFetchRequest#topicTypes: + that cannot be read as a time series will be removed from the list of topic types. + + Results are returned for all topics matching the selector that satisfy the + request constraints within any range defined by PTDiffusionFetchRequest#fromTopicPath: / + PTDiffusionFetchRequest#afterTopicPath: and/or PTDiffusionFetchRequest#toTopicPath: / + PTDiffusionFetchRequest#beforeTopicPath: + + @param expression Specifies a @ref md_topic_selectors "topic selector", + evaluated at the server, which selects the topics to be fetched. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.3 + */ +-(void)fetchTimeSeriesEventsWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionTimeSeriesFetchResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h new file mode 100644 index 0000000..60d5f9d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h @@ -0,0 +1,87 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Metadata associated with a time series event. + + @see PTDiffusionTimeSeriesEvent + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesEventMetadata : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Sequence number identifying this event within its time series. + Assigned by the server when the event is created. + + Sequence numbers are unique within a time series. Each event appended to a + time series is assigned a sequence number that is equal to the sequence + number of the preceding event plus one. + + @return The sequence number; never higher than `INT64_MAX`. + + @since 6.0 + */ +@property(nonatomic, readonly) UInt64 sequence; + +/** + Event timestamp. Assigned by the server when the event is created. + + Events do not have unique timestamps. Events with different sequence numbers + may have the same timestamp. + + Subsequent events in a time series usually have timestamps that are greater or + equal to the timestamps of earlier events, but this is not guaranteed due to + changes to the time source used by the server. + + @return The difference, measured in milliseconds, between the time the server + added the event to the time series and midnight, January 1, 1970 UTC. + + @since 6.0 + */ +@property(nonatomic, readonly) SInt64 timestamp; + +/** + Server-authenticated identity of the session that created the event. + + @return The principal that created the event, or + [PTDiffusionSession anonymousPrincipal] if the session that created the event + was not authenticated + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* author; + +/** + Compares the receiver to the given time series event metadata. + + @param timeSeriesEventMetadata The time series event metadata object with which + to compare the receiver. + + @return `YES` if it matches the receiver for just metadata elements (sequence, + timestamp and author), otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesEventMetadata:(nullable PTDiffusionTimeSeriesEventMetadata *)timeSeriesEventMetadata; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h new file mode 100644 index 0000000..56bc5cc --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h @@ -0,0 +1,320 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a session to update and query time series topics. + + ## Time series topics + + A time series is a sequence of events. Each event contains a value + and has server-assigned metadata comprised of a sequence number, timestamp, + and author. Events in a time series are ordered by increasing sequence + number. Sequence numbers have values between `0` and `NSIntegerMax` + and are contiguous: an event with sequence number + `n` will be followed by one with sequence number `n + 1`. Two + events with the same sequence number will be equal – having the same + timestamp, author, and value. + + A time series topic allows sessions to access a time series that is + maintained by the server. A time series topic has an associated + {@link PTDiffusionDataType event data type}, such as `PTDiffusionBinary`, + `PTDiffusionPrimitive `, or `PTDiffusionJSON`, that determines the type of value + associated with each event. + + This feature provides a historic query API for time series topics, allowing a + session to query arbitrary sub-sequences of a time series. The + {@link PTDiffusionTopicControlFeature topic control} and {@link PTDiffusionTopicsFeature topics} + features complete the API, providing ways to create and subscribe to a + time series topic. + + The API presents a time series as an append-only data structure of immutable + events that is only changed by adding new events. + + ### Edit events + + Although a time series is append-only, an event can be overridden by + appending an edit event. An edit event is a special type of event + that overrides an earlier event in the time series (referred to as the + original event) with a new value. When an edit event is added to a + time series, the server retains both the original event and the edit event, + allowing subscription and query results to reflect the edit. + + For example, suppose a time series has two events with the values `A` + and `B`, and the first event has been overridden by a later edit event + that provides a new value of `X`. The server has the following + information about the time series. + + + + + + + + + + + + + + + + + + + + + + +
SequenceValueType
0Aoriginal event
1Boriginal event
2Xedit of sequence 0
+ + The current value of the event with sequence number 0 is `X`. + + If an original event has several edit events, the latest edit event (the one + with the highest sequence number) determines its current value. Each edit + event refers to an original event, never to another edit event. + + Extending the example by appending a further edit event to the time series: + + + + + + + + + + + + +
SequenceValueType
3Ysecond edit of sequence 0
+ + The current value of the event with sequence number 0 is now `Y`. + + + ### Retained range + + A time series topic retains a range of the most recent events. When a new + event is added to the time series, older events that fall outside of the + range are discarded. By default, this range includes the ten most recent + events. A different range can be configured by setting the + {@link PTDiffusionTopicSpecification#timeSeriesRetainedRangePropertyKey + timeSeriesRetainedRange} property. + + ## Subscribing to a time series topic + + A session can {@link PTDiffusionTopicsFeature#subscribeWithTopicSelectorExpression:completionHandler: + subscribe} to a time series topic and add a value stream to receive updates + about events appended to the time series. Events are represented by + {@link PTDiffusionTimeSeriesEvent event} instances. Each event has a value and + {@link PTDiffusionTimeSeriesEventMetadata metadata}. An edit event has two sets of + metadata – its own metadata and that of the original event that it + replaces. + + ### Subscription range + + New subscribers are sent a range of events from the end of the time series. + This is known as the subscription range. Configuring a subscription + range is a convenient way to provide new subscribers with an appropriate + subset of the latest events. + + The default subscription range depends on whether the topic is configured to + publish delta streams. If delta streams are enabled, new subscribers are sent + the latest event if one exists. If delta streams are disabled, new + subscribers are sent no events. Delta streams are enabled by default and can + be disabled by setting the {@link PTDiffusionTopicSpecification#publishValuesOnlyPropertyKey + publishValuesOnly} property to `true`. + + A larger subscription range can be configured by setting the + {@link PTDiffusionTopicSpecification#timeSeriesSubscriptionRangePropertyKey + timeSeriesSubscriptionRange} property. Regardless of the + `timeSeriesSubscriptionRange` property, if delta streams are + enabled, new subscribers will be sent at least the latest event if one + exists. + + If the range of events is insufficient, the subscribing session can use a + {@link PTDiffusionTimeSeriesRangeQuery range query} to retrieve older events. + + When configuring a non-default subscription range for a time series topic, + register value streams before subscribing to the topic. The session only + maintains a local cache of the latest value received for a topic, not the + full subscription range. If a value stream is added after a session has + subscribed to a matching time series topic, the new stream will only be + notified of the latest value. + + ## Updating a time series topic + + A session can use `appendToTopicPath:value:completionHandler` to submit a value to be added to a + time series. The server will add an event to the end of the time series based + on the supplied value, with a new sequence number, timestamp, and the author + set to the authenticated principal of the session. + + Using `appendToTopicPath:value:timestamp:completionHandler` allows a session + to submit a value and supplied timestamp. + This provides control over the timestamp of the event. + The supplied instant must not be before the latest event stored by the time + series topic. There are no other restrictions. + + A session can use `editAtTopicPath:originalSequence:value:completionHandler:` + to submit an edit to an original time series event, identified by its sequence number. + The server will add an edit event to the end of the time series based on the + supplied value, with a new sequence number, timestamp, and the author set to + the authenticated principal of the session. + + Time series topics can also be updated using the functionality provided by + the {@link PTDiffusionTopicUpdateFeature topic update} feature. This includes + `setWithPath:toValue:completionHandler:`, `addWithPath:specification:andSetToJSONValue:completionHandler:` + and {@link PTDiffusionUpdateStream update streams}. This usage performs + an append operation with the added benefits of {@link PTDiffusionUpdateConstraint update constraints}, + topic creation when updating (upsert), and delta streams. When using methods + from {@link PTDiffusionTopicUpdateFeature topic update} the sequence number, timestamp and author metadata + will be generated using the same rules as + `appendToTopicPath:value:timestamp:completionHandler` but the associated + {@link PTDiffusionTimeSeriesEventMetadata event metadata} will not be returned to the caller. + + ## Querying a time series topic + + {@link PTDiffusionTimeSeriesRangeQuery} is a builder for configuring a query that selects a range + of a time series. There are two types of range query that differ in how edits + are processed – value range queries and edit range queries. + + ### Value range queries + + A value range query returns a merged view of part of a time series. This is + the most common time series query and appropriate for most applications. + + The result of a value range query reflects the latest available edits and the + {@link PTDiffusionTimeSeriesQueryResultEventArrayStructure#valueEventStream + query result stream} is ordered by the original + event sequence number, presenting edit events instead of the original events + they replace. Original events that have no edit events are included verbatim. + Original events that have edit events are replaced by the latest edit event. + + A value range query of the example time series, with no range constraints so + the entire time series is selected, returns two events: + +
+    sequence=3, value=Y; original event sequence=0
+    sequence=1, value=B
+ 
+ + The original value of the first event is not provided. It's apparent that the + first event is an edit event because it provides the metadata of the original + event it replaces. + + ### Edit range queries + + Applications with auditing and other administrative requirements can access + original event values using an edit range query. An edit range query returns + an unmerged view of a time series that can include both original events and + the edit events that replace them. Edit range queries are rarely needed + – value range queries satisfy most use cases. + + Edit range queries provide a detailed view of a time series. Because this is + potentially sensitive information, an edit range query can only be performed + by a session that has the {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents + queryObsoleteTimeSeriesEvents} permission for the target topic. + + There are two sub-types of edit range query. + + A full audit trail of edit events can be obtained using an all edits + edit range query. The result contains all original events selected by the + query, together with all subsequent edit events that affect the original + events. The query result stream provides events in time series order. An all + edits query of the example time series, with no range constraints so the + entire time series is selected, returns four events: + +
+    sequence=0; value=A
+    sequence=1; value=B
+    sequence=2; value=X; original event sequence=0
+    sequence=3; value=Y; original event sequence=0
+ 
+ + A latest edits edit range query returns a query result stream in + time series order that contains all original events selected by the query, + together with the latest edit events that affect the original events. A + latest edits query of the example time series, with no range constraints so + the entire time series is selected, returns three events: + +
+    sequence=0; value=A
+    sequence=1; value=B
+    sequence=3; value=Y; original event sequence=0
+ 
+ + The initial range of events delivered for a subscription to a time series + topic is derived from a latest edits edit range query. See + Subscription Range. + + When evaluated for a time series that has no edit events, an edit range query + will return the same results as a similarly configured value range query. + + ## Changes to a time series made outside the API + + The API presents a time series as an append-only data structure of immutable + events that is only changed by adding new events. The API does not allow + events to be deleted or edited. + + There are circumstances in which events can be removed from a time series by + server operations outside the API. For example, a time series topic can be + configured to discard or archive older events to save storage space; or the + time series may be held in memory and lost if the server restarts. Subscribed + sessions are not notified when events are removed in this way, but a session + can infer the removal of events that are no longer included in query results. + Similarly, an event's value can be changed on the server. For example, if an + administrator changes its value to redact sensitive data. Again, subscribed + sessions are not notified when events are modified, but a session can infer + this has happened from query results. + + Whether such changes can happen for a particular time series topic depends on + the topic specification, and the administrative actions that are allowed. To + write a robust application, do not rely on two Event instances with the same + sequence number but obtained though different API calls, being equal; nor + that there are no sequence number gaps between events in query results. + + ## Access control + + The session must have the {@link PTDiffusionPathPermission#readTopic readTopic} + permission for a topic to query a time series topic. The + {@link PTDiffusionPathPermission#queryObsoleteTimeSeriesEvents + queryObsoleteTimeSeriesEvents} permission is additionally required + to evaluate an {@link PTDiffusionTimeSeriesRangeQuery#forEdits edit range} query, or a + {@link PTDiffusionTimeSeriesRangeQuery#forValues value range query} with an + {@link PTDiffusionTimeSeriesRangeQuery#editRange edit range}. + + The session must have the {@link PTDiffusionPathPermission#updateTopic updateTopic} + permission for a topic to `appendToTopicPath:value:completionHandler:` + a new event to a time series topic. The + {@link PTDiffusionPathPermission#editTimeSeriesEvents editTimeSeriesEvents} + permission is additionally required to submit an edit via + `editAtTopicPath:originalSequence:value:completionHandler:` to any time series + topic event. The more restrictive + {@link PTDiffusionPathPermission#editOwnTimeSeriesEvents editOwnTimeSeriesEvents} + permission allows a session to submit edits to time series topic + events that are authored by the principal of the calling session. + + The Time Series feature for a session can be obtained from the session's + {@link PTDiffusionSession#timeSeries timeSeries} property. + + @see PTDiffusionSession + @since 6.0 + */ +@interface PTDiffusionTimeSeriesFeature : PTDiffusionFeature + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h new file mode 100644 index 0000000..297f104 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h @@ -0,0 +1,42 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTimeSeriesFetchTopicResult; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the results from a time series fetch operation issued to + the server. + + A time series fetch operation is issued using the + PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: + method. + + @since 6.3 + */ +@interface PTDiffusionTimeSeriesFetchResult : PTDiffusionFetchResult + +/** + The results from the fetch operation, in path order, each representing a single + topic selected by the fetch operation. + + @since 6.3 + */ +@property(nonatomic, readonly) NSArray * timeSeriesResults; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h new file mode 100644 index 0000000..be9aa93 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTimeSeriesEvent; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Encapsulates the result from a time series fetch operation for a single + selected topic. + + A time series fetch operation is issued using the + PTDiffusionFetchRequest#fetchTimeSeriesEventsWithTopicSelectorExpression:completionHandler: + method. + + @since 6.3 + */ +@interface PTDiffusionTimeSeriesFetchTopicResult : PTDiffusionFetchTopicResult + +/** + Returns the latest event, or `nil` if the topic has no events. + + @since 6.3 + */ +@property(nonatomic, readonly, nullable) PTDiffusionTimeSeriesEvent* event; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h new file mode 100644 index 0000000..5ec45d8 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h @@ -0,0 +1,76 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTimeSeriesEvent; +@class PTDiffusionTimeSeriesQueryResultEventArrayStructure; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Query result providing an array of time series events. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesQueryResult : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + If this result includes all events selected by the query then `YES`. + + When this property returns `YES` then the value returned by the selectedCount + property will be the same as the count of the array returned by the events + property. + + @since 6.0 + */ +@property(nonatomic, readonly, getter=isComplete) BOOL complete; + +/** + The number of events selected by the query. + + This number may be greater than the count of the array returned by the events + property due to a policy of the time series topic to limit the number of + returned results, or the use a limit on the range query. + + @since 6.0 + */ +@property(nonatomic, readonly) UInt64 selectedCount; + +/** + The structural properties of the events array. + + @see events + + @since 6.0 + */ +@property(nonatomic, readonly) PTDiffusionTimeSeriesQueryResultEventArrayStructure* eventArrayStructure; + +/** + Compares the receiver to the given time series query result. + + @param timeSeriesQueryResult The time series query result object with which + to compare the receiver. + + @return `YES` if it is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesQueryResult:(nullable PTDiffusionTimeSeriesQueryResult *)timeSeriesQueryResult; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h new file mode 100644 index 0000000..53a9893 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h @@ -0,0 +1,69 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Describes the structural properties of the array of events presented + by a time series query result. + + @see PTDiffusionTimeSeriesQueryResult + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesQueryResultEventArrayStructure : PTDiffusionEnumeration + +/** + The array is presented in time series order, with the following properties: + + - The sequence of each event in the array is unique. + - The array is ordered by sequence. The sequence of each subsequent event + in the stream is greater than its predecessor. + - Edit event timestamps may lie outside the query range. + - The array can have multiple edit events for the same original event. + + @return Instance indicating the array is presented in time series order. + + @since 6.0 + */ ++(instancetype)editEventStream; + +/** + The array is ordered by the original event sequence number, presenting edit + events instead of the original events they replace. + + The array has the following properties: + + - The sequence of each event in the stream is unique. + - The original event sequence of each event in the stream is unique. + - The stream is ordered by original event sequence. The original event sequence + of each subsequent event in the stream is greater than its predecessor. + - If no events have been removed from the time series, the original event + sequence of each subsequent event is one greater than its predecessor. + - If an event is an original event, the query found no corresponding edit + events. + - If an event is an edit event, its timestamp attribute may lie outside the + query range. Consequentially, the sequence and timestamp attributes of the + events may be non-sequential. + + @return Instance indicating array is ordered by the original event sequence number. + + @since 6.0 + */ ++(instancetype)valueEventStream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h new file mode 100644 index 0000000..89d9a86 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h @@ -0,0 +1,379 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Builder for queries that select a range of events from a time series. + + @since 6.0 + */ +@interface PTDiffusionTimeSeriesRangeQuery : NSObject + +/** + Return a copy of the receiver configured to perform a value range query with + the view range set to the entire time series. + + Operator type: value range. + + @return a copy of the receiver configured to perform a view range query with a + new view range that selects the entire time series. + + @since 6.0 + */ +-(instancetype)forValues; + +/** + Return a copy of the receiver configured to perform an edit range query with + the view range set to the entire time series. + + Operator type: value range. + + @return a copy of the receiver configured to perform an edit range query with a + new view range that selects the entire time series. + + @since 6.0 + */ +-(instancetype)forEdits; + +/** + Return a copy of the receiver configured to perform a value range query with + the edit range set to the entire time series. + + This operator can only be applied to value range queries. Newly initialised + range query instances are value range queries. The @ref forValues operator can + be used to create a value range query from an edit range query. + + Operator type: edit range. + + @return a copy of the receiver configured to perform a view range query with a + new edit range that selects the entire time series, or `nil` if this is not a + value range query. + + @since 6.0 + */ +-(nullable instancetype)editRange; + +/** + Return a copy of the receiver configured to perform an edit range query with + the edit range that selects all edits in the entire time series. + + This operator can only be applied to edit range queries. Newly initialised + range query instances are value range queries. The @ref forEdits operator can + be used to create an edit range query from a value range query. + + Operator type: edit range. + + @return a copy of the receiver configured to perform an edit range query with a + new edit range that selects all edits in the entire time series, or `nil` if + this is not an edit range query. + + @since 6.0 + */ +-(nullable instancetype)allEdits; + +/** + Return a copy of the receiver configured to perform an edit range query with + the edit range that selects latest edits in the entire time series. + + This operator can only be applied to edit range queries. Newly initialised + range query instances are value range queries. The @ref forEdits operator can + be used to create an edit range query from a value range query. + + Operator type: edit range. + + @return a copy of the receiver configured to perform an edit range query with a + new edit range that selects the latest edits in the entire time series, or + `nil` if this is not an edit range query. + + @since 6.0 + */ +-(nullable instancetype)latestEdits; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be an absolute sequence number. + + Operator type: anchor. + + @param sequence absolute sequence number specifying the anchor of the returned + range. + + @return a copy of the receiver with a new anchor. + + @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)fromSequence:(UInt64)sequence; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be the start of the time series. + + There is a difference between `fromStart` and `fromSequence:0` if the range + also ends before the first event of the time series. For example, + `[[query fromStart] toStart]` is always empty, but + `[[query fromSequence:0] toStart]` includes the event with sequence number `0`. + + Operator type: anchor. + + @return a copy of the receiver with a new anchor. + + @since 6.0 + */ +-(instancetype)fromStart; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be an absolute time. + + Operator type: anchor. + + @param date absolute time specifying the anchor of range. + + @return a copy of the receiver with a new anchor. + + @since 6.0 + */ +-(instancetype)fromDate:(NSDate *)date; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be a relative offset before the end of the time series. + + Operator type: anchor. + + @param count specifies the anchor as a number of events before the end of the + time series. For value range queries, count is the number of original events. + For edit range queries, count is the number of events of any type. + + @return a copy of the receiver with a new anchor. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)fromLastWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the anchor of the current range configured + to be a relative time from the timestamp of the last event in the time series. + + Operator type: anchor. + + @param timeInterval specifies anchor relative to the timestamp of the latest + event in the time series. + + @return a copy of the receiver with a new anchor. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)fromLastWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver with the span of the current range configured to + end at an absolute sequence number. + + Operator type: span. + + @param sequence absolute sequence number specifying the end of the returned + range. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if sequence is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)toSequence:(UInt64)sequence; + +/** + Return a copy of the receiver with the span of the current range configured to + end at the start of the time series. + + There is a difference between `toStart` and `toSequence:0` if the range also + starts before the first event of the time series. For example, + `[[query fromStart] toStart]` is always empty, but + `[[query fromStart] toSequence:0]` includes the event with sequence number `0`. + + Operator type: span. + + @return a copy of the receiver with a new span. + + @since 6.0 + */ +-(instancetype)toStart; + +/** + Return a copy of the receiver with the span of the current range configured to + end at an absolute time. + + Operator type: span. + + @param date absolute time specifying the end of the range. + + @return a copy of the receiver with a new span. + + @since 6.0 + */ +-(instancetype)toDate:(NSDate *)date; + +/** + Return a copy of the receiver with the span of the current range configured to + select a range of events following the anchor. + + Operator type: span. + + @param count specifies the end of the range of events to select following the + anchor. For value range queries, count is the number of original events. For + edit range queries, count is the number of events of any type. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)nextWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the span of the current range configured to + select a temporal range of events following the anchor. + + Operator type: span. + + @param timeInterval the time span of events following the anchor to select. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)nextWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver with the span of the current range configured to + select a range of events preceding the anchor. + + Operator type: span. + + @param count specifies the end of the range of events to select preceding the + anchor. For value range queries, count is the number of original events. For + edit range queries, count is the number of events of any type. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)previousWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the span of the current range configured to + select a temporal range of events preceding the anchor. + + Operator type: span. + + @param timeInterval the time span of events preceding the anchor to select. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)previousWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver with the span of the current range configured to + end a number of events before the end of the time series. + + Operator type: span. + + @param count specifies the end of the range of events to select as a number of + events before the end of the time series. For value range queries, count is the + number of original events. For edit range queries, count is the number of + events of any type. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)untilLastWithCount:(UInt64)count; + +/** + Return a copy of the receiver with the span of the current range configured to + end at a relative time from the timestamp of the last event in the time series. + + + Operator type: span. + + @param timeInterval specifies the end of the range of events to select relative + to the timestamp of the latest event in the time series. + + @return a copy of the receiver with a new span. + + @exception NSInvalidArgumentException if timeInterval is negative. + + @since 6.0 + */ +-(instancetype)untilLastWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Return a copy of the receiver that returns at most count events. + + If the query would otherwise select more than count events, only the latest + count values (those with the highest sequence numbers) are returned. + + This is most useful when a temporal span has been configured with + @ref nextWithTimeInterval: or @ref previousWithTimeInterval: where the potential + number of returned events is unknown. + + PTDiffusionTimeSeriesQueryResult::complete can be used to determine whether + a query has returned an incomplete result. + + Operator type: limit. + + @param count the maximum number of events to return. + + @return a copy of the receiver with a new limit. + + @exception NSInvalidArgumentException if count is greater than `INT64_MAX`. + + @since 6.0 + */ +-(instancetype)limitWithCount:(UInt64)count; + +/** + Compares the receiver to the given time series range query. + + @param timeSeriesRangeQuery The time series range query object with which + to compare the receiver. + + @return `YES` if it is identical to the receiver, otherwise `NO`. + + @since 6.0 + */ +-(BOOL)isEqualToTimeSeriesRangeQuery:(nullable PTDiffusionTimeSeriesRangeQuery *)timeSeriesRangeQuery; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h new file mode 100644 index 0000000..a82f04f --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h @@ -0,0 +1,322 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionAddTopicResult; +@class PTDiffusionBytes; +@class PTDiffusionMissingTopicNotification; +@class PTDiffusionTopicSpecification; +@class PTDiffusionTopicTreeRegistration; +@class PTDiffusionTopicRemovalResult; + +@protocol PTDiffusionMissingTopicHandler; + +typedef NS_ENUM(NSInteger, PTDiffusionTopicControlFeatureErrorCode) { + /** + @deprecated since 6.7 Enumeration is unused. + */ + PTDiffusionTopicControlFeatureErrorCode_ServerFailedToAddTopic __deprecated_enum_msg("Enumeration is unused.") = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + @since 5.7 + */ +extern NSString *const PTDiffusionTopicControlFeatureErrorDomain __deprecated_msg("Use PTDiffusion instead"); + +/** + @brief The Topic Control feature provides a client session with the ability to + manage topics. + + This feature allows a session to manage topics. It provides the following + capabilities: + + 1. Adding and removing topics. + 2. Missing topic notifications — listening for requests to subscribe to + topics that do not exist thus allowing dynamic topic creation on demand. + + ### Topics + + The Diffusion server stores data in topics. Each topic is bound to a topic + path in the topic tree, and may have a current value. Sessions can subscribe + to topics. Updates to topic values are broadcast to subscribing sessions. + There are several types of topic. The {@link PTDiffusionTopicType topic type} determines + the type of the data values a topic publishes to subscribers. + + ### Adding topics + + #### Creating topics + + The simplest way to create a topic is to call + `#addTopicWithPath:type:completionHandler:`, supplying a topic type. For example, to + create a {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo`: + +
+
+    [topicControl addTopicWithPath:\@"foo"
+                            type:PTDiffusionTopicType_JSON
+                completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
+    {
+        ...
+    }];
+
+ 
+ + Success or failure is reported asynchronously through the `completionHandler` + arguments. + + The nature of a topic depends primarily on its topic type, but can be + customized using topic properties. Some types of topic cannot be created + without supplying mandatory topic properties. Topic properties can be + supplied in a {@link PTDiffusionTopicSpecification topic specification} using + {@link #addTopicWithPath:specification:completionHandler:}. Topic + specifications can be created using `PTDiffusionTopicSpecification#initWithType:} and + further customized with builder methods. For example, to create a + {@link PTDiffusionTopicType_JSON JSON} topic bound to the topic path `foo` with + the {@link PTDiffusionTopicSpecification#validateValuesPropertyKey validate values} property set + to `true`: + +
+ 
+    PTDiffusionTopicSpecification *topicSpecification =
+        [PTDiffusionTopicSpecification alloc] initWithType:PTDiffusionTopicType_JSON
+                                                properties:\@{PTDiffusionTopicSpecification.validateValuesPropertyKey : PTDiffusionTopicSpecification.truePropertyValue}];
+    [topicControl addTopicWithPath:\@"foo"
+                     specification:topicSpecification
+                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
+    {
+        ...
+    }];
+ 
+ 
+ + See {@link PTDiffusionTopicSpecification} for details of the available topic properties + and their effects on the different types of topic. + + Topic creation is idempotent. If {@link #addTopicWithPath:specification:completionHandler:} + is called and there is already a topic bound + to `path` with a topic specification equal to `specification`, + the call will complete normally with an `PTDiffusionAddTopicResult#exists` result. + However, if there is a topic bound to `path` with a different topic + specification, the completionHandler will return an error. + + ### Removing topics + + Topics can be removed using {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: + removeTopicsWithTopicSelectorExpression}. + Only those selected topics that the caller has `PTDiffusionPathPermission#modifyTopic` + permission to will be removed, any others will remain. + + Topics can also be automatically removed according to a removal criteria + specified using the `PTDiffusionTopicSpecification#removalPropertyKey` topic + property. + + ### Managing topic tree hierarchies + + A topic can be bound to any path in the topic tree namespace. The only + restriction is that two topics can not have the same path. + + In the following example a topic can be created with the path `A/B/foo` + even though there are no topics with path `A` or `A/B`: + +
+ 
+    [topicControl addTopicWithPath:\@"A/B/foo"
+                              type:PTDiffusionTopicType_JSON
+                 completionHandler:^(PTDiffusionAddTopicResult *const result, NSError *const error)
+    {
+        ...
+    }];
+ 
+ 
+ + Topics bound to the paths `A` or `A/B` can be created later. + + Topics can be removed without affecting the topics subordinate to them in the + topic tree using {@link #removeDiscreteWithTopicSelectorExpression:completionHandler:} + providing a path topic selector. By using the `//` topic selector qualifier it + is possible to remove a topic and all of its descendant topics, that is to + remove whole topic tree branches. + + ### Access control + + To add or remove a topic, a session needs `PTDiffusionPathPermission#modifyTopic` + permission for the topic path. When removing topics with a topic selector that + matches more than one topic, only topics with paths for which the session has + `PTDiffusionPathPermission#modifyTopic` permission will be removed. + + To successfully register a missing topic handler using + `#addMissingTopicHandler:forTopicPath:completionHandler:`, the session needs + `PTDiffusionGlobalPermission#registerHandler` permission. + + ### Accessing the feature + + The Topic Control feature for a session can be obtained from the session's + `PTDiffusionSession#topicControl` property. + + @see PTDiffusionSession + + @since 5.7 + */ +@interface PTDiffusionTopicControlFeature : PTDiffusionFeature + +/** + Register a handler of requests for a branch of the topic tree. + + The provided handler is called when a client subscribes using a + topic selector that matches no existing topics. This allows a control client + session to be notified when another session requests a topic that does + not exist. + + A session can register multiple handlers, but may only register a single + handler for a given topic path. + A handler will only be called for topic selectors with a path prefix that starts + with or is equal to topicPath. If the path prefix matches multiple handlers, + the one registered for the most specific (longest) topic path will be called. + + @param handler The handler to use for notifying topics at or below the `topicPath` + (unless there is a handler registered for a more specific branch). + + @param topicPath Identifies a branch of the topic tree. + + @param 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 the `registration` argument will not be `nil`. + The completion handler will be called asynchronously on the main dispatch queue. + + @note If the session is closing or closed when this method is called, the + completion handler block will be called with an error, while the missing topic + handler will receive no messages. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 5.7 + */ +-(void)addMissingTopicHandler:(id)handler + forTopicPath:(NSString *)topicPath + completionHandler:(void (^)(PTDiffusionTopicTreeRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +/** + Send a request to the server to add a topic. + + This is a convenience method which creates the topic with default details for + the given type. + + @param path The full path of the topic to be created. + + @param type The type of topic to be created. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or value has been + supplied for a topic type that is not stateful. + + @since 6.1 + */ +-(void)addTopicWithPath:(NSString *)path + type:(PTDiffusionTopicType)type + completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Send a request to the server to add a topic. + + The topic will be initialized with the given value, if specified non-`nil`, + during creation and therefore the value must be compatible with the topic type. + + @param path The full path of the topic to be created. + + @param specification Defines the topic to be created. + + @param 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. + + @exception NSInvalidArgumentException If any argument is `nil` or value has been + supplied for a topic type that is not stateful. + + @since 6.1 + */ +-(void)addTopicWithPath:(NSString *)path + specification:(PTDiffusionTopicSpecification *)specification + completionHandler:(void (^)(PTDiffusionAddTopicResult * _Nullable result, NSError * _Nullable error))completionHandler; + +/** + Send a request to remove one or more topics. + + All topics that match the provided topic selector that the caller has + permission to remove will be removed. + + The selector's descendant pattern qualifier (a trailing `/` or `//`), can be + used to remove descendant topics. If a single `/` qualifier is specified, all + descendants of the matched topic paths will be removed. If `//` is specified, + the matched paths and all descendants of the matched paths (complete branches) + will be removed. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 5.9 + + @deprecated since 6.6. Use {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: + removeTopicsWithTopicSelectorExpression} instead. + */ +-(void)removeDiscreteWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler +__deprecated_msg("Will be removed in a future release"); + + +/** + Send a request to remove one or more topics. + + All topics that match the provided topic selector that the caller has + permission to remove will be removed. + + The selector's descendant pattern qualifier (a trailing `/` or `//`), can be + used to remove descendant topics. If a single `/` qualifier is specified, all + descendants of the matched topic paths will be removed. If `//` is specified, + the matched paths and all descendants of the matched paths (complete branches) + will be removed. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. `result` provides the number of topics + removed via {@link PTDiffusionTopicRemovalResult#removedCount removedCount}. + + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.6 + */ +-(void)removeTopicsWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(PTDiffusionTopicRemovalResult * _Nullable result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h new file mode 100644 index 0000000..fc7efb3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h @@ -0,0 +1,49 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Indicates whether the operation caused a topic to be created or if it + already existed. + + @see PTDiffusionTopicUpdateFeature + @see PTDiffusionUpdateStream + + @since 6.3 + */ +@interface PTDiffusionTopicCreationResult : PTDiffusionEnumeration + +/** + A new topic was created. + + @return Instance indicating a new topic was created. + + @since 6.3 + */ ++(instancetype)created; + +/** + A topic with the same specification already exists. + + @return Instance indicating a topic with the same specification already exists. + + @since 6.3 + */ ++(instancetype)exists; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h new file mode 100644 index 0000000..55fee76 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h @@ -0,0 +1,73 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The definition of a topic metric collector. + + These can be configured to record metric data for a subset of all + topics, specified with a topic selector. + + @since 6.7 + */ +@interface PTDiffusionTopicMetricCollector : PTDiffusionMetricCollector + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + The topic selector. + + @since 6.7 + */ +@property(nonatomic, readonly) NSString *topicSelector; + + +/** + Indicates whether the collector groups by topic type. + + @since 6.7 + */ +@property(nonatomic, readonly) BOOL groupsByTopicType; + + +/** + Indicates whether the collector groups by topic view. + + @since 6.9 + */ +@property(nonatomic, readonly) BOOL groupsByTopicView; + + +/** + @brief The number of leading parts of the topic path to group by. + + The number of leading parts of the topic pathh to group by, + or 0 if the collector does not group by path prefix. + + @since 6.8 + */ +@property(nonatomic, readonly) NSInteger groupByPathPrefixParts; + + + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h new file mode 100644 index 0000000..a9e0981 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h @@ -0,0 +1,97 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicMetricCollector; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A topic metric collector builder. + + @since 6.7 + */ +@interface PTDiffusionTopicMetricCollectorBuilder: PTDiffusionMetricCollectorBuilder + + +/** + Specifies whether the metric collector should group by topic + type. + + By default, a topic metric collector does not group by topic type. + + @param groupByTopicType true to indicate that the collector + should group by topic type + + @return the builder + + @since 6.7 + */ +-(instancetype)groupByTopicType:(BOOL)groupByTopicType; + + +/** + Specifies whether the metric collector should group by topic + view. + + By default, a topic metric collector does not group by topic view. + + @param groupByTopicView true to indicate that the collector + should group by topic view + + @return the builder + + @since 6.9 + */ +-(instancetype)groupByTopicView:(BOOL)groupByTopicView; + + +/** + Specified the number of leading parts of the topic path the + metric collector should use to group results. + + By default a topic metric collector does not group by the topic + path prefix. If a positive number of parts is specified, it + will enable grouping. + + @param parts the number of leading parts of the topic path to + group by; set to 0 to disable grouping by path + + @return the builder + + @since 6.8 + */ +-(instancetype)groupByPathPrefixParts:(NSInteger)parts; + + +/** + @brief Create a new {@link PTDiffusionTopicMetricCollector} using the values + currently known to this builder. + + @param name the name of the {@link PTDiffusionTopicMetricCollector} + + @param topicSelector the selector pattern that specifies the topics for which + metrics are to be collected. + + @return a new {@link PTDiffusionTopicMetricCollector} with all of the + current settings of this builder. + + @since 6.7 + */ +-(PTDiffusionTopicMetricCollector *) createCollectorWithName:(NSString *const)name + andTopicSelector:(NSString *const)topicSelector; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h new file mode 100644 index 0000000..a6c312d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h @@ -0,0 +1,71 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicNotificationType; +@class PTDiffusionTopicSpecification; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Methods implemented by classes handling streamed topic notifications. + + This protocol defines methods to be implemented by classes wishing to receive + streamed topic notifications. + + @see PTDiffusionTopicNotificationsFeature + + @since 6.1 + */ +@protocol PTDiffusionTopicNotificationListener + +/** + Notification for an immediate descendant of a selected topic path. + This notifies the presence or absence of a descendant topic that may + subsequently be explicitly selected. + + @param stream The stream that received the update. + + @param type The type of notification. + + @param topicPath The path of the immediate descendant that is not selected. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveDescendantNotificationWithType:(PTDiffusionTopicNotificationType *)type + topicPath:(NSString *)topicPath; + +/** + Notification for a selected topic. + + @param stream The stream that received the update. + + @param type The type of notification. + + @param topicPath The path of the topic that this notification is for. + + @param specification The specification of the topic that this notification is + for. + + @since 6.1 + */ +-(void) diffusionStream:(PTDiffusionStream *)stream + didReceiveNotificationWithType:(PTDiffusionTopicNotificationType *)type + topicPath:(NSString *)topicPath + specification:(PTDiffusionTopicSpecification *)specification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h new file mode 100644 index 0000000..7564c27 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h @@ -0,0 +1,69 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The registration state of the associated topic notification listener + on the server. + + Provides operations to control which topic paths the listener will receive + notifications for. + + @since 6.1 + */ +@interface PTDiffusionTopicNotificationRegistration : PTDiffusionRegistration + +/** + Request to receive notifications for all topics matched by the provided topic + selector. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + */ +-(void)selectWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Request to stop receiving notifications for all topics matched by the provided + topic selector. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + */ +-(void)deselectWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h new file mode 100644 index 0000000..c334ab3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h @@ -0,0 +1,67 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The type of topic notification received. + + @see PTDiffusionTopicNotificationListener + + @since 6.1 + */ +@interface PTDiffusionTopicNotificationType : PTDiffusionEnumeration + +/** + The topic has been added. + + @return Instance indicating a topic has been added. + + @since 6.1 + */ ++(instancetype)added; + +/** + The topic has been removed. + + @return Instance indicating a topic has been removed. + + @since 6.1 + */ ++(instancetype)removed; + +/** + The topic existed at the time of the selector registration. + + @return Instance indicating a topic existed at the time of + the selector registration. + + @since 6.1 + */ ++(instancetype)selected; + +/** + The topic is no longer selected due to the removal of a selector. + + @return Instance indicating a topic is no longer selected due to + the removal of a selector. + + @since 6.1 + */ ++(instancetype)deselected; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h new file mode 100644 index 0000000..233d371 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h @@ -0,0 +1,130 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2018, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionStream; +@class PTDiffusionTopicNotificationRegistration; + +@protocol PTDiffusionTopicNotificationListener; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Topic Notifications feature allows a client session to receive + notifications about changes to selected topics. + + The Topic Notifications feature for a session can be obtained from the + session's `PTDiffusionSession#topicNotifications` property. + + ### Notifications + + Sessions receive notifications by implementing a + PTDiffusionTopicNotificationListener. The listener will be provided with a + PTDiffusionTopicSpecification for all topics bound to paths that match + registered selectors, and any subsequent notifications for the selected + topics on those paths. Notifications will only be emitted for paths where a + topic is bound. + + For example, with a registered selector `"?a//"`, if a topic is added at path + `a/b/c/d` with no topics bound to paths higher in the hierarchy + `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveNotificationWithType:topicPath:specification:` + will be called once with a topic path of `"a/b/c/d"`, a notification type of + PTDiffusionTopicNotificationType::added, and the topic's associated + PTDiffusionTopicSpecification. + + The nature of the notification is provided by the + PTDiffusionTopicNotificationType enum. PTDiffusionTopicNotificationType::added + and PTDiffusionTopicNotificationType::removed represent structural changes to + the topic tree; PTDiffusionTopicNotificationType::selected indicates that a + pre-existing topic has been selected by a new registered selector, and + similarly PTDiffusionTopicNotificationType::deselected indicates that a topic + is no longer selected because of changes to the set of registered selectors for + the listener. + + ### Selection and deselection + + Registered PTDiffusionTopicNotificationListener implementations will receive + notifications for all topics matching registered selections. Selection of + topics using @ref md_topic_selectors "topic selector" expressions is provided + via the PTDiffusionTopicNotificationRegistration associated for a specific + listener. + + A session can request selections at any time, even if the topics do not exist + at the server. Selections are stored on the server and any subsequently added + topics that match registered selectors will generate notifications. + + ### Immediate descendant notifications + + Listeners will be informed about the presence or absence of unselected + immediate descendants via + `PTDiffusionTopicNotificationListener#diffusionStream:didReceiveDescendantNotificationWithType:topicPath:`. + This allows listeners to determine whether to select deeper topic paths in + order towalk the topic tree. An immediate descendant is defined as the + first bound topic on any branch below a given topic path. + + For example, for topics at `"a/b", "a/c", "a/c/d", "a/e/f/g"`, the immediate + descendants of `"a"` would be `"a/b", "a/c", "a/e/f/g"`. + + Immediate descendant notifications provide a PTDiffusionTopicNotificationType + to indicate the reason for the notification in the same manner as for + topic notifications. + + For example, with a registered selector `">a"`, if a topic is added at path + `"a/b"` then a descendant notification will be received with a topic path of + `"a/b"` and a notification type of PTDiffusionTopicNotificationType::added + If a topic was subsequently added at path `"a/b/c"`, no further notifications + will be received until + PTDiffusionTopicNotificationRegistration::selectWithTopicSelectorExpression:completionHandler: + was used to select the deeper topic path `">a/b"`. + + ### Access control + + A listener will only be notified about topics for which the session has + `PTDiffusionPathPermission#selectTopic` and `PTDiffusionPathPermission#readTopic` + permissions. + `PTDiffusionPathPermission#selectTopic` determines which selectors a listener may register; + `PTDiffusionPathPermission#readTopic` determines which selected topics the client may receive + notifications for. + + @see PTDiffusionSession + + @since 6.1 + */ +@interface PTDiffusionTopicNotificationsFeature : PTDiffusionFeature + +/** + Register a listener to receive topic notifications. + + @param listener The object which will handle the incoming notifications. It + will be sent messages asynchronously on the main dispatch queue. A weak + reference is maintained to this object. + + @param 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 the `registration` argument will point to a + registration object which can be used to manage the registration. The + completion handler will be called asynchronously on the main dispatch queue. + + @return The stream resulting from the listener registration. + + @exception NSInvalidArgumentException Raised if any arguments are `nil`. + + @since 6.1 + */ +-(PTDiffusionStream *)addListener:(id)listener + completionHandler:(void (^)(PTDiffusionTopicNotificationRegistration * _Nullable registration, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h new file mode 100644 index 0000000..10eb122 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h @@ -0,0 +1,192 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Permissions protecting access-controlled operations that are evaluated + for a specific topic path. + + @see PTDiffusionGlobalPermission + + @since 6.3 + + @deprecated since 6.5. Replaced by the equivalent {@link PTDiffusionPathPermission}. + In previous releases, the path-scoped permissions were called "topic permissions". + This was a source of confusion since some of the permissions apply to message paths or + to session lock names, both of which are hierarchical but have nothing to do with topics in + the topic tree. + The term "topic permission" has been renamed "path permission" throughout the API. + Additional methods have been added to reflect this renaming. + The old methods are deprecated and will be removed in a future release. + */ + +__deprecated_msg("Will be removed in a future release.") +@interface PTDiffusionTopicPermission : PTDiffusionEnumeration + +/** + Required to receive information from a topic. + + If a session does not have read_topic permission for a topic, the topic will be + excluded from the results of subscription or fetch operations for the session, + and the topic's details cannot be retrieved by the session. + + @return Instance representing the permission to receive information + from a topic. + + @see #selectTopic + + @since 6.3 + */ ++(instancetype)readTopic; + +/** + Permission to update a topic. + + @return Instance representing the permission to update a topic. + + @since 6.3 + */ ++(instancetype)updateTopic; + +/** + Permission to add a topic or remove a topic. + + @return Instance representing the permission to add or remove + a topic. + + @since 6.3 + */ ++(instancetype)modifyTopic; + +/** + Permission to send a message to a handler registered with the server. + + @return Instance representing the permission to send a message to + a handler registered with the server. + + @since 6.3 + */ ++(instancetype)sendToMessageHandler; + +/** + Permission to send a message to a client session. + + @return Instance representing the permission to send a message to + a client session. + + @since 6.3 + */ ++(instancetype)sendToSession; + +/** + Permission to use a topic selector that selects the topic path. + + A session must have this permission for the path prefix of any topic selector + used to subscribe or fetch. + + When the subscription or fetch request completes, the resulting topics are + further filtered based on the #readTopic permission. + + A session that has #readTopic but not #selectTopic for a particular topic path + cannot subscribe directly to topics belonging to the path. However, the session + can be independently subscribed by a control session that has PTDiffusionGlobalPermission#modifySession + permission in addition to the appropriate #selectTopic permission. + + @return Instance representing the permission to use a topic selector that selects + a topic path + + @since 6.3 + */ ++(instancetype)selectTopic; + +/** + Permission to evaluate queries that return a non-current view of a time series topic. + + The #readTopic permission is required to evaluate any type of query for a time + series topic. This permission is additionally required for queries that + potentially return a non-current view of all or part of a time series. Such + queries include value range queries that specify an edit range, and all types + of edit range query. + + @return Instance representing the permission to evaluate queries that return a non-current + view of a time series topic. + + @see PTDiffusionTimeSeriesFeature + + @since 6.3 + */ ++(instancetype)queryObsoleteTimeSeriesEvents; + +/** + Permission to submit edits to time series topic events. + + The #updateTopic permission is required to update a time series topic. This + permission is additionally required to submit edits to a time series topic. + + @return Instance representing the permission to submit edits to time series + topic events. + + @see PTDiffusionTimeSeriesFeature + @see #editOwnTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editTimeSeriesEvents; + +/** + Permission to submit edits to time series topic events which have an author + which is the same as the principal of the calling session. + + This permission is a more restrictive alternative to #editTimeSeriesEvents. + + The #updateTopic permission is required to update a time series topic. This + permission is additionally required to submit edits to a time series topic + where the event author is the same as the principal of the calling session. + + @return The instance representing the permission to submit edits to time series + topic events which have an author identical to the principal of the + calling session. + + @see PTDiffusionTimeSeriesFeature + @see #editTimeSeriesEvents + + @since 6.3 + */ ++(instancetype)editOwnTimeSeriesEvents; + +/** + Permission to acquire a session lock. + + @return The instance representing the permission to acquire a session lock. + + @see PTDiffusionSessionLock + + @since 6.3 + */ ++(instancetype)acquireLock; + +/** + Permission that is unsupported by the session. + + @return The instance representing an unsupported permission by the session. + + @since 6.3 + */ ++(instancetype)unknownTopicPermission; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h new file mode 100644 index 0000000..0bbce27 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h @@ -0,0 +1,41 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2020, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Reports the number of topics removed by a call to + {@link PTDiffusionTopicControlFeature#removeTopicsWithTopicSelectorExpression:completionHandler: + removeTopicsWithTopicSelectorExpression} + + @since 6.6 + */ +@interface PTDiffusionTopicRemovalResult : NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + +/** + The integer returned represents the number of topics removed by the + operation. This does not include any derived topics created by a + topic view which were removed as a side effect of this action. + */ +@property (nonatomic, readonly) NSUInteger removedCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h new file mode 100644 index 0000000..7cff311 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h @@ -0,0 +1,118 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A topic selector identifies one or more topics. + + Topic selector objects are only used by the local client library and are immutable. + + For more information on topic selector evaluation see the + @ref md_topic_selectors "Topic Selectors" guide. + + @see PTDiffusionMessagingFeature + @see PTDiffusionTopicsFeature + + @since 5.6 + */ +@interface PTDiffusionTopicSelector : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Return a topic selector object initialized with the given expression. + + @param expression The expression to be used for evalutating topic paths. + + @return Topic selector instance initialised with the given expression. + + @since 5.6 + */ ++(instancetype)topicSelectorWithExpression:(NSString *)expression; + +/** + The expression association with the receiver. + + @since 5.6 + */ +@property(nonatomic, readonly) NSString* expression; + +/** + The topic path prefix from this selector pattern. + + Returns the largest fixed topic path that begins the selector expression. + For path selectors, this is the entire path. For split pattern or full pattern + selectors, this is a topic path up to, but not including, the first part of the + path that contains a regular expression. + + For selector sets, this method will return the largest prefix that is common to + all included selectors. + + If there is no common prefix, an empty string will be returned. + + @since 6.1 + */ +@property(nonatomic, readonly) NSString* pathPrefix; + +/** + Evaluate this receiver against a topic path. + + @param topicPath The topic path to evaluate against. + May be `nil` or an empty string, in which case this method returns `NO`. + + @return `YES` if the receiver selects the topicPath. + + @since 5.6 + */ +-(BOOL)selectsTopicPath:(nullable NSString *)topicPath; + +/** + Compares the receiver to the given topic selector. + + @param topicSelector The topic selector object with which to compare the receiver. + + @return `YES` if the topic selector is equal to the receiver, otherwise `NO`. + + @since 5.6 + */ +-(BOOL)isEqualToTopicSelector:(nullable PTDiffusionTopicSelector *)topicSelector; + +/** + Create a selector that matches if any of the provided selectors match. + + @param selectors The selectors + + @return A selector which matches if any of selectors do. + + @since 5.9 + */ ++(instancetype)topicSelectorWithAnyOf:(NSArray*)selectors; + +/** + A convenience wrapper around `topicSelectorWithAnyOf:`. + + @param expressions The selector expressions. + + @return A selector which matches if any of `expressions` do + + @since 5.9 + */ ++(instancetype)topicSelectorWithAnyExpression:(NSArray*)expressions; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h new file mode 100644 index 0000000..a1199b7 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h @@ -0,0 +1,984 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Topic specifications provide the information required to create a topic. + + Topics can be created from a topic specification using + `[PTDiffusionTopicControlFeature addTopicWithPath:specification:completionHandler:]`. + + Topic specifications allow an application to introspect the type and + capabilities of a topic. Topic specifications are provided to + value streams and topic notification listeners. + + A topic specification has a topic type and a map of + property settings which define the behavior of the topic. A default topic + specification for a topic type can be created using + `[PTDiffusionTopicSpecification initWithType:]`. Topic specifications with + different properties can be derived from a default instance using the + `[PTdiffusionTopicSpecification initWithType:properties:]` builder method. + + ###Topic Properties + + Depending on the topic type, some properties must be included in the + specification when creating a topic and some properties have no effect. The + required and optional properties for each the topic type are set out in the + following table. Properties unsupported by the topic type are ignored. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Default when optionalString
+ JSON
+ Binary
+
Double
+ Int64
RecordV2TimeSeriesRouting
COMPRESSIONlowOptional—OptionalOptionalOptional
CONFLATION`conflate`OptionalOptionalOptionalOptional †Optional
DONT_RETAIN_VALUE`false`OptionalOptionalOptional—— ‡
OWNEROptionalOptionalOptionalOptionalOptional
PERSISTENT`true`OptionalOptionalOptionalOptionalOptional
PRIORITY`default`OptionalOptionalOptionalOptionalOptional
PUBLISH_VALUES_ONLY`false`Optional—OptionalOptional— ‡
REMOVALOptionalOptionalOptionalOptionalOptional
SCHEMA——Optional——
TIDY_ON_UNSUBSCRIBE`false`OptionalOptionalOptionalOptionalOptional
TIME_SERIES_EVENT_VALUE_TYPE———Required—
TIME_SERIES_RETAINED_RANGE`limit 10`———Optional—
TIME_SERIES_SUBSCRIPTION_RANGEas documented———Optional—
VALIDATE_VALUES`false`OptionalOptionalOptionalOptional— ‡ +
+ +
+
† +
`TIME_SERIES` topics have restricted values for the + `CONFLATION` property. They are only allowed to have the values + `off` or `unsubscribe`. +
‡ +
`ROUTING` topics (deprecated) are references to other topics, and have no value + of their own. Instead, they reflect the value of the appropriate source + topic. Observed behavior depends on the values of the + `DONT_RETAIN_VALUE`, `PUBLISH_VALUES_ONLY`, and + `VALIDATE_VALUES` properties that are set on the source topic. +
+ + @since 5.9 + */ +@interface PTDiffusionTopicSpecification : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Initializer for the topic specification object with a given topic type and + an empty properties dictionary. + + @param type the topic type + + @return a topic specification object initialized with the given topic type and + an empty properties dictionary. + + @since 6.0 + */ +-(instancetype)initWithType:(PTDiffusionTopicType)type; + +/** + Initializer for the topic specification object with a give topic type and + properties dictionary. + + @param type the topic type + + @param properties the topic properties dictionary + + @return topic specification object initialized with the given topic type and + properties dictionary. + + @exception NSInvalidArgumentException If properties is `nil`. + + @since 6.0 + */ +-(instancetype)initWithType:(PTDiffusionTopicType)type + properties:(NSDictionary *)properties NS_DESIGNATED_INITIALIZER; + +/** + The type of topic. + + @since 5.9 + */ +@property(nonatomic, readonly) PTDiffusionTopicType type; + +/** + The topic properties. May be empty. + + @since 5.9 + */ +@property(nonatomic, readonly) NSDictionary* properties; + +/** + Compares the receiver to the given topic specification. + + @param topicSpecification The topic specification object with which to compare the receiver. + + @return `YES` if the topic specification is equal to the receiver, otherwise `NO`. + + @since 5.9 + */ +-(BOOL)isEqualToTopicSpecification:(nullable PTDiffusionTopicSpecification *)topicSpecification; + +/** + Key of boolean topic property indicating whether a topic should publish only + values. + + By default, a topic that supports delta streams will publish the + difference between two values (a delta) when doing so is more efficient + than publishing the complete new value. Subscribing sessions can use a + value stream to automatically apply the delta to a + local copy of the topic value to calculate the new value. + + Setting this property to `true` disables this behavior so that deltas are never + published. Doing so is usually not recommended because it will result in more + data being transmitted, less efficient use of network resources, and increased + transmission latency. On the other hand, calculating deltas can require + significant CPU from the server or, if update streams are used, from the + updating client. The CPU cost will be higher if there are many differences + between successive values, in which case delta streams confer fewer benefits. + If successive values are unrelated to each other, consider setting this + property to `true`. Also consider setting this property to `true` if the + network capacity is high and the bandwidth savings of deltas are not required. + + @return string representing the key of boolean topic property indicating whether + a topic should publish only values. + + @since 5.9 + @see #dontRetainValuePropertyKey + */ ++(NSString *)publishValuesOnlyPropertyKey; + +/** + Key of boolean topic property indicating whether a topic should validate + inbound values. + + By default, the server does not validate received values before sending them on + to clients. Invalid or corrupt values will be stored in the topic and passed on + to clients. If this property is set to `true`, the server will perform + additional validation on values to check that it is a valid instance of the + data type, and if it is not then it will return an error to the updater and not + update the topic. + + If this value is not set (or set to something other than `true`), no server + validation of inbound values is performed. This is the recommended setting as + there is a performance overhead to validation and a client using a value + updater could not send invalid values anyway. + + @return string representing the key of boolean topic property indicating whether + a topic should validate inbound values. + + @since 5.9 + */ ++(NSString *)validateValuesPropertyKey; + +/** + Key of boolean topic property that sets the 'tidy on unsubscribe' option for a + topic. + + By default, if a session unsubscribes from a topic, it will receive any updates + for that topic that were previously queued but not sent. + + If this property is set to `true`, when a client session unsubscribes from the + topic, any updates for the topic that are still queued for the session are + removed. There is a performance overhead to using this option as the client + queue must be scanned to find topic updates to remove, however it may prove + useful for preventing unwanted data being sent to client sessions. + + @return string representing the key of boolean topic property that sets the + 'tidy on unsubscribe' option for a topic. + + @since 6.0 + */ ++(NSString *)tidyOnSubscribePropertyKey; + +/** + Key of the string topic property that specifies the event data type for a time + series topic. + + The value is the type name of a data type. + + @return string representing the key of the string topic property that specifies + the event data type for a time series topic. + + @see PTDiffusionDataType + + @since 6.0 + */ ++(NSString *)timeSeriesEventValueTypePropertyKey; + +/** + Key of the string topic property that specifies the range of events retained by + a time series topic, as a time series range expression. + + When a new event is added to the time series, older events that fall outside of + the range are discarded. + + If this property is not specified, a time series topic will retain the ten most + recent events. + + The value of this property is a time series range expression string composed of + one or more constraint clauses. Constraints are combined to provide a range of + events from the end of the time series. + +
+
limit constraint
+
A limit constraint specifies the maximum number of events from the + end of the time series.
+
last clause
+
A last constraint specifies the maximum duration of events from the + end of the time series. The duration is expressed as an integer followed + by one of the following time units: +
    +
  • `MS` – milliseconds
  • +
  • `S` – seconds;
  • +
  • `H` – hours.
  • +
+
+
+ + If a range expression contains multiple constraints, the constraint that + selects the smallest range is used. + + + + + + + + + + + + + + + + + + +
Property valueMeaning
`limit 5`The five most recent events
`last 10s`All events that are no more than ten seconds older than the latest + event
`last 10s limit 5`The five most recent events that are no more than ten seconds older + than the latest event
+ + Range expressions are not case sensitive: `limit 5 last 10s` is equivalent to + `LIMIT 5 LAST 10S`. + + @return string representing the key of the string topic property that specifies + the range of events retained by a time series topic, as a time series + range expression. + + @since 6.0 + */ ++(NSString *)timeSeriesRetainedRangePropertyKey; + +/** + Key of the string topic property that specifies the range of time series topic + events to send to new subscribers, as a time series range expression. + + This property value is a time series range expression, following the format + used for #timeSeriesEventValueTypePropertyKey. + + If this property is not specified, new subscribers will be sent the latest + event if delta streams are enabled and no events if delta streams are disabled. + + @return string representing the key of the string topic property that specifies + the range of time series topic events to send to new subscribers, as a + time series range expression. + + @since 6.0 + */ ++(NSString *)timeSeriesSubscriptionRangePropertyKey; + +/** + Key of the string topic property that specifies a schema which constrains topic + values. + + This property is only used by Diffusion recordV2 topics. + The property value can be generated using the + PTDiffusionRecordV2Schema#JSONData property of a schema created using a + PTDiffusionRecordV2SchemaBuilder. + + @return string representing the key of the string topic property that specifies + a schema which constrains topic values. + + @since 6.0 + */ ++(NSString *)schemaPropertyKey; + +/** + Key of boolean topic property that specifies a topic should not retain + its last value. + + By default, a topic (other than a `ROUTING`) will retain its + latest value. The latest value will be sent to new subscribers. Setting + this property to `true` disables this behavior. New subscribers + will not be sent an initial value. No value will be returned for fetch + operations that select the topic. This is useful for data streams where + the values are only transiently valid. + + Setting this property to `true` also disables delta streams, regardless of the + #publishValuesOnlyPropertyKey value. If subsequent values are likely to be + related, delta streams usually provide performance benefits (see + #publishValuesOnlyPropertyKey). Consider leaving this property set to `false` + to benefit from delta streams, even if there is no other requirement to retain + the last value. + + Bearing in mind the performance trade-offs of disabling delta streams, there + are two reasons to consider setting this property to `true`. First, it stops + the server and each subscribed client from keeping a copy of the value, + reducing their memory requirements. Second, when a topic has a high update rate + and is replicated across a cluster, it can significantly improve throughput + because the values need not be persisted to the cluster. + + Time series topics ignore this property and always retain the latest value. + + @return string representing the key of boolean topic property that specifies + a topic should not retain its last value. + + @since 6.0 + */ ++(NSString *)dontRetainValuePropertyKey; + +/** + Key of the topic property that can be used to prevent a topic from being + persisted when the server is configured to enable persistence. + + By default, a topic will be persisted if persistence is enabled at the server + and the topic type supports persistence. + + Setting to `false` will prevent the topic from being persisted. + + @return string representing the key of the topic property that can be used to + prevent a topic from being persisted when the server is configured to + enable persistence. + + @since 6.1 + */ ++(NSString *)persistentPropertyKey; + +/** + Key of the topic property that specifies a removal policy for automatic + removal of the topic (and/or other topics). + + This property is specified as an expression which defines one or more + conditions that are to be satisfied before automatic removal occurs. + + The expression takes the form: + + when [remove ""] + + At least one *condition* must be supplied. If more than one is supplied, they + must be separated by logical operators (`and` or `or`). The natural evaluation + order of the operators may be changed by surrounding with parentheses (e.g. + (*condition* `and` *condition*)). + + The `remove` clause is optional. It provides a + @ref md_topic_selectors "topic selector" expression to be evaluated by the + server, representing the topics to be removed. If a `remove` clause is + specified, the topic with the removal policy will only be removed if its path + matches the selector expression. The selector must be surrounded by either + double or single quotes. + + When many topics have the same removal policy, it is better to + set the `REMOVAL` property for one of them, using a `remove` + clause that selects all of the topics. This is more efficient because it + allows the server to avoid evaluating the same condition many times. + + The permissions that are applied at the time of removal are those defined by + the roles of the principal that created the topic at the time of creation. The + roles of that principal may therefore change before the removal with no effect, + but if the permissions given to the roles change it may have an effect upon the + final removal. + + Only one occurrence of each of the following condition types may be included + within the expression: + + + + + + + + + + + + + + + + + + + + + + +
Condition TypeFormatUsage
time aftertime after absoluteTimeRemoval should occur after a specified absolute time. Absolute time may be + specified as a number of milliseconds since the epoch (00:00:00 on 1 January + 1970) **or** as a quoted date and time formatted in + RFC_1123 + date time format. Either single or double quotes may be used.
subscriptions less than[local] subscriptions < n for forPeriod [after afterPeriod]Removal should occur when the topic has had less than the specified number + (*n*) of subscriptions for a given period (*forPeriod*) of time. Optionally, an + initial period (*afterPeriod*) may be specified by which to delay the initial + checking of this condition. See below for period formats. +

The optional local keyword restricts evaluation to only count + subscriptions from sessions belonging to the local server or cluster, + ignoring subscriptions from sessions belonging to downstream remote servers that + host fanout replicas of the topic.

no updates forno updates for forPeriod [after afterPeriod]Removal should occur when the topic has had no updates for a given period + (*forPeriod*) of time. Optionally, an initial period (*afterPeriod*) may be + specified by which to delay the initial checking of this condition. See below + for period formats.
+ + Multiple occurrences of the following condition types may be included + within the expression: + + + + + + + + + + + + + + + + + +
Condition TypeFormatUsage
no session hasno [local] session has "criteria" [for forPeriod] [after afterPeriod]Removal should occur when no sessions satisfy certain *criteria*. + Optionally, the criteria can be required to be satisfied for a period of time + (*forPeriod*). Optionally, an initial period (*afterPeriod*) can be specified + to delay the initial check of the criteria. Session selection criteria are + specified as defined in @ref md_session_filters "session filters" and must be + surrounded by single or double quotes. See below for period formats. +

The optional local keyword restricts evaluation to sessions + belonging to the local server or cluster, ignoring sessions belonging to + downstream remote servers that host fanout replicas of the topic.

this session closesThis is a shorthand form of `no local session has` that may be used to + indicate that the topic is to be removed when the session that created it + closes.
+ + Time periods are specified as a number followed (with no intermediate space) by + a single letter representing the time unit. The time unit may be `s` (seconds), + `m` (minutes), `h` (hours) or `d` (days). For example, 10 minutes would be + specified as `10m`. + + If quotes or backslashes (`\`) are required within quoted values such as + selectors or session criteria then they may be escaped by preceding with `\`. + The convenience method `PTDiffusionEscape` is provided to escape such + characters in a value. + + The expression is validated only by the server and therefore if an invalid + expression is specified it will be reported asynchronously as an error. + + ### Examples + + when time after 1518780068112 + + The topic will be removed when the date and time indicated by the specified + number of milliseconds since the epoch has passed. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" + + The topic will be removed when the specified date and time has passed. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" remove "*alpha/beta//" + + The topic alpha/beta and all topics subordinate to it will be removed when the + specified date and time has passed. + + when subscriptions < 1 for 20m + + The topic will be removed when it has had no subscriptions for a continuous + period of 20 minutes. + + when subscriptions < 2 for 20m after 1h + + The topic will be removed when it has had less than 2 subscriptions for a + continuous period of 20 minutes after one hour has passed since its creation. + + when no updates for 3h + + The topic will be removed when it has had no updates for a continuous period of + 3 hours. + + when no updates for 15m after 1d + + The topic will be removed when it has had no updates for a continuous period of + 15 minutes after one day has passed since its creation. + + when this session closes + + The topic will be removed when the session that created it is closed. + + when no session has '$Principal is "Alice"' + + The topic will be removed when there is no session with the principal 'Alice'. + + when no session has '$Principal is "Alice"' for 10m + + The topic will be removed when there have been no sessions with the principal + 'Alice' for a continuous period of 10 minutes. + + when no session has 'Department is "Accounts"' for 30m after 2h + + The topic will be removed when there have been no sessions from the Accounts + department for a continuous period of 30 minutes after 2 hours have passed + since its creation. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 1 for 30m + + The topic will be removed when the specified date and time has passed and the + topic has had no subscriptions for a continuous period of 30 minutes after that + time. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" and subscriptions < 2 for 10m after 1h + + The topic will be removed when the specified date and time has passed and the + topic has had less than 2 subscriptions for a continuous period of 10 minutes + after that time plus one hour. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" or subscriptions < 2 for 10m after 1h + + The topic will be removed when the specified date and time has passed or the + topic has had less than 2 subscriptions for a continuous period of 10 minutes + after one hour from its creation. + + when time after "Tue, 3 Jun 2018 11:05:30 GMT" and (subscriptions < 2 for 10m after 1h or no updates for 20m) + + The topic will be removed when the specified date and time has passed and + either the topic has had less than 2 subscriptions for a continuous period of + 10 minutes after that time plus one hour or it has had no updates for a + continuous period of 20 minutes. Note that the parentheses are significant here + as without them the topic would be removed if it had had no updates for 20 + minutes regardless of the time and subscriptions clause. + + ### Notes and restrictions on use + + The `after` time periods refer to the period since the topic was created or + restored from persistence store after a server is restarted. They are designed + as a 'grace' period after the topic comes into existence before the related + condition starts to be evaluated. When not specified the conditions start to be + evaluated as soon as the topic is created or restored. + + The server will evaluate conditions on a periodic basis (every few seconds) so + the exact removal time will not be precise for low periodic granularity. + + The meaning of the `for` period in a `no session has` condition is subtly + different from its use in other conditions. It does not guarantee that there + has been no session satisfying the condition at some point between evaluations, + only that when evaluated the given period of time has passed since it was last + evaluated and found to have no matching sessions. + + Subscriptions is the number of subscriptions to a topic, including those that + occur through routing topics. When monitoring across a cluster the + `subscriptions less than` condition is first checked on the server that owns + the topic and if satisfied there then each cluster member is queried to check + if the condition has also been satisfied there. The topic will only be removed + if the total number of subscriptions across the cluster is less than that + specified in the condition. + + Automatic topic removal is supported for a topic that is replicated + across the local cluster, and for a topic with with fanout replicas on + downstream remote servers. A `subscriptions less than` condition will be evaluated + against the total number of subscriptions across the cluster and on all + fanout replicas on downstream remote servers. A `no session has` + condition will consider all sessions hosted across the cluster and all + sessions hosted by downstream remote servers that have a fanout replica + of the topic. The `local` keyword can be used to restrict evaluation to + the local cluster, ignoring fanout replicas. + + @return string representing the key of the topic property that specifies a removal policy for automatic + removal of the topic (and/or other topics). + + @since 6.1 + */ ++(NSString *)removalPropertyKey; + +/** + Key of the topic property that specifies the conflation policy of the + topic. The policy specifies how the server manages queued topic updates. + Conflation is applied individually to each session queue. + + Conflation is the process of merging or discarding topic updates queued + for a session to reduce the server memory footprint and network data. The + server will conflate sessions that have a large number of queued messages + to meet configured queue size targets. The sessions with the largest + queues are typically slow consumers or have been disconnected – both will + benefit from conflation. This property allows conflation behavior to be + tuned on a topic-by-topic basis. + + The supported policies are: +
    +
  • `off` +
  • `conflate` +
  • `unsubscribe` +
  • `always` +
+ + The default policy used when the property is not specified and the + topic type is not time series is `conflate`. The default policy + used when the property is not specified and the topic type is time + series is `off`. + + The policy `off` disables conflation for the topic. This policy + disables all conflation for the topic, so topic updates will never be + merged or discarded. + + The policy `conflate` automatically conflates topic updates when + back pressure is detected by the server. + + The policy `unsubscribe` automatically unsubscribes the topic when + back pressure is detected by the server. The unsubscription is not + persisted to the cluster. If a session fails over to a different server + it will be resubscribed to the topic. + + The policy `always` automatically conflates topic updates as they + are queued for the session. This is an eager policy that ensures only the + latest update is queued for the topic, minimising the server memory and + network bandwidth used by the session. + + The `conflate` and `unsubscribe` policies are applied when + the server detects back pressure for a session. The server configuration + places limits on the data queued for each session. If these limits are + breached, the server will conflate the session queue to attempt to reduce + its size. If the session queue still exceeds the limits after conflation, + the session will be terminated. + + Conflation can be disabled on a session-by-session basis. If conflation is disabled for a + session the policy will not be applied to topic updates queued for the + session but will be for other sessions that have conflation enabled. + + The policies `conflate` and `always` are not supported for + time series topics as they would cause missing events. Attempts to enable + these policies with time series topics will cause the creation of the + topic to fail, reporting that the specification is invalid. + + @return string representing the key of the topic property that describes + the conflation policy of the topic. + + @since 6.1 + */ ++(NSString *)conflationPropertyKey; + +/** + Key of the topic property that allows the creator of a topic to extend + `PTDiffusionPathPermission#readTopic`, `PTDiffusionPathPermission#modifyTopic` + and `PTDiffusionPathPermission#updateTopic` permissions to a specific + principal, in addition to the permissions granted by the authorisation rules in + the security store. + + A session that has authenticated using the principal can update and remove the + topic, so the principal can be considered the topic owner. To fetch or + subscribe to the topic, the principal must also be granted the `SELECT_TOPIC` + permission by the security store rules. + + This may be used in the following cases: + + 1. A session creates a topic and makes its own principal the owner. + 2. A session creates a topic and makes another principal the owner. + + The format of the property value is: + + $Principal is "" + + where *name* is the name of the principal. Single quotes may be used instead of + double quotes and special characters must be escaped. The convenience method + `PTDiffusionEscape` is provided to escape such characters in a value. + + The purpose of this property is to allow a client to create topics on behalf of + other users. This can be used in conjunction with #removalPropertyKey so that + such topics are removed when there are no longer any sessions for the named + principal. + + For example: + + PTDiffusionTopicSpecification *const specification = + [[PTDiffusionTopicSpecification alloc] initWithType:topicType + properties:@ { + [PTDiffusionTopicSpecification ownerPropertyKey] : + @"$Principal is 'myPrincipal'", + [PTDiffusionTopicSpecification removalPropertyKey] : + @"when no session has '$Principal is \"myPrincipal\"' for 5s" + }]; + + @return string representing the key of the topic property that allows to + extend permissions to a specific principal + + @since 6.1 + */ ++(NSString *)ownerPropertyKey; + +/** + Key of the topic property that allows the compression policy to be set + on a per-topic basis. + + Compression reduces the bandwidth required to broadcast topic updates to + subscribed sessions, at the cost of increased server CPU. + + Changes to a topic's value are published to each subscribed session as a + sequence of topic messages. A topic message can carry the latest value or + the difference between the latest value and the previous value (a delta). + The compression policy determines if and how published topic messages + are compressed. Topic messages are not exposed through the client API; + the client library handles decompression and decodes deltas + automatically, passing reconstructed values to the application. + + The compression policy for a topic is specified by setting this property + to one of several values: + + - `off` + - `low` + - `medium` + - `high` + + The policies are listed in the order of increasing compression and + increasing CPU cost. `off` disables compression completely for the + topic and requires no additional CPU; `high` compresses the topic + messages to the smallest number of bytes, but has the highest CPU cost. + Generally some compression is beneficial, so the default value for this + property is `low`. + + Prior to version 6.4, only two values were allowed: `true` + (equivalent to `medium`, and the previous default policy) and + `false` (equivalent to `off`). These values are still + supported. + + This property is only one factor that determines whether a topic message + will be compressed. Other factors include: + + - Compression must be enabled in the server configuration. + + - The client library must support the server's compression + scheme. In this release, the server supports zlib + compression, and also allows compression to be disabled on a + per-connector basis. From 6.4, all client libraries are + capable of zlib compression. A JavaScript client may or may + not support zlib compression, depending on whether the zlib + library can be loaded. The zlib library is packaged + separately to reduce the download size of the core library. + + @return string representing the key of of the topic property that allows + the compression policy to be set on a per-topic basis. + + @since 6.2 + */ ++(NSString *)compressionPropertyKey; + +/** + Key of the topic property that specifies the topic delivery priority. + + The supported delivery priorities are: + - **low** + - **default** + - **high** + + The delivery priority affects the order of topic updates sent to a + subscribed client session. When there are multiple topic updates for + topics with different priorities in a session's outbound queue, updates + for "high" priority topics will be delivered first, followed by + updates for "default" priority topics, followed by updates for + "low" priority topics. Topic subscription and unsubscription + notifications are also delivered according to the topic delivery + priority. + + Using different delivery priorities is most beneficial when there is a + large backlog of queued updates to deliver to a client session. On + lightly loaded systems, updates typically remain in the outbound queue + for a few milliseconds and so there is a lower chance of topic updates + being reordered based on their priority. The backlog will be larger if + the topic update rate is higher; the server or the client are more + heavily loaded; the client session becomes temporarily disconnected; or + if there is poor network connectivity between the server and the client. + + Messages from the server to the client that are not topic updates, for + example ping requests and responses, are queued with the + "default" delivery priority. + + @return string representing the key of the topic property that specifies + the topic delivery priority. + + @since 6.4 + */ ++(NSString *)priorityPropertyKey; + +/** + Constant string representing the value to be used for boolean properties to + specify `true`. + + @return string representing the boolean value of `true`. + + @since 5.9 + */ ++(NSString *)truePropertyValue; + +/** + Constant string representing the value to be used for boolean properties to + specify `false`. + + @return string representing the boolean value of `false`. + + @since 6.1 + */ ++(NSString *)falsePropertyValue; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h new file mode 100644 index 0000000..ab70bae --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h @@ -0,0 +1,37 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2018 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A reference to a handler registered for a particular topic path. + + A topic tree registration is provided once a handler with a server-side + presence has been registered. + + @since 5.7 + */ +@interface PTDiffusionTopicTreeRegistration : PTDiffusionRegistration + +/** + The path registered. + + @since 6.0 + */ +@property(nonatomic, readonly) NSString* path; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h new file mode 100644 index 0000000..05da049 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h @@ -0,0 +1,54 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2017 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTopicTreeRegistration; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Common protocol for delegates that establish a server side control presence for the + client session at a particular branch of the topic tree. + + @since 5.7 + */ +@protocol PTDiffusionTopicTreeRegistrationDelegate + +/** + Called if the handler is closed. + + No further calls will be made to this handler. + + @param registration The topic tree registration for which this delegate applies. + + @since 5.7 + */ +-(void)diffusionTopicTreeRegistrationDidClose:(PTDiffusionTopicTreeRegistration *)registration; + +/** + Called in the event of a contextual error relating to this handler. + + No further calls will be made to this handler. + + @param registration The topic tree registration for which this delegate applies. + + @param error The failure reason. + + @since 5.7 + */ +-(void)diffusionTopicTreeRegistration:(PTDiffusionTopicTreeRegistration *)registration + didFailWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h new file mode 100644 index 0000000..a5352ea --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h @@ -0,0 +1,234 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +/** + @file PTDiffusionTopicType.h + + The topic type determines the type of the data values a topic publishes to + subscribers. + + ### Source Topics + + Most topics are source topics. The characteristics of each type of source + topic are summarized in the following table. + + | Topic type | State | Data type | + | -------------------------------- | ----------------------------- | ------------------------------------------------- | + | #PTDiffusionTopicType_String | Single scalar value. | String. | + | #PTDiffusionTopicType_Int64 | Single scalar value. | 64-bit integer. | + | #PTDiffusionTopicType_Double | Single scalar value. | Double precision floating point number. | + | #PTDiffusionTopicType_Binary | Single scalar value. | Arbitrary binary data. | + | #PTDiffusionTopicType_RecordV2 | Single composite value. | #PTDiffusionRecordV2 – Diffusion-specific data type. A list of records, each composed of field values, with an optional schema. | + | #PTDiffusionTopicType_JSON | Single composite value. | #PTDiffusionJSON, backed by CBOR-format binary. | + | #PTDiffusionTopicType_TimeSeries | Append-only log of events. | #PTDiffusionTimeSeriesEvent containing a value of a \link #PTDiffusionDataTypes well-known data type\endlink. | + + + ###Routing Topics (deprecated) + + A PTDiffusionTopicType_Routing topic can have a different source topic for each + subscription. + + Routing topics republish values from source topics. The data type is + inherited from the source topic. + + Routing topics are deprecated in favor of {@link PTDiffusionSessionTreesFeature Session Trees}. + + @see PTDiffusionTopicSpecification + + @since 5.6 + */ +typedef NS_ENUM(NSUInteger, PTDiffusionTopicType) { + /** + Routing Topic. + + A topic that can reference different source topics for different sessions. + + Each subscription to a routing topic is routed to a source topic. Updates + to the source topic are routed back to the subscriber and appear to come + from the routing topic. + + The result is that a session may subscribe to a topic which is in reality + supported by another topic and the mapping of the routing topic to the + actual topic can be different for each session. + + As an example, you may wish for all sessions to simply subscribe to a + topic called "Prices" but depending upon the client type the actual topic + could differ (Prices/Discount, Prices/Standard etc). + + An instance of this topic may map any number of sessions to any number of + different source topics. + + From the point of view of a session subscribing to such a topic, a + routing topic appears to be a normal topic but it has no state of its own + and cannot be updated. + + The mapping of sessions to source topics is performed by a control client + session using the Subscription Control feature. When a session subscribes + to the routing topic the control client is requested to provide the topic + that the client is to be subscribed to. If there is no control client + available to handle subscriptions at the time a session subscribed, the + session will not be subscribed to the topic. + + Alternatively, the routing can be determined by a user-written Java class + (deployed on the server) which will be invoked to define the mapping of + the topic to another data topic when a session subscribes. + + When a source topic is removed that is mapped to from a routing topic then + any session that were mapped to that source topic will be unsubscribed from + the routing topic. + + @since 5.7 + + @deprecated since 6.7 Routing Topics are deprecated. The more powerful + {@link PTDiffusionSessionTreesFeature Session Trees} feature should be used in their place. + */ + PTDiffusionTopicType_Routing __deprecated_enum_msg("Use PTDiffusionSessionTreesFeature instead") = 12, + + /** + Topic that stores and publishes binary values. Based on the + PTDiffusionBinary data type. + + Supports delta-streams. + + @since 5.7 + */ + PTDiffusionTopicType_Binary = 13, + + /** + Topic that stores and publishes JSON (JavaScript Object Notation) values. + Based on the PTDiffusionJSON data type. + + Supports delta-streams. + + @since 5.7 + */ + PTDiffusionTopicType_JSON = 14, + + /** + Topic that stores and publishes IEEE 754 double-precision floating point + numbers. Based on the double data type. + + Supports `nil` values. + + The topic does not support delta-streams — only complete values are + transmitted. + + @since 6.0 + */ + PTDiffusionTopicType_Double = 15, + + /** + Topic that stores and publishes 64-bit integer values. Based on the int64 + data type. + + Supports `nil` values. + + The topic does not support delta-streams — only complete values are + transmitted. + + @since 6.0 + */ + PTDiffusionTopicType_Int64 = 16, + + /** + Topic that stores and publishes string values. Based on the string data + type. + + Supports `nil` values. + + Supports delta-streams. + + @since 6.0 + */ + PTDiffusionTopicType_String = 17, + + /** + A time series is a sequence of events. Each event contains a value and has + server-assigned metadata comprised of a sequence number, timestamp, and + author. + + A time series topic allows sessions to access a time series that is + maintained by the server. A time series topic has an associated event data + type that determines the type of value associated with each event. + + ### Retained range + + The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property + configures the range of historic events retained by a time series topic. + If the property is not specified, a time series topic will retain the ten + most recent events. + + ### Subscription range + + The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property + configures a time series topic to send a range of historic events from the + end of the time series to new subscribers. This is a convenient way to + synchronize new subscribers without requiring the use of a range query. + + By default, new subscribers will be sent the latest event if delta streams + are enabled and no events if delta streams are disabled. + + ### Mandatory properties + + The [PTDiffusionTopicSpecification timeSeriesEventValueType] property must + be provided when creating a time series topic. + + @since 6.0 + */ + PTDiffusionTopicType_TimeSeries = 18, + + /** + Topic that stores and publishes data in the form of records and fields. + + Supports delta-streams. + + @since 6.0 + */ + PTDiffusionTopicType_RecordV2 = 19, + + /** + A topic type that is unsupported by the session. + + @since 6.1 + */ + PTDiffusionTopicType_Unknown = 20, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a localized string representation of the given topic type. + + @param topicType The topic type for which a description is to be returned. + + @return localized string representation of the given topic type. + + @since 5.7 + */ +NSString* PTDiffusionTopicTypeToString(PTDiffusionTopicType topicType); + +/** + Returns the name of this topic type constant, exactly as declared in its + enum declaration in the Diffusion API for Java. + + @param topicType The topic type for which the name is to be returned. + + @return name of given topic type constant, exactly as declared in its + enum declaration. + + @since 5.9 + */ +NSString* PTDiffusionTopicTypeToName(PTDiffusionTopicType topicType); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h new file mode 100644 index 0000000..20b9b86 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h @@ -0,0 +1,108 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +/** + @file PTDiffusionTopicUnsubscriptionReason.h + + The reason that an unsubscription occurred. + + @since 5.6 + */ +typedef NS_ENUM(NSUInteger, PTDiffusionTopicUnsubscriptionReason) { + /** + Unsubscribed by the subscribing client. + + @since 5.6 + */ + PTDiffusionTopicUnsubscriptionReason_Requested = 0, + + /** + The unsubscription was requested either by another client or by the server. + + @since 5.6 + */ + PTDiffusionTopicUnsubscriptionReason_Control = 1, + + /** + The unsubscription occurred because the topic was removed. + + @since 5.6 + */ + PTDiffusionTopicUnsubscriptionReason_Removal = 2, + + /** + The unsubscription occurred because the session is no longer authorized + to access the topic. + + @since 5.9 + */ + PTDiffusionTopicUnsubscriptionReason_Authorization = 3, + + /** + A reason that is unsupported by the session. + + @since 6.1 + */ + PTDiffusionTopicUnsubscriptionReason_Unknown = 4, + + /** + The server has a significant backlog of messages f`or the session, and + the topic specification has the + {@link PTDiffusionTopicSpecification#conflationPropertyKey + conflation topic property} set to "unsubscribe". The session can + resubscribe to the topic. The unsubscription is not persisted to the + cluster. If the session fails over to a different server it will be + resubscribed to the topic. + */ + PTDiffusionTopicUnsubscriptionReason_BackPressure = 5, + + /** + The unsubscription occurred because branch mapping rules changed. + + @since 6.7 + @see PTDiffusionSessionTrees + */ + PTDiffusionTopicUnsubscriptionReason_BranchMappings = 6, + + /** + The server has re-subscribed this session to the topic. Existing streams + are unsubscribed because the topic type and other attributes may have changed. + + This can happen if a set of servers is configured to use session replication, + and a session connected to one server reconnects ("fails over") to a + different server. + + @since 5.9 + */ + PTDiffusionTopicUnsubscriptionReason_SubscriptionRefresh = 0xfffffff0, + + /** + A fallback stream has been unsubscribed due to the addition of a stream + that selects the topic. + + @since 5.9 + */ + PTDiffusionTopicUnsubscriptionReason_StreamChange = 0xfffffff1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + Returns a string representation of a topic unsubscription reason. + + @since 5.6 + */ +NSString *PTDiffusionTopicUnsubscriptionReasonToString(PTDiffusionTopicUnsubscriptionReason reason); + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h new file mode 100644 index 0000000..8115aa6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h @@ -0,0 +1,216 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Topic Update feature provides a client session with the ability to + update topics. + + Topics can be set to new values using stateless set operations or by using an + update stream. Both mechanisms ensure that new values are applied safely to + appropriate topics. + + ### Update streams + + An update stream is created for a specific topic. An update stream builder + can be obtained using the PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder + method. The type of the topic must match the type of values passed to the + update stream. An update stream can be used to send any number of updates. + It sends a sequence of updates for a specific topic to the server. If supported + by the data type, updates will be sent to the server as a stream of binary deltas. + + Update streams have additional ways of failing compared to stateless set + operations but when used repeatedly have lower overheads. This is because + update streams maintain a small amount of state that reduces the overhead of + operations but can become invalid for example, if the topic is deleted, or + some other session updates the topic value. + + By default, update streams use a form of optimistic locking. An update stream + can update its topic incrementally as long as nothing else updates the topic. + If the topic is updated independently (for example, by another session, or by + the current session via set or a different update stream), then the next update + performed by the update stream will complete with an 'invalid update stream' + error. + + Applications can choose to use collaborative locking to coordinate exclusive + access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and + use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. + The application is responsible for designing a locking scheme which determines + which lock is required to access a particular topic, and for ensuring that all + parts of the application that update the topic follow this scheme. Lock + constraints and an application locking scheme can also ensure a sequence of set + operations has exclusive access to the topic. + + ### Removing values + + When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or + PTDiffusionTopicType_Double topic is set to `nil`, the topic will be updated to + have no value. If a previous value was present subscribers will receive a + notification that the new value is `nil`. New subscribers will not receive a + value notification. + + ### Adding topics + + When setting a value using either stateless operations or update streams it is + possible to add a topic if one is not present. This is done using the 'and and + set' methods or providing a topic specification when creating the update + stream. If a topic exists these methods will update the existing topic. + + ### Time series topics + + Time series topics have a specific update protocol and are not supported by + this feature. Use PTDiffusionTimeSeriesFeature to update time series topics. + + ### Access control + + To update a topic a session needs `UPDATE_TOPIC` permission for the topic path. + To create a topic a session needs `MODIFY_TOPIC` permission for the topic path. + Requests that combine adding a topic and setting the value, such as those sent + by the 'add and set' methods, require both permissions. + + ### Accessing the feature + + The Topic Update feature for a session can be obtained from the session's + `topicUpdate` property. + + This feature is also extended by PTDiffusionTopicsFeature. This means it is + possible to use the methods described here through that feature. + + @see PTDiffusionSession + + @since 6.3 + */ + +@interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature + + +/** + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the type of the created update stream. + + @since 6.9 + */ +- (PTDiffusionUpdateStreamBuilder *)newUpdateStreamBuilder; + + +/** + Applies a JSON Patch to a JSON topic. + +

+ The `patch` argument should be formatted according to the JSON + Patch standard (RFC 6902). + +

+ Patches are a sequence of JSON Patch operations contained in an array. + They are applied as an atomic update to the previous value if the + resulting update is successfully calculated. The following patch will + check the value at a specific key and update if the expected value is + correct: +

+ + `[{"op":"test", "path":"/price", "value" : 22}, + {"op":"add", "path":"/price", "value": 23}]` + +

+ The available operations are: + +

    +
  • + Add: `{"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ]}` +
  • + Remove: `{"op": "remove", "path": "/a/b/c"}` +
  • + Replace: `{"op": "replace", "path": "/a/b/c", "value": 43}` +
  • + Move: `{"op": "move", "from": "/a/b/c", "path": "/a/b/d"}` +
  • + Copy: `{"op": "copy", "from": "/a/b/c", "path": "/a/b/e"}` +
  • + Test: `{"op": "test", "path": "/a/b/c", "value": "foo"}` +
+ +

+ The test operation checks that the CBOR representation of the value of a + topic is identical to the value provided in the patch after converting it + to CBOR. If the value is represented differently as CBOR, commonly due to + different key ordering, then the patch will return the index of the + failed operation . e.g the values + `{"foo": "bar", "count": 43}` and + `{"count": 43, "foo": "bar"}` are unequal despite semantic equality + due to the differences in a byte for byte comparison. + + @param jsonPatch the JSON Patch + + @param path the path of the topic to patch + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @see + RFC 6902: JavaScript Object Notation (JSON) Patch + + @since 6.4 + + */ +-(void)applyJsonPatch:(NSString *)jsonPatch + toPath:(NSString *)path + completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; + + +/** + + Applies a JSON Patch to a JSON topic. + +

+ Takes a constraint that must be satisfied for the update to be + applied. +

+ In other respects this method works in the same way as + applyJsonPatch:toPath:completionHandler: + + + @param jsonPatch the JSON Patch + + @param path the path of the topic to patch + + @param constraint the constraint that must be satisfied for the patch to + be applied + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @see + RFC 6902: JavaScript Object Notation (JSON) Patch + + @since 6.4 +*/ +-(void)applyJsonPatch:(NSString *)jsonPatch + toPath:(NSString *)path + withConstraint:(PTDiffusionUpdateConstraint *)constraint + completionHandler:(void (^)(PTDiffusionJSONPatchResult *result, NSError * _Nullable error))completionHandler; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h new file mode 100644 index 0000000..601f0e4 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h @@ -0,0 +1,64 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Description of a topic view that has been created. + + @see PTDiffusionTopicViewsFeature + + @since 6.3 + */ +@interface PTDiffusionTopicView : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The name of the topic view. If the name is empty, the operation will fail. + + @since 6.3 + */ +@property(nonatomic, readonly) NSString * name; + +/** + The specification of the topic view. + + @since 6.3 + */ +@property(nonatomic, readonly) NSString * specification; + +/** + The roles used by the topic view when evaluating permissions. + + @since 6.3 + */ +@property(nonatomic, readonly) NSArray * roles; + +/** + Compares the receiver to the given topic view. + + @param topicView The topic view object with which to compare the receiver. + + @return `YES` if it matches the receiver, otherwise `NO`. + + @since 6.3 + */ +-(BOOL)isEqualToTopicView:(nullable PTDiffusionTopicView *)topicView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h new file mode 100644 index 0000000..eda82c3 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h @@ -0,0 +1,1468 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2023 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +@class PTDiffusionTopicView; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief This feature allows a client session to manage topic views. + + A topic view maps one part of a server's topic tree to another. It + dynamically creates a set of reference topics from a set of + source topics, based on a declarative topic view + specification. The capabilities of topic views range from simple + mirroring of topics within the topic tree to advanced capabilities including + publication of partial values, expanding a single topic value into many + topics, changing topic values, inserting values from other topics, throttling + the rate of publication, and applying a fixed delay to the publication. + + A topic view can also map topics from another server (in a different + cluster). This capability is referred to as 'remote topic views'. The view + can specify the server that the source topics are hosted on in terms + of a remote server (see {@link PTDiffusionRemoteServersFeature} for details of how to + create and maintain remote servers). + + Each reference topic has a single source topic and has the same topic type as + its source topic. Reference topics are read-only (they cannot be updated), + nor can they be created or removed directly. Otherwise, they behave just like + standard topics. A client session can subscribe to a reference topic, and can + fetch the reference topic's current value if it has one. + + The source topics of a topic view are defined by a topic selector. One or + more reference topics are created for each source topic, according to the + topic view. If a source topic is removed, reference topics that are derived + from it will automatically be removed. If a topic is added that matches the + source topic selector of a topic view, corresponding reference topics will be + created. Removing a topic view will remove all of its reference topics. + + + ## Topic view specifications + + The following is a simple topic view specification that mirrors all topics + below the path `a` to reference topics below the path `b`. + +

+ map ?a// to b/
+ 
+ + A topic view with this specification will map a source topic at the path + `a/x/y/z` to a reference topic at the path `b/x/y/z`. + The specification is simple, so the reference topic will exactly mirror the + source topic. + + A topic view specification comprises three main parts: + +
    +
  • The mapping part which specifies the source topics to map from + and the mappings to target reference topics. +
  • Optional transformations which transform the topic value in some + way. +
  • Optional options which specify other changes that the view may + apply. +
+ + Mapping comprises: +
    +
  • The source topic clause identifying the source topics that the + view can apply to. +
  • The optional from clause which may identify a remote server that + hosts the source topics. +
  • The path mapping clause which determines how reference topic + paths are derived from the source topic paths, and when expanding to more + than one reference topic, from where the values are obtained. +
+ + Transformations can be: +
    +
  • patch transformation(s) specifying that a JSON patch is applied + to the reference topic value. +
  • process transformations that allow conditional processing and/or + calculations to be applied to the reference topic value. +
  • insert transformation(s) specifying that values from other + topics are inserted into the reference topic value. +
+ + Options can be: +
    +
  • The topic property mapping clause determines how reference topic + properties are derived from source topic properties. +
  • The value mapping clause determines how reference topic values + are derived from source topic or expanded values. +
  • The throttle clause constrains the rate at which each reference + topic is updated when its source topic is updated. +
  • The delay by clause causes a change to a view's source topic to + be delayed by a fixed time before it is reflected in reference topics. +
  • The separator clause can define a replacement path separator for + values extracted using the scalar or expand directives. +
  • The type clause can specify that the reference topic that is + created is of a different {@link PTDiffusionTopicType} from the selected source topic. +
+ + ### Mapping + #### Source topic clause + + The source topic clause begins with the `map` keyword and is followed + by a topic selector. These topic selectors follow the same parsing rules as + other topic selectors. + + When evaluating a topic view, all topics in the topic tree that match the + source topic selector are considered (excluding + {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing Routing} topics). + However, if a view specification uses some feature that can + only be applied to JSON topics then only JSON topics will be selected. + + Reference topics are valid source topics. In particular, chaining of topic + views is supported; that is, a reference topic created by one topic view can + be the source topic of another topic view. Additionally, a reference topic + can be the source topic of a routing topic subscription. + + + #### From clause + + The `from` clause optionally follows the source topic clause. It begins with + the `from` keyword and is followed by a remote server name. The name + refers to a remote server created using the {@link PTDiffusionRemoteServersFeature} + feature. + + The presence of the clause indicates that the source topics will be selected + from the specified server and not from the local server. + + Further details regarding the processing of remote topic views are given + below. + + + #### Path mapping clause + + The paths of reference topics are derived from the source topic according to + the path mapping clause. The path mapping allows the source topic path and + the value of the source topic to determine the path of the reference topic. + In addition the path mapping can include expand directives which + allow objects and arrays in JSON source topic values to be expanded to + produce many reference topics. + + A path mapping clause begins with the `to` keyword and is followed by a + path mapping template. A path mapping template is a topic path with embedded + directives. Directives are evaluated when creating the topic + reference and substituted into the topic path. Directives are delimited by + angle brackets (`<`, `>`) and consist of the name of the + directive and a list of parameters. The parameter list is comma-separated and + surrounded by parentheses (`(`, `)`). + + The following path mapping directives are supported: + + #### Source path directives + + Source path directives extract a portion of the source path and are + parameterized by the index of the start part of the source path and the + number of parts to include. The number of parts parameter is optional – if it + is missing, the selection extends to the end of the source path. The syntax + is start, number)>, or + start)> when the number of parts parameter + is omitted. + + For example, given the source path `a/b/c/d`, the source path directive + `` is mapped to the reference topic path `b/c`, and + the source path directive `` is mapped to the reference topic + path `c/d`. + + #### Source value ("scalar") directives + + Source value directives are only applied to + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} + source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} + source topics with a JSON event type; if the path + mapping contains a source value directive, topics with other topic types matching + the source topic selector are ignored. Source value directives use the keyword + `scalar` and are parameterized by a single + JSON pointer that extracts + a scalar value from the source (or current) value. A scalar value is a + string, a number, `true`, `false`, or `null`, that is, + anything other than an array or an object. If the JSON pointer does not refer + to a scalar value in the source (or current) value, no reference topic will + be created. This includes cases where the JSON pointer refers to an array or + an object), or when no part of the source value is selected. + + Deriving the reference topic paths from part of the source topic value + effectively creates a secondary index on the value. For source value + directives to work efficiently, the selected scalar values should be + relatively stable. If an update to the source topic changes the selected + scalar value, the corresponding reference topic will be removed and a new + reference topic will be created. + + For example, given a source value of + +
+ {
+     "account" : "1234",
+     "balance" : { "amount" : 12.57, "currency" : "USD" }
+ }
+ 
+ + and the source value directive + `currency/`, the + reference topic path will be `currency/USD/account/1234`. + + If the extracted value is a string, it is copied literally to the reference + topic path. A value that contains path separators (`/`) will create a + reference topic path with more levels than the path mapping template. Use the + separator directive to replace path separator with an alternative string. + + An extracted value of `null` will be copied to the reference topic path + as the string `"null"`. + + #### Expand value directives + + Expand value directives are only applied to + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} + source topics; if the path mapping contains an expand value directive, + non-JSON topics matching the source topic selector are ignored. + + Expand value directives use the keyword `expand` and are parameterized + by one or two JSON + pointers. + + The first pointer indicates the element within the value to be expanded, and + if omitted, the value is expanded from the root. Expansion of a source topic + indicates that every direct child of the element pointed to by the expand + pointer will be used to create a new reference topic (or provide input to + later expand or scalar directives). For example `` would + expand every child item in the source value and `` + would expand every child of the `account` value in the source value. + The specified value could be an object, an array or even a scalar value, but + a scalar value would expand to only a single new value. + + The optional second parameter of the expand directive specifies a pointer to + a scalar value within the expanded value which will be used to derive the + path fragment of the reference topic path. If the second pointer is not + specified or no scalar value is found for the pointer, the path fragment is + taken from the key (if the child value is an object) or the index (if the + child value is an array). Scalar child values will expand to a reference + topic but will not add anything to the generated path. For example + `expand(,/name)>` would expand from the root of the source value and + each child value path fragment would be obtained from the scalar value with + the key `name`. + + So if a source topic had a value of + +
+ {
+ "values": [1, 5, 7]
+ }
+ 
+ + a path mapping of `value` would expand the value to + the following reference topics:- +

+ path `value0` with a value of `1`
+ path `value1` with a value of `5`
+ path `value2` with a value of `7`
+

+ Expand directives can be nested (i.e. there can be more than one expand + directive in a path mapping). In this case a second expand directive will use + the value from the previous expand as its source (root) value and not the + value of the source topic. This also applies to scalar directives that follow + an expand directive. +

+ If expansion causes more than one mapping to the same topic path, only the + first encountered will be created and updated. +

+ Expanding source topic values effectively creates secondary indices on the + value. For expanded value directives to work efficiently, the value selected + for expansion should be relatively stable in terms of the children it + contains. If an update to the source topic changes the children of the + expanded value, then corresponding reference topics will be removed and + created. Updates should generally be limited to changing values within the + expanded values. + + ### Transformations + + Transformations are specified after the mapping and before any options. + Transformations can only be applied to + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} topics. + + Transformations are applied to the value extracted from the source topic in + the order specified. There can be any number of transformations interspersed + with one another and the value from one will be that which is input to the + next. The only restrictions is that all insert transformations must + occur at the end, after any others. + + A transformation is applied to the current value within a view processing + chain, so if a transformation occurs after an expand then it will be applied + to each expanded value. + + #### Process transformations + + Process transformations may be used to apply conditional processing to a + value (optionally determining whether a reference topic is created) and/or + change the value in some way (for example, by applying some calculation to a + field within the value). + + The format of a process transformation is: +

+ process {statement}
+ 
+ + Where the statement can be: +
    +
  • Operations(s).
    + One or more operations separated by ';'. +
  • A conditional statement.
    + Comprising one or more conditions with operations to perform if they are + satisfied. +
+ + For example, the following topic view specification could be used to write a + field into the value of the reference topic: + +
+ map ?a// to b/ process {set(/Name, 'John')};
+ 
+ + The following example shows a simple conditional statement which would only + generate reference topics if the value of field /Price was + greater than 50: + +
+ map ?a// to b/ process {if '/Price gt 50' continue};
+ 
+ + And the following shows a more complex statement which would set a field + according to the value of the input field /Price: + +
+ map ?a// to b/ process {if '/Price lt 50' set(/Tier, 1) elseif '/Price gt 50' set(/Tier, 2)};
+ 
+ +
+
+ Process operations +
+ +
+ The following operations are supported: + + + + + + + + + + + + + + + + + + + + + + +
+ Operation + + Description +
+ set(pointer, value) + + Sets the field indicated by the JSON pointer to an absolute value. + If the field does not exist it will be created. + The value can be an integer (e.g. 123), a String (e.g. 'XYZ'), + or a boolean (e.g. true or false). + + For example: + +
set(/Name, 'John')
+ + If a hierarchic pointer is specified, the parent object or array must exist. +
+ set(pointer, calc calculation) + + Sets the field indicated by the JSON pointer to a value which is the + result of the specified calculation. If the field does not exist it + will be created. The calculation can include fields within the input value. + The calculation is specified as a quoted string. See below for a detailed + description of calculations. + + For example: + +
set(/DoubleValue, calc '/Value * 2')
+ + If a hierarchic pointer is specified, the parent object or array must exist. +
+ remove(pointer) + + Removes the JSON item at the specified pointer. + Unlike JSON patch, if the item does not exist the operation does not fail. +
+ continue + + This is a special operation that indicates that the topic view evaluation + should continue with the value as it is. This is only for use with conditional + statements as the default behaviour of a conditional statement is not to + proceed if no condition is satisfied. +
+ + Operations can be chained by separating them with a ';' as shown in the example below: + +
+         set(/Amount, calc '/Value * /Number'); remove(/Value); remove(/Number)
+         
+ + In this case the operations are all performed on the original value, creating + a chain of deltas which are only applied to the original value at the end. If + the 'set' operation fails no reference topic would be generated, however, + processing will continue if the fields specified in the 'remove's are not + present. +
+ +
+ Process calculations +
+ +
+ A calculation may be specified as the value of a set operation. A + calculation is a simple arithmetic calculation upon integer fields. If + applied to a non integer field the evaluation will not proceed. Floating + point calculations are not supported. + + Arithmetic operators supported are `+`, `-`, `*` and `/`. + + Examples of calculations are: + +
+         set(/Value, calc '/Value * 2')
+         set(/Result, calc '/Value / 2')
+         set(/Bonus, calc '/Salary + 1000')
+         set(/Bonus, calc '/Salary + 1000 + /Age * 10')
+         
+ + Standard operator precedence is applied, so in the last example above we have + `(/Salary + 1000 + (/Age * 10))` not `((/Salary + 1000 + /Age) * 10)`. + Brackets may be used to override this. +
+ +
+ Process conditional statements +
+ +
+ A conditional statement is made up of an if clause, optionally + followed by one or more elseif clauses and an optional final else + clause. + + The if clause takes the form: + +
+         if 
+         
+ + Where the condition is a quoted string as described in detail below + and the operation(s) is as described previously. If the condition is + satisfied, the operations are applied to the value and the process is complete. + If the condition is not satisfied, processing moves on to any + elseif or else clauses that follow, but if there are none, the + topic view evaluation does not proceed and no reference topic is created. + + An elseif (else if) clause takes the form: + +
+            elseif condition operation(s)
+         
+ + If the condition is satisfied, the operations are applied to the value and + the process is complete. If the condition is not satisfied, processing moves + on to any elseif or else clauses that follow, but if there are + none, the topic view evaluation does not proceed and no reference topic is + created. Note that elseif cab be abbreviated to elsf. + + An else clause takes the form: + +
+            else operation(s)
+         
+ + And will only be reached if no previous if or elseif conditions + were satisfied. If reached then the operations are applied to the value and + the topic view evaluation proceeds. The continue operation may be used + to proceed with an unchanged value. +
+ +
+ Process conditions +
+ +
+ A condition is of the form: + +
+         pointer operator constant
+         
+ + Where pointer is a JSON pointer, operator is a relational + operator and constant is a string, integer, or a boolean value. + + For example: + +
+         /Age > 40
+         /Name = 'Bill'
+         /Manager eq true
+         
+ + Operators allowed are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperatorVariantDescriptionSupported JSON types
=eqEqualsAll
>gtGreater thanInteger only
<ltLess thanInteger only
!=neNot equalsAll
>=geGreater than or equalInteger only
<=leLess than or equalInteger only
+ + Compound conditions are supported by means of boolean operators: + `|` or `or` + `&` or `and` + + For example: + +
+         /Age = 50 ot /Age > 80
+         /Age gt 50 & /Department eq 'Accounts'
+         
+ + Normal boolean precedence applies but brackets can be used to control + precedence. For example: + +
+         (/Age > 50 or /Department eq 'Accounts`) and /Band > 3
+         
+ + Boolean 'not' is also allowed: + +
+         not (/Age < 65 or Retired eq false)
+         
+
+
+ + #### Patch Transformations + + Patch transformations indicate that a JSON patch is to applied to the + value. + + The format of a patch clause is: + +
+ patch 'patch string'
+ 
+ + The patch string should be formatted according to the JSON Patch standard + (see RFC 6902: JavaScript + Object Notation (JSON) Patch). + + Patches are a sequence of JSON Patch operations contained in an array. They + are applied as an atomic update to the previous value if the resulting update + is successfully calculated. The following patch will check the value at a + specific key and update if the expected value is correct: + +
+ [{"op": "test", "path": "/price", "value": 22},
+  {"op": "add", "path": "/price", "value": 23}]
+ 
+ + The available operations are: +
    +
  • Add: {"op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } +
  • Remove: {"op": "remove", "path": "/a/b/c" } +
  • Replace: {"op": "replace", "path": "/a/b/c", "value": 43 } +
  • Move: {"op": "move", "from": "/a/b/c", "path": "/a/b/d" } +
  • Copy: {"op": "copy", "from": "/a/b/c", "path": "/a/b/e" } +
  • Test: {"op": "test", "path": "/a/b/c", "value": "foo" } +
+ + The test operation checks that the CBOR representation of the value of a + topic is identical to the value provided in the patch after converting it to + CBOR. If the value is represented differently as CBOR, commonly due to + different key ordering, then the patch will return the index of the failed + operation. e.g the values {"foo": "bar", "count": 43} and + {"count": 43, "foo": "bar"} are unequal despite semantic equality + due to the differences in a byte for byte comparison. + + The following patch clause would add the 'price' field and remove the 'name' + field from an input JSON object. + +
+ patch '[{"op": "add", "path": "/price", "value": 22},
+         {"op": "remove", "path": "/name"}]'
+ 
+ + Patches can only be applied to JSON arrays or objects and if they fail to + apply, no resulting reference topic will be created by the view. If an update + patch fails, any previously created reference topic would be removed. + + + #### Insert transformations + + Insert transformations are used to insert a value from another topic into the + current value. + + The name of the topic to insert from can be specified in a similar way to the + path mapping in that constants, path directives, and scalar directives (but + not expand directives) may be used. + + The value from the insertion topic (if found) is inserted into the 'current' + value at a specified key position. The current value may be the source topic + value, the value output from expand directives (in which case the insertion + applies to each value), or the value from a previous transformation. + Insertion topics may be type {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_String String}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 Int64}, + or {@link PTDiffusionTopicType#PTDiffusionTopicType_Double Double}. + + If, when evaluating a topic view, the insertion topic is not found (or the + specified key within it is not found), or it is of an unsupported topic type, + an optional default value may be inserted, but if no default is specified + then no insertion takes place and the value is passed to the derived + reference topic unchanged. + + The values of the insertion topics are only taken at the point when the + source topic is evaluated against the topic view (i.e. when the source topic + is updated). Changes to the value of the insertion topic that occur in the + interim are not applied to the derived reference topics. + + The format of an insert transformation is + +
+ insert path [key fromKey] at insertionKey
+ [default defaultValue]
+ 
+ + The path is specified in exactly the same way as for the path mapping + clause, except it may not contain expand directives. path directives + operate on the path of the source topic, whereas scalar directives + operate on the 'current' value as defined previously. + + key is optional and can specify a fromKey which is a JSON + pointer indicating the data within the insertion topic that is to be + inserted. If no key is specified then the whole of the insertion topic value + is inserted. + + at specifies the insertionKey which is a JSON pointer + indicating where to insert the insertion topic value. If a value already + exists at the specified key then it is replaced otherwise it is inserted. + Insertion can only occur if the parent of the key exists in the value and is + of a compatible type. Array pointers may only be used to replace existing + entries or append one greater than the last entry. The special pointer value + /- may be used to append to the end of an existing array. + + default is optional and may be used to specify a string + defaultValue to be inserted if the insertion topic does not exist, it + is of an unsupported topic type, or the specified key within it could not be + found. + + The following insert transformation would cause the whole value of the topic + named AnyTopic to be inserted into the current value at key /T, assuming that + the current value is an object. + +
+ insert AnyTopic at /T
+ 
+ + The following insert transformation would cause the whole value of the topic + named AnyTopic to be inserted into the current value at key /T/MyKey, + assuming that an object with the key T exists in the current value. + +
+ insert AnyTopic at /T/MyKey
+ 
+ + The following insert transformation would cause the whole value of the topic + named AnyTopic to be appended to the array at the key T in the current value. + +
+ insert AnyTopic at /T/-
+ 
+ + The following insert transformation would cause the value at the key name + within the topic named AnyTopic to be appended to the array at the key T in + the current value. + +
+ insert AnyTopic key /name at /T/-
+ 
+ + In the above examples no insertion would take place if the insertion value + was not found, but a default value can be specified to insert into the + current value in this case. + +
+ insert AnyTopic at /T/- default "unknown"
+ 
+ + The path of the topic to insert from can be built from parts of the source + topic path and/or scalar values within the current value. For example: + +
+ insert AC// at /T
+ 
+ + ### Options + + Options are specified after the mapping and any transformations. Any number + of options may be specified but any particular option may only be specified + once. + + #### Topic property mapping + + The {@link PTDiffusionTopicSpecification topic specification} of a reference topic is + derived from the topic specification of the source topics. A reference topic + has the same topic type as its source topic. + + The topic properties of a reference topic are derived from the source topic. + Some topic properties can be tuned using the topic property mapping option. + The following table describes the behavior for each topic property. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Source topic propertyReference topic specification defaultCan be set by topic property mapping?Notes
`compressionPropertyKey`Copied from source topic specificationYes
`conflationPropertyKey`Copied from source topic specificationYes
`dontRetainValuePropertyKey`Copied from source topic specificationYes
`ownerPropertyKey`Not setNo
`persistentPropertyKey`Not setNoReference topics are not persisted. Topic views are persisted, so a + reference topic will be recreated on server restart if its source is + persistent.
`priorityPropertyKey`Copied from source topic specificationYes
`publishValuesOnlyPropertyKey`Copied from source topic specificationYes
`removalPropertyKey`Not setNoReference topics cannot be removed directly.
`schemaPropertyKey`Copied from source topic specificationNoA recordV2 reference topic has the same + schema as its source topic.
`tidyOnSubscribePropertyKey`Copied from source topic specificationYes
`timeSeriesEventValueTypePropertyKey`Copied from source topic specificationNoA time series reference topic has the same + value type as its source topic.
`timeSeriesRetainedRangePropertyKey`Copied from source topic specificationYes, with restrictionsA topic property mapping cannot increase the time series retained range + by overriding the `TIME_SERIES_RETAINED_RANGE` property. The retained + range of a reference time series topic will be constrained to be no greater + than that of its source topic.
`timeSeriesSubscriptionRangePropertyKey`Copied from source topic specificationYes
`validateValuesPropertyKey`Not setNoA reference topic reflects updates to its source topic. It cannot reject + updates.
+ + A topic property option begins with the keywords `with properties` and + consists of a comma-separated list of topic property keys and values, each + separated by a colon. For example, the following topic view specification + maps all topics below the path `a` to reference topics below the + path `b`, and disables both conflation and compression for the + reference topics. + +
+ map ?a// to b/ with properties CONFLATION:off, COMPRESSION:false
+ 
+ + #### Topic value option + + By default, a reference topic's value is a copy of the source topic value, or + part of the source value produced by an expand path mapping directive and/or + modified by transformations. For {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} source topics or {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries Time Series} source topics with a JSON event + type, the value option can be applied to extract part of the resulting value + (the latest value in the case of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries time series} topics). + + A topic value option begins with the keyword `as` and is followed by a + value directive. A value directive is delimited by angle brackets (`<`, + `>`), and consists of the `value` keywords and a single JSON + pointer parameter. The JSON pointer selects the part of the current value to + copy. + + For example, given a current value of: + +
+ {
+     "account" : "1234",
+     "balance" : { "amount" : 12.57, "currency" : "USD" }
+ }
+ 
+ + and the value option `as `, the reference topic value + will be: + +
+ {
+     "amount" : 12.57,
+     "currency" : "USD"
+ }
+ 
+ + Value mappings that follow expand directives and/or transformations apply to + the current derived value and not the source topic value. + + Topic value mappings only alter the reference topic value; only the path + mapping determines whether a reference topic should exist. If the topic value + mapping's JSON pointer fails to select anything from the source topic value, + the reference topic will have the JSON value `null`. + + Topic value mappings are often used with path value mappings to avoid repeating + information in the path and the value. For example: + +
+ map ?accounts// to balances/ as 
+ 
+ + #### Throttle options + + The throttle option can be used to constrain the rate at which a reference + topic is updated when its source topic is updated. The primary application of + a throttle option is to restrict the number of updates sent to reference + topic subscribers, reducing network utilization or the processing each + subscriber must do. Throttling also restricts the rate at which client + sessions can observe changes to reference topic values using the fetch API. + + The throttle option has the form + throttle to X updates every period, where + X is a positive integer, and period is a positive integer + followed by a time unit which is one of `seconds`, + `minutes`, or `hours`. + + For example, the following topic view specification maps all topics below the + path `a` to reference topics below the path `b`, but + updates the value of each reference topic at most twice every five seconds: + +
+ map ?a// to b/ throttle to 2 updates every 5 seconds
+ 
+ + To improve readability, the throttle option allows `1 update` as + an alternative to `1 updates`, and `every second` as an + alternative to `every 1 seconds` (and so on, for other time + units). For example, the following topic view specification maps all topics + below the path `a` to reference topics below the path + `b`, but updates the value of each reference topic at most once + every hour: + +
+ map ?a// to b/ throttle to 1 update every minute
+ 
+ + The throttle option is only applied when a source topic is updated more + frequently than the configured rate. If a source topic is updated less + frequently, updates are passed on unconstrained. If the rate is exceeded, a + reference topic will not be updated again until the configured period has + expired. At this time, the reference topic will be updated based on the + source topic updates that happened in the interim, and a single value will be + published. Thus, the throttle option provides topic-scoped + conflation. + + The throttle option is ignored for time series topics because time series + updates do not support efficient conflation. Updates to source time series + topics are passed on immediately to the corresponding reference topics, + regardless of any throttle clause. + + #### Delay option + + The delay option causes a change to a view's source topic to be delayed by a + fixed time before it is reflected in reference topics. Topic additions, + updates, and removals are all delayed. Delays can range from one second to + many days​. + + Such a publication delay is a useful way to devalue topic data so it can be + given away to non-paying users​. + + The delay option has the form delay by duration, where + duration is a positive integer followed by a time unit which is one + of seconds, minutes, or hours. + + For example, the following topic view specification maps all topics below the + path a to reference topics below the path b, but + changes to a source topic are delayed by five minutes before they are + reflected in the corresponding reference topic. + +
+ map ?a// to b/ delay by 5 minutes
+ 
+ + Views with the delay option specified initially create reference topics in an + unpublished state. The topics are published once the delay time has expired. + A topic in the unpublished state prevents a lower priority topic view from + creating a reference topic with the same path. Sessions with the rights to + read the source topic can browse unpublished topics using the + {@link PTDiffusionFetchRequest#withUnpublishedDelayedTopics withUnpublishedDelayedTopics} fetch request option. + + #### Separator option + + Views can use the scalar and expand directives in path mappings to extract + text from the source value. By default, any `/` characters in the text + are interpreted as path separators and will introduce extra levels in + reference topic paths. If this is undesirable, the separator option can be + used to replace any `/` characters produced by the scalar and expand + directives with a constant string. The replacement can contain path + separators but must have no empty path segments (`//`). + + Here is an example replacing all path separators with an alternate character: + +
+ map ?a/path/ to b/ separator '\%'
+ 
+ + If the value at `/x/y` in the source topic was `foo/bar`, this would cause the + reference topic to be created at /b/foo\%bar instead of + /b/foo/bar + + #### Preserve topics option + + The default behavior for a topic view is that only the reference topics that + can be derived from the current value of the source topic are maintained. + This applies to views using directives that derive the path of the reference + topic(s) from a value within the source topic (e.g. scalar or expand). For + example if a view uses a scalar directive to determine the path of the + reference topic and the source topic is updated such that the selected scalar + value changes then the previously created reference topic will be removed and + a new one created. Similarly an expand directive may create many reference + topics from the source value but if the source is updated then only those + reference topics that still have a corresponding value within the source + value will be updated (or new ones added if not in the previous value), + whilst others will be removed. + + There are situations where an application may not want reference topics to be + removed because of source value changes. In such cases the 'preserve topics' + option may be used to indicate that all reference topics created by a view + should be retained (and updated by later updates that apply to it) until + either the source topic or the creating view are removed. + + For example: +
+ map ?a/path/ to b/ preserve topics
+ 
+ + #### Topic type option + + The 'type' option can be used to specify the {@link PTDiffusionTopicType} of the target + reference topic. If the current source value of type indicated by the source + topic's type can be converted to the target type, a reference topic of the + specified type will be created. + + For example: +
+ map ?a/ to b/ type STRING
+ 
+ + The specified type must be one of the supported target types + {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}, + {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} or + {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}, + case insensitive. + + The following table describes the supported conversions from the source topic + type (the left column) to the supported target types. The number in brackets + indicates a note at the foot of the table describing exactly how the + conversion is processed. Where there is no number, no conversion is necessary + and the derived source value is simply mapped to the target reference topic + as if the type options was not specified. Where there is no entry for the + source topic type in the left column, no conversion is supported and topics + of unsupported types will not be processed by the topic view. An x + indicates that the conversion is not supported. + + In all cases the value being processed will be the current value as derived + from other mappings with the topic view (e.g. `expand`) which is not + necessarily the value of the source topic. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Source topic{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}
{@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING}(1)(1)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64}(4)(5)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE}(4)(6)(2)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON}(7)(7)(7)(3)x
{@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}(8)(8)(8)(8)(9)
{@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY}xxxx(9)
+ + Conversion notes: +
    +
  1. {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} + to number conversions will only occur if + the value of the string can be converted to the target number type. If the + string cannot be converted then no reference topic will be created. +
  2. Primitive types to {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} + will result in a JSON topic containing just the scalar value. +
  3. Conversions to {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} + will result in a time series topic with an event type matching the source topic. + Every update to the source topic will result in a new value being appended to the + reference time series topic. It is not possible to convert to a time series + topic with a different event type from the source topic. +
  4. Conversions from number types to + {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} will result in a + simple string representation of the number in the reference topic value. +
  5. {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} to + {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} + conversions perform a simple conversion. For example, `123` becomes `123.0`. +
  6. {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} to + {@link PTDiffusionTopicType#PTDiffusionTopicType_Int64 INT64} + conversions perform rounding to the nearest integer value. For example, `12.51` + becomes `13`. +
  7. {@link PTDiffusionTopicType#PTDiffusionTopicType_JSON JSON} to primitive + type conversions only occur if the JSON value is a scalar which can be read + as a string and converted to the target type. Currently, only string and + integer scalar values can be read as + a string (i.e. not doubles). The string representation of the value will be + converted in the same way as specified for + {@link PTDiffusionTopicType#PTDiffusionTopicType_String STRING} to other + primitive types. If the JSON value is a structure or cannot be converted + then no conversion takes place and no reference topic will be created. +
  8. The conversion of {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES} + to other types follows the same rules as for conversion from the source + topic type that matches the source time series topic's event value type. + So if the time series event type is `double` then the conversion rules from + source topic type {@link PTDiffusionTopicType#PTDiffusionTopicType_Double DOUBLE} + to the target type will apply. Each value appended to the source time series + topic will result in an update to the reference topic. If a failure to convert + occurs at any point then the reference topic would be removed and only recreated + if a value is appended that can be converted. +
  9. {@link PTDiffusionTopicType#PTDiffusionTopicType_Binary BINARY} to + {@link PTDiffusionTopicType#PTDiffusionTopicType_TimeSeries TIME_SERIES}, + and vice-versa is supported in the same way as for other time series conversions. +
+ + ### Escaping and quoting special characters + + Each part of a topic view expression has characters with special + significance. Source topic clauses and path mapping clauses are delimited by + white space. Directives in path and topic property mapping clauses are + delimited by the `<` and `>` characters, and each directive + parameter is terminated by `,` or `)`. Topic property mapping + clauses are delimited by white space, and the `:` and `,` + characters. + + Sometimes a topic view must refer to or generate topics with paths that + containing special characters, or use a JSON pointer containing special + characters. The escape sequence `\x` can be used to literally insert + any character `x`, with a one exception: `\/` cannot be used in + path fragments since the path delimiter `/` is always significant. + + Here is an example topic view expression containing escape sequences. It maps + the topic path `a topic` a reference topic with the path + `another topic`. + +
+ map a\ topic to another\ topic
+ 
+ + Here is an example with a source value directive that uses the JSON pointer + `/x()/y` to extract the target path from the source value. The + `)` character in the JSON pointer must be escaped so it is not treated + as the end of the parameter list. + +
+ map ?a// to 
+ 
+ + To insert `\`, the escape sequence `\\` must be used. + + There is no need to escape white space in JSON pointers directive parameters. + However, white space is significant. For example, the following expressions + have different topic value mapping clauses since the JSON pointer in the + second expression is `"/x "`; that is, it has a trailing space: + +
+ map a to b as 
+ map a to b as 
+ 
+ + Instead of using escape sequences, white space characters can be included in + source topic clauses and path mapping clauses using quotes. A clause is + quoted by wrapping it in single quote (`'`) or double quote (`"`) + characters. For example: + +
+ map "a topic" to "another topic"
+ 
+ + Within a quoted clause, quotes of the same type must be escaped: + +
+ map 'alice\'s topic' to 'bob\'s topic'
+ 
+ + For consistency, the values in topic property mapping clauses can be escaped + or quoted. However, there is no need to do so because none of the valid + values for the mappable properties contain special characters. + + ## Dealing with topic path conflicts + + Reference topics have a lower priority than normal topics created through the + API, including replicas of normal topics created by topic replication or + fan-out. A reference topic will only be created if no topic or reference topic + is already bound to its derived topic path. + + Topic views have a precedence based on order of creation. If two topic views + define mappings the same topic path, the earliest-created topic view will + create a reference topic. If a topic view is updated, it retains its original + precedence. + + ## Remote topic views + + A remote topic view is one that specifies another server as the location of + the source topics using the from clause as shown in the example + below: + +
+ map ?a// from server1 to b/
+ 
+ + The server name `server1` in this example refers to the name of a + remote server created. + + In this case, upon establishing a successful connection with the remote + server indicated the topic view will create reference topics locally based + upon the topics selected by the topic view's selector at the remote server. + It is important to note that the selector only refers to topics that + match it at the remote server and not on the local server and there is no + reason why there could not be a source topic at the remote server that has + the same path as an entirely different topic on the local server. + + More than one topic view can specify the same remote server. + + A remote server only makes a physical connection when it is in use, therefore + the first topic view that specifies a remote server will cause it to + establish a connection. Similarly, if the last topic view that uses a remote + server is removed then the connection will be closed. + + It is not necessary for the named remote server definition to exist before + creating the topic view, as if it does not then the topic view will simply + remain dormant until the remote server is created and a successful connection + to the server specified in its URL is established. Similarly, if a remote + server that is in use by remote topic views is removed then all of the + reference topics created by the topic views will be removed and the topic + views will become dormant until the named remote server is created again or + the views are changed to name a different remote server. + + If a remote topic view selects a + {@link PTDiffusionTopicType#PTDiffusionTopicType_Routing routing} topic at + the remote server then local mappings will only be performed if the routing + topic mapping at the remote server is able to establish a mapping for the + remote server connection. The mapping will be done as if from the resolved + routing topic. + + The rules of precedence for remote topic views are the same as for other topic + views. If the remote server for a remote topic view does not exist or does + not have an established connection then the remote topic view is not evaluated + (i.e. it is as if the source topics for the view did not exist), but if the + remote server later connects then the view will be evaluated and rules of + precedence will determine whether reference topic will replace those created + by earlier views. + + ## Topic view persistence and replication + + Reference topics are neither replicated nor persisted. They are created and + removed based on their source topics. However, topic views are replicated and + persisted. A server that restarts will restore topic views during recovery. + Each topic view will then create reference topics based on the source topics + that have been recovered. + + The server records all changes to topic views in a persistent store. Topic + views are restored if the server is started. + + If a server belongs to a cluster, topic views (and remote servers) will be + replicated to each server in the cluster. Topic views are evaluated locally + within a server. Replicated topic views that select non-replicated source + topics can create different reference topics on each server in the cluster. + When remote topic views are in use, each server in the cluster will make a + connection to the specified remote server and will separately manage their + remote topic views. + + A view with a delay clause uses temporary storage to record delayed events. + If there is a high volume of updates, temporary per-server disk files will be + used to save server memory​. The storage is per-server, and does not survive + server restart. When a server is started, no data will be published by a view + with a delay clause until the delay time has expired. + + ## Access control + + To list the topic views a session needs {@link PTDiffusionGlobalPermission#readTopicViews readTopicViews} + permission. + To create or remove a topic view a session needs + {@link PTDiffusionGlobalPermission#modifyTopicViews modifyTopicViews} + permission, {@link PTDiffusionPathPermission#selectTopic selectTopic} permission for the prefix of + the source topic selector and {@link PTDiffusionPathPermission#modifyTopic modifyTopic} permission + for the prefix of the path mapping. + + ## Accessing the feature + + The Topic Views feature for a session can be obtained from the session's + {@link PTDiffusionSession#topicViews topicViews} property. + + @see PTDiffusionSession + + @since 6.3 + */ +@interface PTDiffusionTopicViewsFeature : PTDiffusionFeature + +/** + Create a new named topic view. + + If a view with the same name already exists the new view will update the + existing view. + + @param name The name of the view. + + @param specification The specification of the view using the DSL. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @param view the created topic view if the operation was successful. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void)createTopicViewWithName:(NSString *)name + specification:(NSString *)specification + completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; + +/** + List all the topic views that have been created. + + @param 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 `views` will contain a list of views sorted by their + creation order. The completion handler will be called asynchronously on the + main dispatch queue. + + @param views the topic views that have been created if the operation was successful. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(void)listTopicViewsWithCompletionHandler:(void (^)(NSArray * _Nullable views, NSError * _Nullable error))completionHandler; + +/** + Remove a named topic view if it exists. + + If the named view does not exist then the operation is considered successful + and the completion handler is called accordingly. + + @param name The name of the view. + + @param 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`. The completion handler will be called asynchronously on + the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(void)removeTopicViewWithName:(NSString *)name + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + + +/** + Get a named Topic View. + + @param name the name of the view. + + @param 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 `view` will contain the named view if it exists. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.8 + */ +-(void)getTopicViewWithName:(NSString *)name + completionHandler:(void (^)(PTDiffusionTopicView * _Nullable view, NSError * _Nullable error))completionHandler; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h new file mode 100644 index 0000000..54f156d --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h @@ -0,0 +1,490 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import +#import + +@class PTDiffusionFetchRequest; +@class PTDiffusionStream; +@class PTDiffusionTopicSelector; +@class PTDiffusionValueStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The Topics feature provides a client session with the capability to receive streamed + topic updates and/or fetch the state of topics. + + This feature allows a client session to subscribe to topics to receive + streamed topic updates, fetch the state of topics and/or update topics with + new values. + + Specifically, the feature provides the ability to: +
    +
  • Subscribe to topics and specify streams to receive updates; +
  • Fetch the current state of topics (even if not subscribed); +
  • By extending the topic update feature, update topics with new values; +
  • By extending the topic views feature, manage topic views. +
+ + ###Subscription and unsubscription + + A session can issue requests to subscribe to topics at any time, even if the + topics do not exist at the server. Each subscription request provides a + topic selector that is evaluated by the server to + select matching topics. The session will be subscribed to any topics that + match the selector unless they are already subscribed, or the session has + insufficient permission. The subscription request is also retained at the + server and the session will be automatically subscribed to newly created + topics that match the selector (unless a subsequent unsubscription cancels + the request). + + Sessions receive notifications from topics that they are subscribed to via + subscription streams (see below). When a session is subscribed to a + topic, all matching streams will first receive a subscription notification + that provides details about the topic. If the server has a value for the + topic, the value will be delivered to the streams before any other + notifications. + + A session can unsubscribe from topics at any time. This is also specified + using a topic selector. On unsubscription, matching streams are notified via + the `#PTDiffusionTopicUnsubscriptionReason` notification. This notification will give the + reason for unsubscription (for example, by request of the session, request of + the server, or topic removal). + + Subscriptions and unsubscriptions can occur for reasons other than requests + from the session. A session can be subscribed to or unsubscribed from a topic + by another session using the `PTDiffusionSubscriptionControlFeature`. The removal + of a topic also automatically causes unsubscription for subscribed sessions. + + Subscription requests are subject to authorization checks. The session must + have `PTDiffusionPathPermission#selectTopic` permission for the + topic selector used to subscribe. Matching topics will be further filtered to + those for which the session has `PTDiffusionPathPermission#readTopic` + permission. + + ###Subscription streams + + A session can listen to subscription events and updates for a selection of + topics by adding one or more streams. A stream is registered using a topic + selector which specifies the topics that the stream applies to. When an + update is received for a topic then it will be routed to every stream that + matches both the topic selector and the stream's value type. If more than one + stream matches, all will receive the update; the order in which they are + notified is not defined. + + A stream can be added several times for different selectors. If the same + stream is registered for + several selectors that match an event, the stream will only be notified of + the event once. The mapping of topic selectors to streams is maintained + locally in the client process. + + It is also possible to add one or more fallback streams which will + receive updates that do not match any stream registered with a selector. This + is useful for default processing or simply to catch unprocessed updates. A + fallback stream can be added using `PTDiffusionTopicsFeature#addFallbackStream:error:`. + Zero, one, or more fallback streams may be assigned. If + no fallback stream is specified, any updates that are not routed to any other + stream will simply be discarded. + + If the session is already subscribed to a topic when a matching stream is + added, the stream will immediately receive a subscription notification. For + most topic types, the latest value is locally cached and will be provided to + the stream following the subscription notification. + + A stream will receive a `PTDiffusionStreamDelegate#diffusionDidCloseStream:` + callback when unregistered and a `PTDiffusionStreamDelegate#diffusionStream:didFailWithError:` + callback if the session is closed. + + ###Value streams + + A `PTDiffusionValueStream` receives values for matching topics as and + when updates are received from the server. Delta updates received from the + server are automatically applied to locally cached values so that the stream + always receives full values for each update. + + Value streams are typed to a specified value class and only updates for + compatible topics will be routed to the stream. The following table shows how + the value class maps to compatible topic types that will be routed to the + stream: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value ClassCompatible Topic Types
JSONJSON STRING + INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING + INT64 DOUBLE + BINARY RECORD_V2
RecordV2RECORD_V2
+ + Value stream implementations can be added using + `PTDiffusionTopicsFeature#addStream:withSelector:error`. + + A value stream can be added to received updates from time + series topics. The following table shows how the value class specified + when adding the stream maps to the event value class of time series topics + that will be routed to the stream: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Event Value ClassTime Series Event Value Class
JSONJSON STRING + INT64 DOUBLE
StringSTRING
LongINT64
DoubleDOUBLE
BinaryBINARY
BytesJSON STRING + INT64 DOUBLE + BINARY RECORD_V2
RecordV2RECORD_V2
+ + ###Fetch + + A session can issue a request to fetch details of a topic or topics (subject + to authorization) at any time. The topics required are specified using a + topic selector. + + The results of a fetch will return the topic path and type of each selected + topic. The results may also optionally return the topic values and/or + properties. + + A new request can be created using `PTDiffusionTopicsFeature.fetchRequest` and modified to + specify additional requirements of the fetch operation. The request is issued + to the server using the `PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler:]` + method on the request. This will return the results via a `completionHandler`. + + ###Access control + + A session must have `PTDiffusionPathPermission.selectTopic` + permission for the path prefix of the topic selector used to + subscribe or fetch. + The topics that result from a subscription or fetch request are further + filtered using the `PTDiffusionPathPermission.readTopic` permission. + + No access control restrictions are applied to unsubscription. + + ###Accessing the feature + + This feature can be obtained from a `PTDiffusionSession` as follows: + +
+    PTDiffusionTopicsFeature *topics = session.topics;
+ 
+ + @see PTDiffusionSession + + @since 5.6 + */ +@interface PTDiffusionTopicsFeature : PTDiffusionTopicUpdateFeature + +/** + Request subscription to topics. + + The session will become subscribed to each existing topic matching + the selector unless the session is already subscribed to the topic, + or the session does not have `READ_TOPIC` permission for the topic + path. For each topic to which the session becomes subscribed, a + subscription notification and initial value (if any) will be + delivered to registered value streams before the completion handler + is called. + + The subscription request is also retained at the server and the session + will be automatically subscribed to newly created topics that match the + selector (unless a subsequent unsubscription cancels the request). + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 5.6 + */ +-(void)subscribeWithTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + Request unsubscription from topics. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated by the server. + + @param 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`. + The completion handler will be called asynchronously on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 5.6 + */ +-(void)unsubscribeFromTopicSelectorExpression:(NSString *)expression + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +/** + When a matching update is received from the server for a topic, it will be + passed on to all value streams that have been added with matching selectors. + If no value stream is registered with a matching selector, the fallback value + streams that have been registered using this method will be called instead. + + Zero, one, or many fallback value streams can be set. + If there is no fallback value stream, updates that match no other will be + discarded. + + @param stream Handler of value stream events not handled by an explicitly + registered topic selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @exception NSInvalidArgumentException Raised if the supplied `stream` argument + is `nil`. + + @since 5.9 + + @deprecated since 6.5 Use `addFallBackStream:error:` + */ +-(void)addFallbackStream:(PTDiffusionValueStream *)stream +__deprecated_msg("Will be removed in a future release."); + +/** + When a matching update is received from the server for a topic, it will be + passed on to all value streams that have been added with matching selectors. + If no value stream is registered with a matching selector, the fallback value + streams that have been registered using this method will be called instead. + + Zero, one, or many fallback value streams can be set. + If there is no fallback value stream, updates that match no other will be + discarded. + + @param stream Handler of value stream events not handled by an explicitly + registered topic selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param error May be 'nil'. Is supplied then will contain reason on failure. + + @return YES if stream was successfully added + + @exception NSInvalidArgumentException Raised if the supplied `stream` argument + is `nil`. + + @since 6.5 + */ +-(BOOL)addFallbackStream:(PTDiffusionValueStream *)stream + error:(NSError **)error; + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector. + + When a value update is received from the server, it will be passed to all + streams that have been added with matching selectors. + If there is more than one match, the order in which the streams are called is + not defined. + If there is no matching stream, the fallback stream(s) will be called instead. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 5.9 + + @deprecated since 6.5 Use `addStream:withSelector:error:` + */ +-(void)addStream:(PTDiffusionValueStream *)stream + withSelector:(PTDiffusionTopicSelector *)selector +__deprecated_msg("Will be removed in a future release."); + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector. + + When a value update is received from the server, it will be passed to all + streams that have been added with matching selectors. + If there is more than one match, the order in which the streams are called is + not defined. + If there is no matching stream, the fallback stream(s) will be called instead. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param selector The @ref md_topic_selectors "topic selector" to be evaluated locally. + + @param error May be 'nil'. Is supplied then will contain reason on failure. + + @return YES if stream was successfully added + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(BOOL)addStream:(PTDiffusionValueStream *)stream + withSelector:(PTDiffusionTopicSelector *)selector + error:(NSError **)error; + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector expression. + + This convenience method calls addStream:withSelector: having constructed a + PTDiffusionTopicSelector instance using the given expression. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated locally. + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.0 + + @deprecated since 6.5 Use `addStream:withSelectorExpression:error:` + */ +-(void) addStream:(PTDiffusionValueStream *)stream + withSelectorExpression:(NSString *)expression +__deprecated_msg("Will be removed in a future release."); + +/** + Add a value stream to receive topic updates for topics that match the given + topic selector expression. + + This convenience method calls addStream:withSelector: having constructed a + PTDiffusionTopicSelector instance using the given expression. + + @param stream Handler of value stream events against this selector. + The delegate associated with this stream will be sent messages asynchronously + on the main dispatch queue. + + @param expression The @ref md_topic_selectors "topic selector" expression to be + evaluated locally. + + @param error May be 'nil'. Is supplied then will contain reason on failure. + + @return YES if stream was successfully added + + @exception NSInvalidArgumentException Raised if any supplied arguments are `nil`. + + @since 6.5 + */ +-(BOOL) addStream:(PTDiffusionValueStream *)stream + withSelectorExpression:(NSString *)expression + error:(NSError **)error; + +/** + Remove a topic or value stream that was previously added using a topic selector + or as a fallback. + + @param stream The stream to remove. + + @return `YES` if the stream was removed. + + @note If the supplied `stream` argument is `nil` or the stream has already been + removed from the feature then calls to this method do nothing and return `NO`. + + @since 5.9 + */ +-(BOOL)removeStream:(nullable PTDiffusionStream *)stream; + +/** + Creates an unconfigured fetch request. + + If the request is invoked by calling + PTDiffusionFetchRequest#fetchWithTopicSelectorExpression:completionHandler: + the fetch result will provide the paths and types of all of the topics which + the session has permission to read. + + You will usually want to restrict the query to a subset of the topic tree, and + to retrieve the topic values and/or properties. This is achieved by applying + one or more of the builder methods to produce more refined requests. + + For example (Swift): + + topics.fetchRequest() + .fetchStringValues(withTopicSelectorExpression: "*A/B//") + { + (result: PTDiffusionStringFetchResult?, error: Error?) in + / / TODO Handle result, if not `nil`, otherwise handle error. + } + + @return a new unconfigured fetch request + + @since 6.2 + */ +-(PTDiffusionFetchRequest *)fetchRequest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h new file mode 100644 index 0000000..2cc7efc --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h @@ -0,0 +1,126 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionPartialJSONUpdateConstraint; +@class PTDiffusionSessionLock; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A constraint to be applied to an update operation or the creation of an + update stream. + + Constraints describe a condition that must be satisfied for an operation to + succeed. Constraints can be applied to the setting of a value or creation of an + update stream. Constraints are only evaluated on the server. + + Constraints are evaluated using the: + - active session locks + - existence of the topic + - current value of the topic + + The value of a topic can be described in several ways. The value can be + described as an exact value, a partial value or an unset value. + + Constraints can be composed with one another. It is only possible to construct + logical ANDs of constraints. Constraints can only be composed if the resulting + constraint is satisfiable. Multiple session locks can be held but a topic can + only have a single value. Constraints specifying multiple topic values cannot + be constructed. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionUpdateConstraint : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + Returns a constraint requiring a lock to be held by the session. + + This can be used to coordinate operations between multiple sessions. + + @param lock the lock held by the session. + + @return Constraint requiring a lock to be held by the session. + + @exception NSInvalidArgumentException If the lock argument is `nil`. + + @since 6.3 + */ ++(instancetype)lockedWithLock:(PTDiffusionSessionLock *)lock; + +/** + Create a constraint requiring the topic to have no value. + + This is useful when setting the first value of a topic. This constraint is + unsatisfied if no topic is present at the path, making it unsuitable for + operations that try to add topics. + + @return Constraint requiring the topic to have no value. + + @since 6.3 + */ ++(instancetype)noValue; + +/** + Returns a constraint requiring the path to have no topic. + + This is useful when setting the first value of a topic being added using one of + the 'add and set' methods without changing the value if the topic already + exists. This constraint is unsatisfied if a topic is present at the path, + making it unsuitable for operations that try to set topics without adding them. + + @return Constraint requiring the path to have no topic. + + @since 6.3 + */ ++(instancetype)noTopic; + +/** + Returns a constraint that partially matches the current topic value. + + The topic must be PTDiffusionTopicType_JSON. The returned constraint partially + describes the structure of a PTDiffusionJSON value. + + @return Constraint that partially matches the current topic value. + + @since 6.3 + */ ++(PTDiffusionPartialJSONUpdateConstraint *)jsonValue; + +/** + Returns a composed constraint that represents a logical AND of this constraint + and another. + + @param constraint The other constraint that will be logically-ANDed with this + constraint + + @param error Location to store a reason in case of failure. May be `nil`. + + @return A new constraint or `nil` if there was an error. + + @exception NSInvalidArgumentException If the constraint argument is `nil`. + + @since 6.3 + */ +-(nullable instancetype)andConstraint:(PTDiffusionUpdateConstraint *)constraint + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h new file mode 100644 index 0000000..ee4deb6 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h @@ -0,0 +1,156 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionTopicCreationResult; + +/** + The value assigned to the `code` property of NSError objects generated by some + callbacks generated by PTDiffusionUpdateStream instances. + + @since 6.3 + + @deprecated since 6.7 Use PTDiffusionError instead. + */ +typedef NS_ENUM(NSInteger, PTDiffusionUpdateStreamErrorCode) { + /** + An operation was performed with an invalid update stream. + + @since 6.3 + + @deprecated since 6.7 Use PTDiffusionError_InvalidUpdateStream instead. + */ + PTDiffusionUpdateStreamErrorCode_InvalidStream __deprecated_enum_msg("Use PTDiffusionError_InvalidUpdateStream instead.") = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/** + The value assigned to the `domain` property of NSError objects generated by + some callbacks generated by PTDiffusionUpdateStream instances. + + @since 6.3 + */ +extern NSString *const PTDiffusionUpdateStreamErrorDomain __deprecated_msg("Use PTDiffusion instead."); + +/** + @brief An update stream that provides a base functionality for updating a + specific topic. + + An update stream is associated with a specific topic. The type of the topic + must match the type of values passed to the update stream. It can be created + with an optional PTDiffusionUpdateConstraint. The existence of the topic, its + type and the constraint are validated lazily by the first 'set' or 'validate' + operation. Subsequent operations issued before the first operation completes + will be deferred until the completion of the first operation. + + An update stream can be used to send any number of updates. It sends a sequence + of updates for a specific topic to the server. If supported by the data type, + updates will be sent to the server as a stream of binary deltas. An update + stream does not prevent other sessions from updating the topic. If exclusive + access is required update streams should be used with a PTDiffusionSessionLock + as a constraint. + + Once validated an update stream can be invalidated. An invalidated update + stream rejects the operations applied to it. The update stream will be + invalidated if: + + - the topic is removed + - another update stream is created for the same topic + - the topic is updated to a new value by anything other than the stream + - the session does not have the `UPDATE_TOPIC` update permission + - an operation fails because of cluster repartitioning + + Update streams are thread-safe. + + @see PTDiffusionTopicUpdateFeature + + @since 6.3 + */ +@interface PTDiffusionUpdateStream : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + 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: + + - **no such topic** if there is no topic bound to `path`. + - **incompatible topic** if updates cannot be applied to the topic, for example + if a topic view has bound a reference topic to the path. + - **incompatible topic state** if the topic is managed by a component (such as + fan-out) that prohibits updates from the caller. + - **unsatisfied constraint** if the `constraint` is not satisfied by the topic + `path`. + - **invalid update stream** if the update stream has been invalidated. + - **cluster repartition** if the cluster was repartitioning. + - **session security** if the calling session does not have the `MODIFY_TOPIC` or + `UPDATE_TOPIC` permission for `path`. + - **session closed** if the session is closed. + + @param 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. + + @param error If this method returns `NO` to indicate that an error occurred + then this will be populated with the reason for that failure. + + @return `YES` on success; or `NO` if an error occurred, in which case `*error` + will be populated with the failure reason. + + @exception NSInvalidArgumentException If completionHandler is `nil`. + + @since 6.3 + */ +-(BOOL)validateWithCompletionHandler:(void (^)(PTDiffusionTopicCreationResult * _Nullable result, NSError * _Nullable error))completionHandler + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h new file mode 100644 index 0000000..3698253 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h @@ -0,0 +1,244 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionUpdateStream; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRecordV2UpdateStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream builder. + + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the update stream type. + + To create a new Update Stream Builder, please use {@link PTDiffusionTopicUpdateFeature: newUpdateStreamBuilder}. + + @since 6.9 + */ +@interface PTDiffusionUpdateStreamBuilder: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Specifies a {@link PTDiffusionTopicSpecification topic specification} for this + update stream. + + If a topic does not exist at the `path`, one will be created using the topic + specification, otherwise the operation will fail. + + Specification is `nil` by default. Calling this method with a `nil` parameter removes + the currently set topic specification from this builder. + + @param specification the required specification for the topic + + @return the builder + + @since 6.9 + */ +-(instancetype)topicSpecification:(PTDiffusionTopicSpecification *const _Nullable)specification; + + +/** + Constraints can be applied to the setting of a value and creation of an update stream. + Constraints describe a condition that must be satisfied for the operation to succeed. + The constraints are evaluated on the server. + The available constraints are: + - active session lock + - absence of a topic, + - current value of the topic being updated + - part of the current value of the topic being updated + + Constraint is `nil` by default. Calling this method with a `nil` parameter removes + the currently set update constraint from this builder. + + @param constraint the constraint that must be satisfied for the update stream + to be validated + + @return the builder + + @since 6.9 + */ +-(instancetype)updateConstraint:(PTDiffusionUpdateConstraint * const _Nullable)constraint; + + +/** + Resets the builder to its default parameters. + + @return the builder + + @since 6.9 + */ +-(instancetype)reset; + + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @since 6.9 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with RecordV2 + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h new file mode 100644 index 0000000..d5579df --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h @@ -0,0 +1,30 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2016 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A value stream represents an asynchronous, variable length feed of + subscription and value updates from the Diffusion server. + + @see PTDiffusionTopicsFeature + + @since 5.9 + */ +@interface PTDiffusionValueStream : PTDiffusionStream + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h new file mode 100644 index 0000000..9ea1df9 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h @@ -0,0 +1,100 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief A version represents a released build of the client library. + + Version numbers are described with dotted notation in the form + `..`. + + @since 5.6 + */ +@interface PTDiffusionVersion : NSObject + +/** + Instance of the product version of this client library. + + @return the product version of this client library. + + @since 5.6 + */ ++(instancetype)versionOfClientLibrary; + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + + +/** + The major (left, most significant) component of the version number. + + @deprecated since 6.5. This will be removed in a future release. + + @since 5.6 + */ +@property(nonatomic, readonly) NSUInteger major __deprecated_msg("Will be removed in a future release."); + + +/** + The minor (middle) component of the version number. + + @deprecated since 6.5. This will be removed in a future release. + + @since 5.6 + */ +@property(nonatomic, readonly) NSUInteger minor __deprecated_msg("Will be removed in a future release."); + + +/** + The patch (right, least significant) component of the version number. + + @deprecated since 6.5. This will be removed in a future release. + + @since 5.6 + */ +@property(nonatomic, readonly) NSUInteger patch __deprecated_msg("Will be removed in a future release."); + + +/** + The complete product version number. + + @since 6.5 + */ +@property(nonatomic, readonly) NSString * version; + + +/** + Additional information about this build of the client library. + + @since 5.6.6 + */ +@property(nonatomic, readonly) NSDictionary* manifest; + + +/** + Compares the receiver to the given version. + + @param version The version object with which to compare the receiver. + + @return `YES` if the receiver and the given version are the same. + + @since 5.6 + */ +-(BOOL)isEqualToVersion:(nullable PTDiffusionVersion *)version; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Info.plist b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Info.plist new file mode 100644 index 0000000..587366e Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Info.plist differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Modules/module.modulemap b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Modules/module.modulemap similarity index 100% rename from Sources/Diffusion.xcframework/ios-arm64_i386_x86_64-simulator/Diffusion.framework/Modules/module.modulemap rename to Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/Modules/module.modulemap diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..efaaa3a --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources @@ -0,0 +1,2291 @@ + + + + + files + + Headers/Diffusion.h + + Mkqa2r0x+txy0cQmJIpxw2oeQP8= + + Headers/PTDiffusion.h + + etncixhbxbY9uNI3FgCEG5NZC1k= + + Headers/PTDiffusionAddTopicResult.h + + lf4tnUs6clyzlkWOZxif1brIZIg= + + Headers/PTDiffusionBasicHTTPProxyAuthentication.h + + EZ2o/hOmmA0wKR57fwDga0y2Cqo= + + Headers/PTDiffusionBinary.h + + Dp5oMgxGqG0AwopvhmD53929ZKg= + + Headers/PTDiffusionBinaryDelta.h + + 2QhceXcLnfQd/qzQK9ojEjnVz1c= + + Headers/PTDiffusionBinaryFetchResult.h + + nx3DoWNGWUI98o/h2rutlX9a/AM= + + Headers/PTDiffusionBinaryFetchTopicResult.h + + ZurLVW92masa5deJ9QudaTVWnOI= + + Headers/PTDiffusionBinaryRequestDelegate.h + + F/RIhkNPfD93JbOaX3mXAL1RkXw= + + Headers/PTDiffusionBinaryRequestStreamDelegate.h + + mo1R65pbBqwX2qOpEujsT7T4KFg= + + Headers/PTDiffusionBinarySessionResponseStreamDelegate.h + + uAPdv2I+wYK3uhq/84NkD7fgxeY= + + Headers/PTDiffusionBinaryTimeSeriesEvent.h + + YqSglP1Kdz2FhbKhxghcJixdnrA= + + Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h + + 6oo8LIKO/uZA4sNzdK+nlR/5FIY= + + Headers/PTDiffusionBinaryTimeSeriesQueryResult.h + + ixMN6gDnwxXAmajRPWrUaS5uIt4= + + Headers/PTDiffusionBinaryUpdateStream.h + + h+lm30nxzIbJgyeMQ0HtqYjsv4c= + + Headers/PTDiffusionBinaryValueStreamDelegate.h + + ljWMTJnpBwToLvbyN4kTsuJZQeA= + + Headers/PTDiffusionBranchMapping.h + + Labnm5AJG/nmPaP56htrzXh18Io= + + Headers/PTDiffusionBranchMappingTable.h + + X9M05JWp4TG3kfAM5x3EhPJW8v8= + + Headers/PTDiffusionBranchMappingTableBuilder.h + + tQydUcWofgYORzWn7JeAiBWLAq0= + + Headers/PTDiffusionBytes.h + + wAjXc7vWNjySYljVMRNsT+6+EZ8= + + Headers/PTDiffusionCancellable.h + + Gmm/d6N12EoRSVSUTymeFrhPaxk= + + Headers/PTDiffusionCheckRemoteServerResult.h + + CyId85zIwIFtp629m7KJ30//FM0= + + Headers/PTDiffusionClientControlFeature.h + + lGTUIsvZvsl99fF6vQ4Ze94HvKs= + + Headers/PTDiffusionClientQueueEventListener.h + + qbDOQMEQhhWLUBn+fkAANXOIEeU= + + Headers/PTDiffusionClientQueuePolicy.h + + o6Lr6PXPUNpRfOqUzOsPXPLUCBY= + + Headers/PTDiffusionCloseReason.h + + 8stcH0pJC4p3Pm/F+rfo4qcdNW4= + + Headers/PTDiffusionCreateRemoteServerResult.h + + fCPpDe9H/eNLUz+cLSrdmN15ZDU= + + Headers/PTDiffusionCredentials.h + + ChqQbKvOiDqqYl5Vwujv/MlzQdM= + + Headers/PTDiffusionDataType.h + + /o2coY2OXX8jiC8yEYzAjl+owWE= + + Headers/PTDiffusionDataTypes.h + + 241uaKNOvlRh22w5JYc6fjTjO08= + + Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h + + 0LEl+NBH3BN0llMo95e01zSaVBw= + + Headers/PTDiffusionDefaultStreamDelegate.h + + f4GfBFpNZwaBfR6lX2TDMrUCs2w= + + Headers/PTDiffusionDefaultSubscriberStreamDelegate.h + + 4CROni4tMaTuWKAjaey/Vc4jRjQ= + + Headers/PTDiffusionDefaultTopicNotificationListener.h + + oNNeBlqnhsu6vRGQM4QPqFUrfeE= + + Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h + + aIV07Bx9clK5bpnrK5tF3fZocsI= + + Headers/PTDiffusionEnumeration.h + + 1DMAvabFhr876grje6SCYFLrlBk= + + Headers/PTDiffusionError.h + + atYN8FDgttIKU3XnAuIU3vnKdew= + + Headers/PTDiffusionErrorListener.h + + EAHALG8d4scUoAwdnXOkEjbrP/c= + + Headers/PTDiffusionFeature.h + + dWawOs/ELfwVqjBE5ltRPT/71w4= + + Headers/PTDiffusionFetchRequest.h + + KkuMMRiUlzGH0JxWgZ9ylE++LWs= + + Headers/PTDiffusionFetchResult.h + + /T3ijCiWmmVZ1i2LHsHbHncSgdo= + + Headers/PTDiffusionFetchTopicResult.h + + /tVIkxz3JFU5J+sRgur1NDCnb74= + + Headers/PTDiffusionGetSessionPropertiesResult.h + + 87ak7jHiCkqpwa9eP9ohBI9A2JU= + + Headers/PTDiffusionGlobalPermission.h + + P7/nHG2hsIIjJbA0PaOX6lKuqQ8= + + Headers/PTDiffusionHTTPAuthentication.h + + oEX1Yg2hovbJq4PFIVm47qeqwMc= + + Headers/PTDiffusionHTTPAuthenticationChallenge.h + + Mzvzcyb4aicAxxaxfuxjnOon6S8= + + Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h + + b8i+YV5dgnprw+s3yakS2eBsSfc= + + Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h + + jLMSYOorAMy9jIu0Se3gQY17m6w= + + Headers/PTDiffusionHTTPProxyConfiguration.h + + ElKSmimXIcvqbqv8X31rnLgk9N0= + + Headers/PTDiffusionHTTPResponse.h + + AaRy8GBWXt2ysVS1xsR+WVtAGYc= + + Headers/PTDiffusionJSON.h + + UB3VCtbTX/hTJYSoYHRFaD0koOg= + + Headers/PTDiffusionJSONDelta.h + + llOmfyInCzKBu9gaoyyD2F0E8Eo= + + Headers/PTDiffusionJSONDeltaChangeMap.h + + pZD3sB7uVs1AlRUFdXkJWxR8Roo= + + Headers/PTDiffusionJSONFetchResult.h + + MMuebHUd6ghg/TdtPAoF8pa0M+4= + + Headers/PTDiffusionJSONFetchTopicResult.h + + IFLx59aTDLWXW+4aGz6VHuJknJM= + + Headers/PTDiffusionJSONPatchResult.h + + PrMdJIZyx/6c94gnZaj03sECMnY= + + Headers/PTDiffusionJSONRequestDelegate.h + + O2hwszRccrLaNmdhU+SibNYBIZw= + + Headers/PTDiffusionJSONRequestStreamDelegate.h + + u5XITvrPzLbNdvlxowF97dD6fkE= + + Headers/PTDiffusionJSONSessionResponseStreamDelegate.h + + HDlqDowcgloPplbbEYTG/yEdwls= + + Headers/PTDiffusionJSONTimeSeriesEvent.h + + RcHAcv5yP2wxO13ZIO0fDkRKNF0= + + Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h + + 6fZ63Zr32EoXExyTAak3KCkNmck= + + Headers/PTDiffusionJSONTimeSeriesQueryResult.h + + ZBkj1nFh4BjmQH9CfzqrWgFSYAo= + + Headers/PTDiffusionJSONUpdateStream.h + + Qyz7EFzJMMCcgkBwIeGG+BZ7n3g= + + Headers/PTDiffusionJSONValueStreamDelegate.h + + 3k1M7cqmg0NOHDAubOy36MrUj48= + + Headers/PTDiffusionLogging.h + + 3/Qic6EJSqNfIoY0DuWR1nnVTrk= + + Headers/PTDiffusionLoggingDestinationConfiguration.h + + opQqfIOqWB55P4kaFEXdMkCx23M= + + Headers/PTDiffusionLoggingLevel.h + + ttEQE3ONuRBTpBf3edmsJgf6V/s= + + Headers/PTDiffusionLoggingMessagePrinter.h + + CpwRxxTnxfY/1n9cg6oHVCUCwkA= + + Headers/PTDiffusionMessagingFeature.h + + DpAlGVFnhF0vEDIRAqJICKlqAzA= + + Headers/PTDiffusionMetricCollector.h + + ibw6woRQavBLN0ZWnt9jieDkFUI= + + Headers/PTDiffusionMetricCollectorBuilder.h + + 0302nzzc+tGrdKo+P/h8Fvx8p0M= + + Headers/PTDiffusionMetricsFeature.h + + 0STlq7UoYU6wbFu1+hRzN/xnghI= + + Headers/PTDiffusionMissingTopicHandler.h + + cFfLmfy9Qj228NY1gVKCKxKoHf0= + + Headers/PTDiffusionMissingTopicNotification.h + + V70fd8EArG5WI73eHtaMbqp0LOk= + + Headers/PTDiffusionMutableRecordV2Model.h + + RU7vmnvmmIRXhRo25AdtbBG7Dfo= + + Headers/PTDiffusionNumberFetchResult.h + + u25nPwb/XgcAqpA7LLfxydgjTok= + + Headers/PTDiffusionNumberFetchTopicResult.h + + WdD2IGt+yy9Uubxutw/IDveSO6Q= + + Headers/PTDiffusionNumberRequestDelegate.h + + SOo4ck/8vEtDax5Uqp5wYgQ1luU= + + Headers/PTDiffusionNumberRequestStreamDelegate.h + + k06j/mET0n+Gj2SWSw/1iw3g1eE= + + Headers/PTDiffusionNumberSessionResponseStreamDelegate.h + + GMy7jTkAq0n1FtUTYXwEcIDaeSk= + + Headers/PTDiffusionNumberTimeSeriesEvent.h + + tyRJotkHuz2MZZ3/h/fNt62gRW0= + + Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h + + Nh4um6YvEN9rCvvKbNXaSqpn+mU= + + Headers/PTDiffusionNumberTimeSeriesQueryResult.h + + kf1PArSbO8zrQ4bvmnUxOMVik00= + + Headers/PTDiffusionNumberUpdateStream.h + + jOgeSjTNY+SndUVqLqqknCqdNR8= + + Headers/PTDiffusionNumberValueStreamDelegate.h + + 59+6S2QqEtdRPyGyFAsaXHFRZSc= + + Headers/PTDiffusionPartialJSONUpdateConstraint.h + + RBsJCmnW52diE8J2WUVNyIxGznM= + + Headers/PTDiffusionPathPermission.h + + utHyQhw1oqLuc8CFm6wgSc3XNUQ= + + Headers/PTDiffusionPingDetails.h + + 0zGyogQffFVxgHMKzHV1z/AUYcE= + + Headers/PTDiffusionPingsFeature.h + + ILzEw2AWPERs0rA9Q1rHkPFokYs= + + Headers/PTDiffusionPrimitive.h + + 4pK+hfJ/5vRwvN+/R7IgWZry47g= + + Headers/PTDiffusionRecordV2.h + + 9jPG9mGsh6ywTSZQbrHk9vm14PU= + + Headers/PTDiffusionRecordV2Builder.h + + +R43bqNNNSrziRgr9JY3AKVfI1M= + + Headers/PTDiffusionRecordV2Delta.h + + MDvyEtKhWN1atexpVnfBzyRgOlE= + + Headers/PTDiffusionRecordV2DeltaChange.h + + YyCYYNE95yLCCU2wlol8RySHmrY= + + Headers/PTDiffusionRecordV2DeltaChangeType.h + + aKKRips1gmiC2VczkX1enW534S4= + + Headers/PTDiffusionRecordV2FetchResult.h + + DM2fmgSp+PEHlNH/quxAhMJSJNs= + + Headers/PTDiffusionRecordV2FetchTopicResult.h + + ajbj/1aV/KZOfOyG7L+jISluVjI= + + Headers/PTDiffusionRecordV2Model.h + + S3u5qsl0s67Gp5D/HEOcjC7Rpdg= + + Headers/PTDiffusionRecordV2RequestDelegate.h + + eMhaKyIE7AZ5WKIjUChHd/6ptqI= + + Headers/PTDiffusionRecordV2RequestStreamDelegate.h + + OQV1G21EDlLtYmdD2JdZbZU5uzQ= + + Headers/PTDiffusionRecordV2Schema.h + + 29Vd7ulnAtz3HlUx+gSWDLcU9pQ= + + Headers/PTDiffusionRecordV2SchemaBuilder.h + + 0NioSaGvZlbAcQrYvNbNAi4P+Ew= + + Headers/PTDiffusionRecordV2SchemaField.h + + nMOQYy88QfELJo93TvSRKq+n5UM= + + Headers/PTDiffusionRecordV2SchemaFieldType.h + + plUnzqdSf1ET25eO//O5+b+FlrI= + + Headers/PTDiffusionRecordV2SchemaNode.h + + uvWnpYK4e4ugcIxwblIJ0VvyJr8= + + Headers/PTDiffusionRecordV2SchemaRecord.h + + MswcVnsUm9m8lNaKMTy5MudMHvE= + + Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h + + kuVjEn/RpPcDmAE9odYMpa8aUVM= + + Headers/PTDiffusionRecordV2TimeSeriesEvent.h + + KLF3lvwxYGEMScZAy6MhstjAnBY= + + Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h + + tpMkvB8WAzevpM+ZZ9efhIbarSg= + + Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h + + eBeo9N3OngG7UGNtJmC7eDmMAX8= + + Headers/PTDiffusionRecordV2UpdateStream.h + + C8JxKjIkLqBcPQK450hyNh6zJuE= + + Headers/PTDiffusionRecordV2ValueStreamDelegate.h + + i9HX1prcRwwSTRkaCWO/+wYKdeo= + + Headers/PTDiffusionRegistration.h + + W3Vw9COYkUtYU97VH4XvScMmGRY= + + Headers/PTDiffusionRemoteServer.h + + 8Ww2pLGazyPtS2YmJ3r20BKAo8E= + + Headers/PTDiffusionRemoteServerBuilder.h + + SerfJWFqqmSIfKnxgUEiutQ2KHI= + + Headers/PTDiffusionRemoteServerConnectionOption.h + + MBysTsKBCSXf5PJJ3wpOojR6Jvk= + + Headers/PTDiffusionRemoteServerConnectionState.h + + mw/eKPYjOdkxSWidu7HGKppaAlM= + + Headers/PTDiffusionRemoteServersFeature.h + + yvk7aNi2t7cCSlBP5z9QlqOyyNk= + + Headers/PTDiffusionRequest.h + + xAxd3/9o9wfiPgSqxrfnpDpjDhc= + + Headers/PTDiffusionRequestContext.h + + xeKAZ+VuwggkHqxG1PWZ7bXMTqk= + + Headers/PTDiffusionRequestHandler.h + + WsyzCHLTmKlt/wcjcyBG/5jL08w= + + Headers/PTDiffusionRequestStream.h + + Zv7vMz3yeEEu9Z85344h42fKLeY= + + Headers/PTDiffusionResponder.h + + pt9o2ut9An0AMQkZPFU4V0cyutw= + + Headers/PTDiffusionResponse.h + + Q8sXEJDrJGa9Dd9HCeUtoWCTjOw= + + Headers/PTDiffusionRetryStrategy.h + + 1il8so4gUjqCCvg5TRzbyoaHwxE= + + Headers/PTDiffusionSecurityFeature.h + + o95Nwkx1BHa7tQo85JqcgUmRUuc= + + Headers/PTDiffusionSendDeliveryPriority.h + + w3hhJNuNqGID6gHCHRq13qT5Fk0= + + Headers/PTDiffusionSession.h + + dVbfcACrK5ViY9tsk0LfsGbM7EI= + + Headers/PTDiffusionSessionConfiguration.h + + TRJpxEF9TQxHUE3tAvljNId6/HQ= + + Headers/PTDiffusionSessionError.h + + /N2U2/H3sQahKWe+3OK4b5/sHYM= + + Headers/PTDiffusionSessionId.h + + bjAVhZZHsCDiQtXcWDg/Mt5Jqm8= + + Headers/PTDiffusionSessionLock.h + + pRjtpJ4OV8M7T1JrfRMcwCRzzX0= + + Headers/PTDiffusionSessionLockAttempt.h + + F9JjEhm/2O3Avmo2p7tQVNi2zOA= + + Headers/PTDiffusionSessionLockScope.h + + B+/qZhcMyw+RQI5MTzMR+SKqF8M= + + Headers/PTDiffusionSessionMetricCollector.h + + cGYuseLU/31kUdyyFprcCtW/Dd8= + + Headers/PTDiffusionSessionMetricCollectorBuilder.h + + xW4HZ1JSvpkqtdPSG7Ri4DTmUPU= + + Headers/PTDiffusionSessionPropertiesDelegate.h + + ZK+EIqsw0fi+s+xIWUlI4xRRAUw= + + Headers/PTDiffusionSessionPropertiesListenerRegistration.h + + bGcFnXPO8fnri5+bPx51Qmb16bY= + + Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h + + weUx7F/rNoca8WGeTcBg3XnC2w0= + + Headers/PTDiffusionSessionReconnectionAttempt.h + + +ToAswnfGNDF+2VHHi2IHXVpk8o= + + Headers/PTDiffusionSessionReconnectionStrategy.h + + q2hUzH5OXZl6gNbY5X/rfsuj/sk= + + Headers/PTDiffusionSessionResponseStream.h + + x6r/r6ta7dO0kOqzhRvleNnHyOs= + + Headers/PTDiffusionSessionResponseStreamDelegate.h + + 93B33j5xtR+chnEjypZWO0nvMRY= + + Headers/PTDiffusionSessionState.h + + ga0fsQLDN3YCtttCW1h8hx5u5k0= + + Headers/PTDiffusionSessionStateChange.h + + 261WITvQeq3j4wqi5fxkgh9g9Uk= + + Headers/PTDiffusionSessionStateChangeDelegate.h + + I13XUOrr5eJaf2jNke9oj2eMYeo= + + Headers/PTDiffusionSessionTreesFeature.h + + bd+wzHk3Vh7YZJiTTdK/T1znHfk= + + Headers/PTDiffusionSetSessionPropertiesResult.h + + syT4pk/CgzCeZ4Z0wKN8IBqthZM= + + Headers/PTDiffusionStream.h + + xKB7aLpvCs6El7QQL0jn86m4v/k= + + Headers/PTDiffusionStreamDelegate.h + + aLYAfnWKXf53AH5pJwenzQsUxYA= + + Headers/PTDiffusionStringFetchResult.h + + qx7Aja50Bb3mMs+84VoSWG5Xcjs= + + Headers/PTDiffusionStringFetchTopicResult.h + + 8khbWI6t+bSoHP83ppZUjiSVG7Y= + + Headers/PTDiffusionStringRequestDelegate.h + + eU+jin9xsc16Qgwpb1NunH777Y4= + + Headers/PTDiffusionStringRequestStreamDelegate.h + + g9Pi+bnkXFYc1qA+HXdO8vDp+XA= + + Headers/PTDiffusionStringSessionResponseStreamDelegate.h + + lO0zexieIeu7aBf3u3j+OtTfFcg= + + Headers/PTDiffusionStringTimeSeriesEvent.h + + 2LPFnC2Z7kiFBmxfsSn9Gu4Mk1Y= + + Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h + + yG3L23xjbzZHVgPaK2OCqeIVc6Q= + + Headers/PTDiffusionStringTimeSeriesQueryResult.h + + xKm7HGOoIIOAQ+zE6vt+ynMA97U= + + Headers/PTDiffusionStringUpdateStream.h + + Kg5qSOtTPiZxsKclUIsUEcRbJUE= + + Headers/PTDiffusionStringValueStreamDelegate.h + + X2t4SvNlud3O4AnH8n8KVFFDSfE= + + Headers/PTDiffusionSubscriberStreamDelegate.h + + Z51r+DtzgiRgOeC9fmpbaLpkSEI= + + Headers/PTDiffusionSubscriptionControlFeature.h + + iouD2u0n6IAl0Q2MkXy+tUwcQ4s= + + Headers/PTDiffusionSubscriptionRoutingRequest.h + + 62OSCfzi6qboLz2LJK8Cuwif5g4= + + Headers/PTDiffusionSubscriptionRoutingRequestHandler.h + + GDEB5ib3O9Qip8y3PyCTt2FJl50= + + Headers/PTDiffusionTimeSeriesEvent.h + + GwAwW6xQJU0YJq/BH2es6w8NYpc= + + Headers/PTDiffusionTimeSeriesEventMetadata.h + + CctV6GWN1e8atz4cmRvwkH3mEiM= + + Headers/PTDiffusionTimeSeriesFeature.h + + mMpxPsOdi4Ak1NmYNC0Ygep4k34= + + Headers/PTDiffusionTimeSeriesFetchResult.h + + 4Y0oITXaI4WyKJQkwzUwnvhkYQY= + + Headers/PTDiffusionTimeSeriesFetchTopicResult.h + + YfbC1jEisk8Rr6Q2rCdA6O4iidM= + + Headers/PTDiffusionTimeSeriesQueryResult.h + + QbFBLkm9EDCQ/Qrvy34niAjVq88= + + Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h + + uBt/o+HjAjBsqvJjufIF7fI0P3I= + + Headers/PTDiffusionTimeSeriesRangeQuery.h + + gXXiTD9FjLsoGC8SjKP8DCtXHdo= + + Headers/PTDiffusionTopicControlFeature.h + + /I9hx6ncXo/UxRNhvMzdOOZJ1yo= + + Headers/PTDiffusionTopicCreationResult.h + + tO5XyfLRAcf3Tzj+WU5dKQkSeY0= + + Headers/PTDiffusionTopicMetricCollector.h + + 9H9mm4on1w9dD6v2HbRADfXus4Y= + + Headers/PTDiffusionTopicMetricCollectorBuilder.h + + 49qM9t5OMNjFn1LMof2zgVBDuKs= + + Headers/PTDiffusionTopicNotificationListener.h + + z2SMFXq+mlnME/GtBTTR2k3ZeS8= + + Headers/PTDiffusionTopicNotificationRegistration.h + + +RujsaipGlw9TMJsc0kRAo4mLrA= + + Headers/PTDiffusionTopicNotificationType.h + + sgcAtoSV/Zobq8h7urx+km0rg18= + + Headers/PTDiffusionTopicNotificationsFeature.h + + IfvbLLWVYp877e9lDzSZHPulNY0= + + Headers/PTDiffusionTopicPermission.h + + ONiifzilkrxLuoFkSHPCcoZQIN4= + + Headers/PTDiffusionTopicRemovalResult.h + + 5C+wxG7ExLIEkdGuclMrU+MqfKI= + + Headers/PTDiffusionTopicSelector.h + + XJFtcUsutKIPNN7ZPRK5yGmkh30= + + Headers/PTDiffusionTopicSpecification.h + + HRmP7ibvQ8EyRPH+bUN02frOqbI= + + Headers/PTDiffusionTopicTreeRegistration.h + + +wRdByplLwLouKuQLLZOSkdTpOk= + + Headers/PTDiffusionTopicTreeRegistrationDelegate.h + + TsYnOXklqpYZKd1lOgeC1m4aWWg= + + Headers/PTDiffusionTopicType.h + + T87TNIiPTXScnwm3Wy4lCcjz+n4= + + Headers/PTDiffusionTopicUnsubscriptionReason.h + + JY7a1EVbbNOLPd1quQl2Eg/7yhc= + + Headers/PTDiffusionTopicUpdateFeature.h + + O2yWqZSV7Y92U4BhiRqeAG61Dpg= + + Headers/PTDiffusionTopicView.h + + OE07/KYnSJpcH45apBnrGvz+z2M= + + Headers/PTDiffusionTopicViewsFeature.h + + qJOimME3xrA8NdSmfQ37ClzjA6s= + + Headers/PTDiffusionTopicsFeature.h + + 2Cu3x5WWMeUfz0tlQ0gE1pSGqDU= + + Headers/PTDiffusionUpdateConstraint.h + + SCY6UA1rZzRQYHq9ybaBH0mwvRA= + + Headers/PTDiffusionUpdateStream.h + + i86I8izfeQSdiN9JrsAkhWyB2dE= + + Headers/PTDiffusionUpdateStreamBuilder.h + + N5Vuhvokeroi0V2zEdZArhemJa8= + + Headers/PTDiffusionValueStream.h + + LWC4mgeOR50XMz0MZh+Cx0Cn8sQ= + + Headers/PTDiffusionVersion.h + + FQiMU6V2P/Bdzp8wrGe4xS0FGy8= + + Info.plist + + anOX0ZMORpKtuChDm70wlru8PcQ= + + Modules/module.modulemap + + q330/OkSKLLkRwoC2kdB1e4qTEQ= + + error_descriptions.plist + + IgeTzRhVc7Ef0oI1M6pe3UYtDGI= + + + files2 + + Headers/Diffusion.h + + hash2 + + A1zwNtl0yfpty9+eqIwje1Ha+Cxu33jPe/AvbGJVykc= + + + Headers/PTDiffusion.h + + hash2 + + NJkvOe7sV9inX4lGI2vh6WglcdzakvOyWAZvlfqGPX0= + + + Headers/PTDiffusionAddTopicResult.h + + hash2 + + EKWKQQYimqytJpb6wN8t7zur8vJfV6t3purhOpwqcto= + + + Headers/PTDiffusionBasicHTTPProxyAuthentication.h + + hash2 + + lNqCwMmnEWV1lCFH63yQUDGQ/QB12Lfr3497TSPyYZ8= + + + Headers/PTDiffusionBinary.h + + hash2 + + pAtK+/vemHjXAdUhXY0+wdumrAFl8xi7AvEpM5NKKQI= + + + Headers/PTDiffusionBinaryDelta.h + + hash2 + + cAdg7jUyyUs3WBnGTxbH8Fp1ZgmzvwBgzDmzejaP02c= + + + Headers/PTDiffusionBinaryFetchResult.h + + hash2 + + i/6QE+uOhRxzksybPgBgkvMjwoQNwzCuk4CIUs/bUNA= + + + Headers/PTDiffusionBinaryFetchTopicResult.h + + hash2 + + kxcCorEeDXRQ2HToGHFLzd576/SgoMD1sK8EtgLMj6Y= + + + Headers/PTDiffusionBinaryRequestDelegate.h + + hash2 + + UrZpuer2fPFUeb+5fMFquhZmCF8vxRrVnPSwoxTaqb4= + + + Headers/PTDiffusionBinaryRequestStreamDelegate.h + + hash2 + + HRlzQsTwHd08PPHEVDdGhBSmeu01WZFHsBFV9cbXT7E= + + + Headers/PTDiffusionBinarySessionResponseStreamDelegate.h + + hash2 + + nxFGh44y4EEEAeZ1kRa41tz6ej95dNJXgybjC5XKFwE= + + + Headers/PTDiffusionBinaryTimeSeriesEvent.h + + hash2 + + C6b93rxmeLvZeqmBD+htM78o4fiy4L8k5uFeMhsj9RU= + + + Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h + + hash2 + + IYJwis0D+uFU4pTz9Ce6LrLfvBkCo/OFt+t7bo1dC3c= + + + Headers/PTDiffusionBinaryTimeSeriesQueryResult.h + + hash2 + + yU9zQRr75wkd9rwAE79NPJ1k8UM/gZ0ozbdohJZ3kTc= + + + Headers/PTDiffusionBinaryUpdateStream.h + + hash2 + + IS+ge2fuZOiRqsF/VVw9SogcM5ba+qaGtqRUVK2Y49s= + + + Headers/PTDiffusionBinaryValueStreamDelegate.h + + hash2 + + g61+exeX7oOSLyEl8XOePjMxSoariC3H6soITiqqGYI= + + + Headers/PTDiffusionBranchMapping.h + + hash2 + + goiBi1K1nyRy6w9cYVbGyeeEMx5PFHXWjqIF1f2iuM8= + + + Headers/PTDiffusionBranchMappingTable.h + + hash2 + + /F0HJRO5DykAz629aZwZ87a0wsBmKUKlH5YQI3bMT4Q= + + + Headers/PTDiffusionBranchMappingTableBuilder.h + + hash2 + + Ov5T/qu5/dNQ4tllnsPvaZ9A4d1OJBLiz76Aft00gpE= + + + Headers/PTDiffusionBytes.h + + hash2 + + noeJjt8j/FGQ6KRyHuNwOBMn7weyEERzf8DQDcEQpX0= + + + Headers/PTDiffusionCancellable.h + + hash2 + + vDcczDhZ5sEOLKkdZ+qh58A5glGLt6E9EKdn6kEyt/Y= + + + Headers/PTDiffusionCheckRemoteServerResult.h + + hash2 + + mve8V9bYg7x2qkFwzduWxk8wFIK+dmLVBUcmGwjMKdo= + + + Headers/PTDiffusionClientControlFeature.h + + hash2 + + CGsOGc9zQUYKMnP9mOStwqfJ/gjFzFK61yJtOWS3B5I= + + + Headers/PTDiffusionClientQueueEventListener.h + + hash2 + + YqNTgiT0i1aJRBUUhzryEKY2YYLQWASMJLSdFNF4Dh0= + + + Headers/PTDiffusionClientQueuePolicy.h + + hash2 + + MpKR2JR0lqht3ueV/XvEY2M2CLhb0rf40bVl8TzfBWY= + + + Headers/PTDiffusionCloseReason.h + + hash2 + + mcVgGqxDFQx9CL1kIA3q+cwqct8eocI7ayVXFlJuC8w= + + + Headers/PTDiffusionCreateRemoteServerResult.h + + hash2 + + ltZw8RDwqYhptUR0W538ThquYMgIYs6OveZnm+lnCv0= + + + Headers/PTDiffusionCredentials.h + + hash2 + + HVf7FwHHvz5drhP8M0SKLQgczz/zGzzhwfTxQfTN7Dk= + + + Headers/PTDiffusionDataType.h + + hash2 + + XWWuVPUovPcPfOxJu7IlNebl5Hvf+y3edyfDk+I773Q= + + + Headers/PTDiffusionDataTypes.h + + hash2 + + LsLy+f5mEXxYAA24hURlC47M2WxYSwrMIib1jLjFweU= + + + Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h + + hash2 + + Tx5en1POL1nuG2LWUIQQJAJUehyWu3eNcSJFxxz4CoQ= + + + Headers/PTDiffusionDefaultStreamDelegate.h + + hash2 + + iPFDLfw+vgecpwNnt/Q8VW6Fq1bENEf2WYV63TIsR+4= + + + Headers/PTDiffusionDefaultSubscriberStreamDelegate.h + + hash2 + + wUpvggq3lUb8yhP/luJHt+ND70yFaNxFpUwCcBiUjHk= + + + Headers/PTDiffusionDefaultTopicNotificationListener.h + + hash2 + + 2iAbixccndqGnyqe8nCOUm/hfJ4lHrUi8nqvTwNlcpI= + + + Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h + + hash2 + + lTy8jnBVIRPIV/iYHVS2lgmGtpdO+1oWNQ2dm70izOc= + + + Headers/PTDiffusionEnumeration.h + + hash2 + + 0d1hGNZqWcFSMH4f1c1VDYX0WIV17CWWDQpCkszafkI= + + + Headers/PTDiffusionError.h + + hash2 + + RSZV+RQNSj6glfsBd7n3QhwJqhYaKOas8Ho5rdS33bE= + + + Headers/PTDiffusionErrorListener.h + + hash2 + + wUhpMThJrWlCugKuimRmK0kbZ/6jWMYPk6caEo3qp5k= + + + Headers/PTDiffusionFeature.h + + hash2 + + Aqk7y7sqRwFIO73O/twnB9TG7BKB/PqxVUikbxkKitA= + + + Headers/PTDiffusionFetchRequest.h + + hash2 + + HilD4zCUclx4PshGXVes8cD3nXfke0WSzPq+9gsmAmU= + + + Headers/PTDiffusionFetchResult.h + + hash2 + + LVshrFDq2KG31A5gm6KlRT0ntNfGoMS016CX2eTF8p0= + + + Headers/PTDiffusionFetchTopicResult.h + + hash2 + + jaJ+Vpq2FWnzLW19B5kf9R+9XItJBOlEMSaSNuFjYCc= + + + Headers/PTDiffusionGetSessionPropertiesResult.h + + hash2 + + KS9IsH75bU0BMwO/VGHdqbuFlnGvGAHRtuKbzqAehhk= + + + Headers/PTDiffusionGlobalPermission.h + + hash2 + + ZeGTIRBhyWydKlQFXTufEiYAtPeI9stVn4s0roOd9ps= + + + Headers/PTDiffusionHTTPAuthentication.h + + hash2 + + +RNHLW/DegSpyx4qw/kjoVIIoFTxnENRAGmfPYZBsgU= + + + Headers/PTDiffusionHTTPAuthenticationChallenge.h + + hash2 + + 2LbRaWQViguwFTlDz+mPlfDFF53L6TZ1VX5ps9/yLK0= + + + Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h + + hash2 + + /kgkQDewUpO1Htwgm/2wTjAu8pMUg9/n2FB1OuJmBqY= + + + Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h + + hash2 + + NXTuGJPtTRB5+9aCkUJ3/vRaRROIUhh72VEs6LhpjPk= + + + Headers/PTDiffusionHTTPProxyConfiguration.h + + hash2 + + /cTb6wTMItyQmINsAp5wcPb2Rk1J3KYgZSCthmPjEcI= + + + Headers/PTDiffusionHTTPResponse.h + + hash2 + + 1o2Ga+oRHDw9J7CoyTX6Ny5ITgi+1AOjCvj5T2YNhcM= + + + Headers/PTDiffusionJSON.h + + hash2 + + KVeGiB1jiOLKW6LGOWrEkiYKrzBfBsQNeGLJ9L+uquw= + + + Headers/PTDiffusionJSONDelta.h + + hash2 + + HSFFw0p0Vjx1Wq5cCnBT5imYhwRp4lePX6qOUxJHO7c= + + + Headers/PTDiffusionJSONDeltaChangeMap.h + + hash2 + + AjKutPHJDIvXgSCGdhHvl3BHC9QpH9bwlVc6zfwches= + + + Headers/PTDiffusionJSONFetchResult.h + + hash2 + + dJ8E+5YMCp+ImeQ6EsiDjxR1f+7gxwI2Ezzh0pUY8gc= + + + Headers/PTDiffusionJSONFetchTopicResult.h + + hash2 + + n9dibxRGvPRIUJfhvuYFlge8huW7MhdYXhvc9w9bt+I= + + + Headers/PTDiffusionJSONPatchResult.h + + hash2 + + iLQkOP79QPRM6KYj7R1aDim0KlnmL2ls4ZFt3d9+2M8= + + + Headers/PTDiffusionJSONRequestDelegate.h + + hash2 + + yd2juwS8e/ytJq7zRRj6WtFifuOsuDTfDJGUzVu5a/8= + + + Headers/PTDiffusionJSONRequestStreamDelegate.h + + hash2 + + V5hV4r4oahxIiBHUDmY/uYZnxlssalQaYcPVg1JJwNY= + + + Headers/PTDiffusionJSONSessionResponseStreamDelegate.h + + hash2 + + PGWYZoa1NVp7ZYeuc07wQmpd+RGd2SZGUFHjNfTEIVo= + + + Headers/PTDiffusionJSONTimeSeriesEvent.h + + hash2 + + uSkpHJ35QCNfDb9i0jzJVXE37MQ1McPK3s6bgpsKp1Y= + + + Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h + + hash2 + + J3tGpr6NiDTgkzIvimuJMF/QYHRvcP5cjVPlkJyyEEk= + + + Headers/PTDiffusionJSONTimeSeriesQueryResult.h + + hash2 + + YPUQy8I9JLz/DLADhCOEr+V+8fZdPNMYDK/b34Fz85Y= + + + Headers/PTDiffusionJSONUpdateStream.h + + hash2 + + Cf+RhPVGELSJPVNwj3wXKutO06CnjAKXGm7FzOIUh1A= + + + Headers/PTDiffusionJSONValueStreamDelegate.h + + hash2 + + w8Qp38dEwbILAikQpwwT3ABHp5SzATppP/aE+yG/DT4= + + + Headers/PTDiffusionLogging.h + + hash2 + + ThkCoh6S71c2+ugUpmxHrw6KPAGYvmxfYmyQiBYnewQ= + + + Headers/PTDiffusionLoggingDestinationConfiguration.h + + hash2 + + e9rg3b8uHVVAtm6EgeUGF5DmygglLaseXRezI8GDFK0= + + + Headers/PTDiffusionLoggingLevel.h + + hash2 + + IMgmWb6Gac/ypapkMV7cwewBwIHc0G+YQreT12J5bcQ= + + + Headers/PTDiffusionLoggingMessagePrinter.h + + hash2 + + 9FVZ1A+guhhf3gqlsyeOsLQgL6p3DET0arHxsRaRae0= + + + Headers/PTDiffusionMessagingFeature.h + + hash2 + + qavtZ3Sov4MOzk9EhtqMZnmqzMlIu5MNHRHkJ+7A87g= + + + Headers/PTDiffusionMetricCollector.h + + hash2 + + at9MAzNfEAlkNyMYo+Vrj8zZc+oX/OUy1STHg2ODJG0= + + + Headers/PTDiffusionMetricCollectorBuilder.h + + hash2 + + jrPanMbMursCBYm/a9MLB2ZUrs33FOAh6GmWohpkVn4= + + + Headers/PTDiffusionMetricsFeature.h + + hash2 + + alYHcRjQQyGkaNLYcKEprHHqPRffTP5ohXFK664HBv4= + + + Headers/PTDiffusionMissingTopicHandler.h + + hash2 + + uKY6CZZtWD/Q4zd7jzpKOBBW9Ctcp5pGVWtq0BiXYpE= + + + Headers/PTDiffusionMissingTopicNotification.h + + hash2 + + p9DvZjlEiuMGCPFmQRmWPmeRgF/K4mXoeb9CiYUJ9Tc= + + + Headers/PTDiffusionMutableRecordV2Model.h + + hash2 + + eKCPCPAJOPw/EeCVLRs0+4MwNO+3dnzJFMFloj6iJxQ= + + + Headers/PTDiffusionNumberFetchResult.h + + hash2 + + ePnR6X9EQQCxk6Ml34BDOU3Z3wQr3NFjpTv5YJOu8sg= + + + Headers/PTDiffusionNumberFetchTopicResult.h + + hash2 + + MJkMq/VBNbwbliRdP7PQzzqaV2cpDgejdTCwRVlOhMI= + + + Headers/PTDiffusionNumberRequestDelegate.h + + hash2 + + l6d1NKLuIg/jkLs+dtO7fU0qGD9l2msTXvBR+OXJlfM= + + + Headers/PTDiffusionNumberRequestStreamDelegate.h + + hash2 + + g5hXaPHIFRxUL0ymBbdflCvGDADrysbD0RuFNNMvkvM= + + + Headers/PTDiffusionNumberSessionResponseStreamDelegate.h + + hash2 + + raiXClyo4QkZHwgNX9sxHMsifz+hOPIevS8r+BM2LYc= + + + Headers/PTDiffusionNumberTimeSeriesEvent.h + + hash2 + + buP5I0PdBX4HpfdNU7zAhtlqoFIC6Uk4255EZT+4ZeM= + + + Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h + + hash2 + + QzyVbrYahlkD7P3l6BBwuZTtq6gg909b+FWh/E8DycQ= + + + Headers/PTDiffusionNumberTimeSeriesQueryResult.h + + hash2 + + o0YnCbBaElVPGqVeixYvfJmLbIkeZqcc6cYStGKciPY= + + + Headers/PTDiffusionNumberUpdateStream.h + + hash2 + + XtOI5eXbcMoWswaxbPu2Sb/gcDcQH2Ba8ydT/jd1s6w= + + + Headers/PTDiffusionNumberValueStreamDelegate.h + + hash2 + + oqdIZ5ffSUdNhSFugNosZmFD5I4PB0YhlEvo/Ki48yA= + + + Headers/PTDiffusionPartialJSONUpdateConstraint.h + + hash2 + + Gx/KwGDJhT3MTsmouAcBa+h2sdc+pgmT5lOJ7Z0+WpM= + + + Headers/PTDiffusionPathPermission.h + + hash2 + + ztut6MW3+tIFlkaDGPfFqhEu18o34/PdheiuLMmlPs8= + + + Headers/PTDiffusionPingDetails.h + + hash2 + + P/sgqX583duAKsSN2Se+yLdYLg7yJfXgt1YxVAzUwzU= + + + Headers/PTDiffusionPingsFeature.h + + hash2 + + PbJAv2JR0fReNzMcqERZEBzv5qj/Qyk+wTM2pXNUhLM= + + + Headers/PTDiffusionPrimitive.h + + hash2 + + bIam3uhW5uzsP3cqi4S5ViKZxymJCHO0CWoshg1Wfss= + + + Headers/PTDiffusionRecordV2.h + + hash2 + + aSFO/taoHFK7narpCeO0qwgw8Gf7MahfZQgsF7Q1bmg= + + + Headers/PTDiffusionRecordV2Builder.h + + hash2 + + ylx/BznpVyZpmeK0baGNKlRIiHhsTn98Q1MviX1xOKQ= + + + Headers/PTDiffusionRecordV2Delta.h + + hash2 + + RtQw28FphjU93+/CQ+BkuIrvqXna86+ERPPii/ViFYA= + + + Headers/PTDiffusionRecordV2DeltaChange.h + + hash2 + + zw2jw2nh24u++nJ0yqnIR2ZHw/y9p8LBCgiTMyl1uSw= + + + Headers/PTDiffusionRecordV2DeltaChangeType.h + + hash2 + + nhZeQv+8V8F0T3yD0yEMRTHbuCSijA+ElrzJntbAmZw= + + + Headers/PTDiffusionRecordV2FetchResult.h + + hash2 + + diNYpNy3TVUtqHj+94PVRN8At3J3Q/pt1LDUCZSZe4k= + + + Headers/PTDiffusionRecordV2FetchTopicResult.h + + hash2 + + qbpi0nD2XE/HoYOxhJdlkKfnSe+M3oPNShttz7/+g+c= + + + Headers/PTDiffusionRecordV2Model.h + + hash2 + + az673ClIY13QToxNdg0k6eqR7Z4S/goLNRYpz3rY6KE= + + + Headers/PTDiffusionRecordV2RequestDelegate.h + + hash2 + + eDmg0zXrk3siHiyw54EJXP2LROZtW7l5oercgpPRyhM= + + + Headers/PTDiffusionRecordV2RequestStreamDelegate.h + + hash2 + + BKRQ3kSSSeUj4/sRB9hJwYIJGfFUR5w/JYiEScznJA0= + + + Headers/PTDiffusionRecordV2Schema.h + + hash2 + + 8ABqdXMSVQNoMU8L1+sCVqoTAVwvJi5sr0u7Y6f9gCY= + + + Headers/PTDiffusionRecordV2SchemaBuilder.h + + hash2 + + nZT4PPAuwhd81kmuDDjL/uPCfktlD5nw0hMKI7TgqDM= + + + Headers/PTDiffusionRecordV2SchemaField.h + + hash2 + + ez5vtOlO+1+LHixd3dXZmUgQhMmC/r+Dq4PagYcoSiM= + + + Headers/PTDiffusionRecordV2SchemaFieldType.h + + hash2 + + rjxh0i/TVcDOTc0/sqFzuyvtxsTpUEQ2Qx6E25wasAU= + + + Headers/PTDiffusionRecordV2SchemaNode.h + + hash2 + + cIkGHujgRHlv9TRNRbjHV0NypPgdDunXNA1c0NTK3QE= + + + Headers/PTDiffusionRecordV2SchemaRecord.h + + hash2 + + OaWvao2jABRf4RvNs1I/dt8zomyo554rjFmP2a4pup8= + + + Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h + + hash2 + + GltXf1PQU9F3u6iD3MhndXpDuxNbGU6cgqwyWFnesyU= + + + Headers/PTDiffusionRecordV2TimeSeriesEvent.h + + hash2 + + S1QB8+ULPUp2unzvvgj0XeX13mqDnUhkc/RguwqSkZU= + + + Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h + + hash2 + + 56eJs8aqJiQIWHm6ktcVHgH9qIN0dPbaKX7ugi82W+8= + + + Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h + + hash2 + + oSvxiNQA/o4xrZNIDnYVjdS0JhmfUErRdy5GPZH22G8= + + + Headers/PTDiffusionRecordV2UpdateStream.h + + hash2 + + XoaxmflJ8P6lFAy61BUszRGW2RCvVuNT2RYSLcO9m4A= + + + Headers/PTDiffusionRecordV2ValueStreamDelegate.h + + hash2 + + OBSkyOcPqobhjr+y8i3yPKSoITaKaC//yLmKPYNzoKM= + + + Headers/PTDiffusionRegistration.h + + hash2 + + AC+hSXzVgK55KdMemvMGgZlTU8gsJI0HGM2M/NHOIWc= + + + Headers/PTDiffusionRemoteServer.h + + hash2 + + Ipl+s0Ir/pp3eT/Vf26jTK5/0EeGNGiGca3CpJB0BHc= + + + Headers/PTDiffusionRemoteServerBuilder.h + + hash2 + + gaUUPE0U7WkpNQknazdOYoYUGA+KwwLf4yFEY7b7p6Y= + + + Headers/PTDiffusionRemoteServerConnectionOption.h + + hash2 + + WbaMZD+9MJLszFhmcrzVVgTV5aXg8J02HUSzi17YWro= + + + Headers/PTDiffusionRemoteServerConnectionState.h + + hash2 + + swlPqwPPRaULAyqedgBhRD7w8AeTXogdlYj0s9+XsR4= + + + Headers/PTDiffusionRemoteServersFeature.h + + hash2 + + y1JIOYUAYENRX00Q2zF18/ETQJB2u7Re0zFh/trDtGw= + + + Headers/PTDiffusionRequest.h + + hash2 + + s/Lfp8u/pzNHOKd7KCcxwAo965kFmnkS3Nttky9ew8k= + + + Headers/PTDiffusionRequestContext.h + + hash2 + + OzN0x0dcrwv87qN0XSlSv9wvadmAG6a3EAPIQAzFH1o= + + + Headers/PTDiffusionRequestHandler.h + + hash2 + + hHNsgq+E54KjW35ic5fMiX9hg+fy+Jp7w294MMZ5/VU= + + + Headers/PTDiffusionRequestStream.h + + hash2 + + i+fPGPXRnmNmFDIrIQsCd71kWzM8cLXjefPbv0RADko= + + + Headers/PTDiffusionResponder.h + + hash2 + + DdZ9X11CvjQXFliHm5mH6OFQIRqxn1+CG1dST6Fgs+I= + + + Headers/PTDiffusionResponse.h + + hash2 + + b+htxBGWuJdDzP/8in9NRYt7zJ1xlfqhtMYzjW6NdqI= + + + Headers/PTDiffusionRetryStrategy.h + + hash2 + + lL2ackpqfPu9o2BKp+iBdKHIe4dUCFXGir2cl/XHkus= + + + Headers/PTDiffusionSecurityFeature.h + + hash2 + + 5oF9U+VlTM5jHlNjiAYFybHqmtMD62sQ8520TCJQvGw= + + + Headers/PTDiffusionSendDeliveryPriority.h + + hash2 + + bdVgIqZ1mvNHklE4in6f4AxN6lwODQtF5YVXogMZZBo= + + + Headers/PTDiffusionSession.h + + hash2 + + aOJbvrzjp7w20LBbMFPr3qZdrdDIsV2LGlh0osphwzE= + + + Headers/PTDiffusionSessionConfiguration.h + + hash2 + + 7aUfnLdjsDDbA4/82urX+3vutpLpPy/xWlFa7lLmF8E= + + + Headers/PTDiffusionSessionError.h + + hash2 + + 19bGFW3lh3kbywHdtSeP7A1ptR3aGhwd5bJnTHSBJdk= + + + Headers/PTDiffusionSessionId.h + + hash2 + + b/pdRBwslaHtVtVZuKpi8dhStXVQfObJDdtIenPBrSI= + + + Headers/PTDiffusionSessionLock.h + + hash2 + + HPdjKoKoj/ccqAOaMUF8naebbfopaiBV2Dwvf51t0h0= + + + Headers/PTDiffusionSessionLockAttempt.h + + hash2 + + Oy4bs7+zLKvX06wSTJosCVqwgMJo8MaWn6jP26LULQY= + + + Headers/PTDiffusionSessionLockScope.h + + hash2 + + eqwbvTvGikz3/e4eogPGBJUXeGhNV8dQOmB6uWum7qw= + + + Headers/PTDiffusionSessionMetricCollector.h + + hash2 + + IozljUE1DL7DVqEfrmvrzMIBY58UR3Pes6siIjF0ueY= + + + Headers/PTDiffusionSessionMetricCollectorBuilder.h + + hash2 + + YvDv1NoWTEx24p9c++JGmfEPTztjsedlbKeJq3binMA= + + + Headers/PTDiffusionSessionPropertiesDelegate.h + + hash2 + + lpHxU340gS9s1pTZJh1uxc/NWwRVOOEfyDZZrCtXG8c= + + + Headers/PTDiffusionSessionPropertiesListenerRegistration.h + + hash2 + + ZuLNBjdclVDGgLU16qB120DnY8LqtClq9IaTCzLO5/Q= + + + Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h + + hash2 + + aLpsJ4rCC4TFj3icKAw4SwCUDZdSp0ObohPJHsHdwm4= + + + Headers/PTDiffusionSessionReconnectionAttempt.h + + hash2 + + FwCXyjswE7Hj5EBrSFNyNVz2oQPeumukE2QyFN1HAfs= + + + Headers/PTDiffusionSessionReconnectionStrategy.h + + hash2 + + NLqSWJnGyHtxnG50P1sSHBxi0zlfR5vAaroCavTecEk= + + + Headers/PTDiffusionSessionResponseStream.h + + hash2 + + qs973ob/v5F3fAsMKMRZqI0I0WE4/KmtBZNnE5RLKmM= + + + Headers/PTDiffusionSessionResponseStreamDelegate.h + + hash2 + + QRNr3Gse3PIgrHWR1VtdF+d9ii7ViNWEI64nGCGsO0s= + + + Headers/PTDiffusionSessionState.h + + hash2 + + bYxqFaSEGy2nLELcDV/7vH9XMaslTroU4F7oCbR+vg4= + + + Headers/PTDiffusionSessionStateChange.h + + hash2 + + M8/yWmdsYbCW9lX6pnhwnSfd90o1bVCft4s507oUoVE= + + + Headers/PTDiffusionSessionStateChangeDelegate.h + + hash2 + + am8jQ2utEtfiQO3dkpzlbQUNo58aKCH5RmxE2M8AuGQ= + + + Headers/PTDiffusionSessionTreesFeature.h + + hash2 + + 3Fw1/3L0ryyWtnHJC0mm0jnAegdY0NrSL0G2ubsZmE8= + + + Headers/PTDiffusionSetSessionPropertiesResult.h + + hash2 + + ZT4skgOofyOjtRCQdbFBFhUA7btBk41Au6JAgxDW7Mc= + + + Headers/PTDiffusionStream.h + + hash2 + + Z01BcLpUXyCkNl1UKzeDgsaGdh1Nmf+cQnTJRlIIjdc= + + + Headers/PTDiffusionStreamDelegate.h + + hash2 + + OKp/dnEU+OLBVLI8cKIobbewMTK66QNLgSRWn1EwbiE= + + + Headers/PTDiffusionStringFetchResult.h + + hash2 + + EZgkv0bTJ7vbx4q4lXOQ3uAE7FzR+50GbB6MpmRBuqQ= + + + Headers/PTDiffusionStringFetchTopicResult.h + + hash2 + + PryoSKA6X0dRT3nG38guKaVEs7hQTcOA+KnNa16A0Qg= + + + Headers/PTDiffusionStringRequestDelegate.h + + hash2 + + FoWCrvy+J4zEJgDnyd6ze70Ed4SxockWJgBaIfy3Uow= + + + Headers/PTDiffusionStringRequestStreamDelegate.h + + hash2 + + aRkqgLeibdHPAQ7vIGs2lt+b4/DYXeyt7cxD3dOVvQs= + + + Headers/PTDiffusionStringSessionResponseStreamDelegate.h + + hash2 + + k+E/xL+LibLAq3rTIKYfaQKDpX4qJnPV5K8pTdAbikA= + + + Headers/PTDiffusionStringTimeSeriesEvent.h + + hash2 + + U90vJc+4gDM/XBnh6A+OWV+oJjacZKxoeVDWBnSu6+s= + + + Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h + + hash2 + + WkxIsa0sxbn4Opqafg/DZGdkbgAqFKIl2RTGu9EfzUs= + + + Headers/PTDiffusionStringTimeSeriesQueryResult.h + + hash2 + + a+Aa8ogA/9JA8BEdQbZ1jrYbzxzn/l5m0T8RP3kkQt0= + + + Headers/PTDiffusionStringUpdateStream.h + + hash2 + + KLQPX2pO2fwi0d3ylQaXKx1UswHPw88y2gpnmU6SpGM= + + + Headers/PTDiffusionStringValueStreamDelegate.h + + hash2 + + j0aubzfnDFx/qCJExG0pCXfOE9j62guTMKIZBvl03AU= + + + Headers/PTDiffusionSubscriberStreamDelegate.h + + hash2 + + tXbsjZ/Fz4jHFGUL2oai9jkm6Ts9zdbqDbzzzSWiBFY= + + + Headers/PTDiffusionSubscriptionControlFeature.h + + hash2 + + 577CUsWVEXOH403zyribYpfeQT5CLxH4e3AnLOeNTxk= + + + Headers/PTDiffusionSubscriptionRoutingRequest.h + + hash2 + + 7WtOrCkqrBKfaFJvH7Twc/krOlfNrwvT5+Bvr/aQsWE= + + + Headers/PTDiffusionSubscriptionRoutingRequestHandler.h + + hash2 + + RJjJK3WCbo6On5aoF5Wl8nRUBNnrGBZqGk9TctyMvA8= + + + Headers/PTDiffusionTimeSeriesEvent.h + + hash2 + + 5VG95jJeM9H1vz5vUHuXlLbNdqEEZPQKSWmawxb5NDg= + + + Headers/PTDiffusionTimeSeriesEventMetadata.h + + hash2 + + gQQjIWKJiUPdnTnK8c3q3d5+zviWGHWCQhH6k6wafak= + + + Headers/PTDiffusionTimeSeriesFeature.h + + hash2 + + bJ14hUgeVsI7pmf0Gp7XPl15nwTclL6QbiWTNB/J6NQ= + + + Headers/PTDiffusionTimeSeriesFetchResult.h + + hash2 + + VQbww+bJHpKLZVw5ozGHGcJsJbzWDopMins1f4GoDCc= + + + Headers/PTDiffusionTimeSeriesFetchTopicResult.h + + hash2 + + 70ZAVjYK54fPbI/aBwmPLPqlGRp906FpeahTBArh8UM= + + + Headers/PTDiffusionTimeSeriesQueryResult.h + + hash2 + + DHFhF1le1yYZG7QB9XjEpuTNeQKnx+/nJ6IydZXbSro= + + + Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h + + hash2 + + bhUqJ6BsDyWGwCjInsDC4UBeq/gZB5u5bqsZbZdNq14= + + + Headers/PTDiffusionTimeSeriesRangeQuery.h + + hash2 + + 88wFqFx9xtfeGUzuGPNUyWy+HZ0w3J69Dmpgu8GF0WU= + + + Headers/PTDiffusionTopicControlFeature.h + + hash2 + + TNPv7A1Pc7kGI6am+cbLzrovDKOZdWOgnh51mpjr0FA= + + + Headers/PTDiffusionTopicCreationResult.h + + hash2 + + 0eFshVZ8h0pY9lKi20iOj7RfEPY+5T1l1pECdmLdFI0= + + + Headers/PTDiffusionTopicMetricCollector.h + + hash2 + + 2qs00SrBSzk8lUh8OVFMfQKkmmOe9/jAormyRZUzDCo= + + + Headers/PTDiffusionTopicMetricCollectorBuilder.h + + hash2 + + 6LinbFSYd4TEuw/bhnsx6e5vxZdq8lD1UVobF0qnVPI= + + + Headers/PTDiffusionTopicNotificationListener.h + + hash2 + + Yd65kVGGp6/jytaX0dO4N3/nyN5d2hX0hiPq19iNkbk= + + + Headers/PTDiffusionTopicNotificationRegistration.h + + hash2 + + /kZ4Jgw1b6/dFhaP0Bs37rKtyU4qg3cb3LlGkLIrZqY= + + + Headers/PTDiffusionTopicNotificationType.h + + hash2 + + R6Vv6W9PRLpJv55+h+fKVGJa/y3OlS36Kt5QJ3vuaPM= + + + Headers/PTDiffusionTopicNotificationsFeature.h + + hash2 + + 9nIAjTCyPklFkgqsz9XUCe4/VIoWvMTomyPUDVNnd6Y= + + + Headers/PTDiffusionTopicPermission.h + + hash2 + + iHfHjjZXfd7enFoS1PUR+q0wl+bOV/YvDqRAvTW92h8= + + + Headers/PTDiffusionTopicRemovalResult.h + + hash2 + + 4UPlfIx5Kp0DTFEBUoGxDPULjn9rWA68/6dYOgJ7XRM= + + + Headers/PTDiffusionTopicSelector.h + + hash2 + + 0/Gr4YiDdZa5EG6bKOeN8StjNShjC1AEsRpXJ+j8g+8= + + + Headers/PTDiffusionTopicSpecification.h + + hash2 + + 7l2YWBc8NotaGX/yG82SCQA60ne3Q+6SrQA2P7hx+j0= + + + Headers/PTDiffusionTopicTreeRegistration.h + + hash2 + + kQ3awGQo+b7tPgX2VMOYa+Bg41so8LMtV50t3B4JdQ0= + + + Headers/PTDiffusionTopicTreeRegistrationDelegate.h + + hash2 + + XjL0BeHNZXrK1Uh/p/IR/I7Gx+XZkdfMJBtksK6A2yg= + + + Headers/PTDiffusionTopicType.h + + hash2 + + Kxx6dzJsEyUOaMEUp3V2RRdXlFQFeyYtCGifEjWkIJ0= + + + Headers/PTDiffusionTopicUnsubscriptionReason.h + + hash2 + + zh3U7QP1cmfSJ7dSUHgTCvi0dP4HFP6dZg4k2nqlm2c= + + + Headers/PTDiffusionTopicUpdateFeature.h + + hash2 + + A4+YoizxM5TQQjgknubvhaNCLYmHrJ3FhqJKdRLdqaw= + + + Headers/PTDiffusionTopicView.h + + hash2 + + 8ArWfdJooTE+1YebNF7DbQBWQwg7WaAX0KL69fZWNSU= + + + Headers/PTDiffusionTopicViewsFeature.h + + hash2 + + 2/+vZqxCDMUYv6fY2x1lVuviabAtyFNliwS3ihLLOQU= + + + Headers/PTDiffusionTopicsFeature.h + + hash2 + + O/N4e3K4VGNsXRkcH+HRfPkayqJaHunzpinEW7gICeU= + + + Headers/PTDiffusionUpdateConstraint.h + + hash2 + + 7Zk0Kppo3shbAB5ANtfw5q13LdXwfOr9egJHcpZZmJo= + + + Headers/PTDiffusionUpdateStream.h + + hash2 + + FmGglpmZL0KdJMlw9r41qQY/BpdALvuiiAclQ961WQw= + + + Headers/PTDiffusionUpdateStreamBuilder.h + + hash2 + + SnJKtvSveD1LG7lOtN+js9VlM0+nG1JUGHq8pPDlJ1c= + + + Headers/PTDiffusionValueStream.h + + hash2 + + jltRdIfQ1M/rbV03jANn+F5kMjLxg8e17DeBMKCzggE= + + + Headers/PTDiffusionVersion.h + + hash2 + + REiwYO8DNVoVvpIWKjCPxN05ivkRw2uLsCAe/fjcTr0= + + + Modules/module.modulemap + + hash2 + + IOdf2zvMpEjPRyI0O/jRrRe4UhkqYb+0eyRNsRwyyZE= + + + error_descriptions.plist + + hash2 + + L6RBSUl8uDGQwDq+499ouBNekHDnpS9jh5pj8lFJe3U= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist new file mode 100644 index 0000000..6dc5928 Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist differ diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000..8ad5404 --- /dev/null +++ b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.- + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion new file mode 100644 index 0000000..5e46a77 Binary files /dev/null and b/Sources/Diffusion.xcframework/ios-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion differ diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Diffusion b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Diffusion index d3b528a..f8054b1 100755 Binary files a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Diffusion and b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Diffusion differ diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/Diffusion.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/Diffusion.h index 675946c..4a29369 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/Diffusion.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/Diffusion.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -16,7 +16,7 @@ Framework umbrella header file. */ -@import Foundation; +#import #import #import @@ -68,6 +68,8 @@ #import #import #import +#import +#import #import #import #import @@ -138,6 +140,7 @@ #import #import #import +#import #import #import #import @@ -158,6 +161,7 @@ #import #import #import +#import #import #import #import @@ -206,5 +210,6 @@ #import #import #import +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusion.h index 27dfff5..c1be496 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusion.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusion.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionAddTopicResult.h index 738baf5..e084fef 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionAddTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionAddTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBasicHTTPProxyAuthentication.h index 6fbf6e3..10308a5 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBasicHTTPProxyAuthentication.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBasicHTTPProxyAuthentication.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinary.h index 9e16384..1c06044 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinary.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinary.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryDelta.h index 567dd0b..ddd2be4 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryDelta.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryDelta.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchResult.h index 190d691..61cc708 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchTopicResult.h index 1a8d760..42e3874 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestDelegate.h index 02b00df..f6ee77f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestStreamDelegate.h index 8ec00d2..7cd0178 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h index 67c6393..a5d0a93 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEvent.h index e32a8ce..cad83e5 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h index bd71fad..f3ea38b 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h index 1394647..ffd4a0d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryUpdateStream.h index 3d207c0..40fdcb4 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryUpdateStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryValueStreamDelegate.h index 7ff6e28..9294dcd 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBinaryValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMapping.h index 406a862..a45cf1a 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMapping.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMapping.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTable.h index 3f3135e..33cea73 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTable.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTable.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionBranchMapping; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTableBuilder.h index ac7d9e9..06c913c 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTableBuilder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBranchMappingTableBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionBranchMappingTable; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBytes.h index feafd5b..9b0b121 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBytes.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionBytes.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCancellable.h index 527527e..d11a077 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCancellable.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCancellable.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCheckRemoteServerResult.h index e948368..77cb3a3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCheckRemoteServerResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCheckRemoteServerResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServer; @class PTDiffusionRemoteServerConnectionState; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientControlFeature.h index 3b85b3d..824016f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientControlFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @protocol PTDiffusionSessionPropertiesDelegate; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueueEventListener.h index 241997f..91135ca 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueueEventListener.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueueEventListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRegistration; @class PTDiffusionClientQueuePolicy; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueuePolicy.h index 176762c..05e9a08 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueuePolicy.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionClientQueuePolicy.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCloseReason.h index 0b40936..0cde947 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCloseReason.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCloseReason.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCreateRemoteServerResult.h index 70a70ad..ae4e164 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCreateRemoteServerResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCreateRemoteServerResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServer; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCredentials.h index c8448d9..365608d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCredentials.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionCredentials.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataType.h index a82451c..a1af9f6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataType.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataTypes.h index c3709e0..8821a4f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataTypes.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDataTypes.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionDataType; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h index 888f576..9b8d5e5 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultStreamDelegate.h index 5c0b787..d246a84 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h index ac5f160..a9f9a99 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicNotificationListener.h index 4705af9..04a802a 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicNotificationListener.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicNotificationListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h index 07b78b1..cc32f47 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionEnumeration.h index b9c0b4a..8513903 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionEnumeration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionEnumeration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionError.h index fa3029f..fb285ca 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionError.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionError.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -1147,6 +1147,36 @@ typedef NS_ENUM(NSInteger, PTDiffusionError) { */ PTDiffusionError_KeyNotFoundInDictionary = 20155, + /** + * Update Stream recovery buffer limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamBuffer = 20156, + + /** + * Update Stream recovery attempt limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamRecoveryLimit = 20157, + + /** + * Failed to serialise value. + @since 6.9 + */ + PTDiffusionError_ValueSerialisation = 20158, + + /** + * Invalid Protocol Version. + * @since 6.9 + */ + PTDiffusionError_ClientVersionDowngrade = 20159, + + /** + * Invalid argument for the method. + * @since 6.9 + */ + PTDiffusionError_InvalidArgument = 20160, + }; NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionErrorListener.h index 58d3cc9..a5b575b 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionErrorListener.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionErrorListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFeature.h index c93f962..38f926d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSession; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchRequest.h index b086393..5bb54e9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchRequest.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionFetchResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchResult.h index 1fd16cf..b28c2bd 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchTopicResult.h index a13ac71..ba25ffd 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGetSessionPropertiesResult.h index 5597758..68585a2 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGetSessionPropertiesResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGetSessionPropertiesResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGlobalPermission.h index 4d85fa4..b82cebc 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGlobalPermission.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionGlobalPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthentication.h index b8d54a2..d82908f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthentication.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthentication.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionHTTPAuthenticationChallengeHandler; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallenge.h index ff4d980..74c30b3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallenge.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallenge.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionHTTPAuthenticationChallengeStatus; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h index e773f48..f2125a6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionHTTPAuthenticationChallenge; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h index 139476b..97ef12d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPProxyConfiguration.h index 966605d..d17e32d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPProxyConfiguration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPProxyConfiguration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionHTTPAuthentication; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPResponse.h index 28b1664..a702e5a 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPResponse.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionHTTPResponse.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSON.h index 2a6daf1..2eadd76 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSON.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSON.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2016 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import @@ -48,10 +48,10 @@ NS_ASSUME_NONNULL_BEGIN /** @brief An immutable JSON value with support for both binary and JSON deltas. - + JSON is "JavaScript Object Notation", a lightweight data-interchange format. See [www.json.org](http://www.json.org). - + Internally the value is stored and transmitted not as a JSON string, but in CBOR format to reduce memory and network overhead. CBOR (Concise Binary Object Representation) is a standardized format for binary representation of @@ -69,24 +69,24 @@ NS_ASSUME_NONNULL_BEGIN /** Return a JSON object initialized with the given object. - + Object hierarchies passed to this method must be constructed from Foundation objects which can be logically encoded with CBOR. This provides flexibility above and beyond the basic capabilities of a 'pure JSON' encoding as well as being less restrictive than the capabilities of NSJSONSerialization. - + This means: - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, `NSDictionary` or `NSNull`. - Dictionary keys may be instances of any supported type. - The top level object may be of any supported type. - + Being more permissive than NSJSONSerialization in that: - `NSData` instances may be used. - Dictionary keys are not restricted to instances of `NSString`. - The top level object is not restricted to being a container (`NSArray` or `NSDictionary`). - + Applications may take advantage of the more permissive nature of the underlying CBOR encoding by using these capabilities, assuming: 1. Encoding to JSON string is not required. @@ -95,7 +95,7 @@ NS_ASSUME_NONNULL_BEGIN @param object The object to be serialized to CBOR and stored internally to represent the receiver. - + @param error If this method returns `nil` to indicate that an error occurred then this will be populated with the reason for that failure. @@ -111,11 +111,11 @@ NS_ASSUME_NONNULL_BEGIN /** Convenience wrapper around initWithObject:error: that first uses NSJSONSerialization to generate the object to be serialized. - + @param jsonData A data object containing JSON data. See Apple's NSJSONSerialization documentation for detailed information regarding supported encodings. - + @param error If this method returns `nil` to indicate that an error occurred then this will be populated with the reason for that failure. @@ -149,13 +149,13 @@ NS_ASSUME_NONNULL_BEGIN /** Compare the receiver's JSON value with another (e.g. an earlier version) to create a binary delta. - + @param json The original to which the delta should be able to be applied in order to generate the value represented by the receiver. - + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - + @return A delta representing the difference between json and the receiver, or `nil` if there was an error (e.g. either the original or the receiver don't represent a valid JSON value). @@ -169,16 +169,16 @@ NS_ASSUME_NONNULL_BEGIN /** Apply a binary delta to the receiver's JSON value to create a new value. - + @param delta The delta describing the changes to be applied to the receiver's value in order to create the value to be returned. - + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - + @return The new JSON value, or `nil` if there was an error (e.g. the receiver does not represent a valid JSON value). - + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. @since 5.9 @@ -221,7 +221,7 @@ NS_ASSUME_NONNULL_BEGIN @return A data object containing JSON, or `nil` if there was an error (e.g. the receive doesn't represent a valid JSON value or cannot be converted to pure JSON). - + @since 5.9 */ -(nullable NSData*)JSONDataWithError:(NSError **)error; @@ -291,15 +291,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving JSON requests for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. - + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -359,14 +359,14 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support for responding to requests using JSON values. - + @since 6.0 */ @interface PTDiffusionResponder (PTDiffusionJSON) /** Dispatch a response to a request. - + @param json The value to send in response. @exception NSInvalidArgumentException Raised if the json argument is `nil`. @@ -387,14 +387,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a JSON response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -439,20 +439,20 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support to the Time Series feature for appending and editing events using JSON values. - + @since 6.0 */ @interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) /** Update a time series topic by appending a new JSON value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -504,13 +504,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -535,9 +535,9 @@ NS_ASSUME_NONNULL_BEGIN Evaluate a query for a time series topic where events have JSON values. @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -731,9 +731,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If path is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with JSON values @@ -757,10 +759,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If either argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -785,10 +789,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#json. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -816,11 +822,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#json. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); @end diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONDelta.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONDelta.h new file mode 100644 index 0000000..81a2962 --- /dev/null +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONDelta.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; +@class PTDiffusionJSONDeltaChangeMap; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable structural delta describing the differences between two + JSON values. + + Unlike a binary delta, a structural delta can be queried to determine its + effect. + + JSON deltas are useful for identifying small changes to complex JSON values. + + @see PTDiffusionJSON + + @since 6.3 + */ +@interface PTDiffusionJSONDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The parts of the first JSON value not found in the second JSON value. + + @note The pointer references used for the change map keys are relative to the + first JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* removed; + +/** + The parts of the second JSON value not found in the first JSON value. + + @note The pointer references used for the change map keys are relative to the + second JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* inserted; + +/** + Whether the two JSON values used to create this instance are different. + + @since 6.3 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONDeltaChangeMap.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONDeltaChangeMap.h new file mode 100644 index 0000000..d09763e --- /dev/null +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONDeltaChangeMap.h @@ -0,0 +1,86 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable map describing the changes to a JSON value. + + The map contains an entry for each change, as follows: + + - The key is a [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the change in the complete value. Since a JSON value is a + list of zero or more data items, the reference always begins with an array + index. For example, the first part is identified by the JSON Pointer `/0`. + - The value is part of the complete value. It is returned as a JSON object that + can be parsed independently as a unit, or converted to a Foundation object or + JSON string. + + @since 6.3 + */ +@interface PTDiffusionJSONDeltaChangeMap : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The entries forming the change map. + */ +@property(nonatomic, readonly) NSDictionary* map; + +/** + Returns a view of the portion of this map whose keys are descendants of + `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the descendants of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)descendantsOfPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Returns a view of the portion of this map whose keys are descendants or parents + of `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + This method can be used to determine whether a structural delta affects a + particular part of a JSON value. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the intersection of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)intersectionOfPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchResult.h index 5f16be3..7c5533e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchTopicResult.h index 787a14f..0450807 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONPatchResult.h index 7564651..ca6c7ad 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONPatchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONPatchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestDelegate.h index 1b2499d..5a8bd92 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestStreamDelegate.h index acdbb12..3b737e9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h index 04576c9..e51bb2c 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEvent.h index 9ee409b..e0edc20 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h index ef818ea..fdf131e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesQueryResult.h index 696bf4e..bca18ac 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONUpdateStream.h index ab37a71..5389c12 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONUpdateStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONValueStreamDelegate.h index 930dd93..bcb1b11 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionJSONValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLogging.h index 3e0b6e8..f835e7e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLogging.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLogging.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionLoggingDestinationConfiguration; @class PTDiffusionLoggingLevel; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingDestinationConfiguration.h index a779a35..89407c2 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingDestinationConfiguration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingDestinationConfiguration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingLevel.h index a993729..556f664 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingLevel.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingLevel.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingMessagePrinter.h index d98a267..d15d48b 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingMessagePrinter.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionLoggingMessagePrinter.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMessagingFeature.h index 4544b00..15e6912 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMessagingFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMessagingFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBytes; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollector.h index fc66026..7a99879 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollector.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollectorBuilder.h index def2453..3b99f77 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricCollectorBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -40,7 +40,7 @@ NS_ASSUME_NONNULL_BEGIN @return the builder */ --(instancetype)exportToPrometheus:(BOOL)export; +-(instancetype)exportToPrometheus:(BOOL)exportToPrometheus; /** diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricsFeature.h index 2a189a4..df615f3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricsFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMetricsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionMetricCollector; @@ -93,7 +93,7 @@ NS_ASSUME_NONNULL_BEGIN PTDiffusionMetricsFeature *const metrics = session.metrics; - @author Push Technology Limited + @author DiffusionData Limited @since 6.7 */ diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicHandler.h index 6d29125..5b87b0b 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicHandler.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionMissingTopicNotification; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicNotification.h index f356365..f35483e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicNotification.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMissingTopicNotification.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMutableRecordV2Model.h index f0d1233..d25abaf 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMutableRecordV2Model.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionMutableRecordV2Model.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchResult.h index 6872693..c05250c 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchTopicResult.h index 237a929..5a3f194 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestDelegate.h index 287674f..ae0ba41 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRequestContext; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestStreamDelegate.h index c31c0fc..5b784bd 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionResponder; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h index 177da2c..49030b4 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEvent.h index a62f940..ba41d8d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h index 6cdc4cf..03082c0 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesQueryResult.h index 85d578f..ba80576 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberUpdateStream.h index 3e88e19..fcf8324 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberUpdateStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberValueStreamDelegate.h index f95c95d..ca73355 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionNumberValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPartialJSONUpdateConstraint.h index e16e776..e999346 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPartialJSONUpdateConstraint.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPartialJSONUpdateConstraint.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPathPermission.h index de3e036..bef37ec 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPathPermission.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPathPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingDetails.h index 537326e..6d4d4f3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingDetails.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingDetails.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingsFeature.h index 0cbeeb1..7371089 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingsFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPingsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionPingDetails; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPrimitive.h index 2fd050d..22b31b5 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPrimitive.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionPrimitive.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import @@ -71,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN receiver of values using the Topics feature. @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionTopicsFeature @since 6.0 @@ -167,15 +167,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving double-precision floating point numeric requests (Eight-byte IEEE 754) for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -185,15 +185,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving 64-bit integer requests for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. - + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -327,7 +327,7 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request that can be used to send the given double-precision floating point (Eight-byte IEEE 754) value using messaging. - + @param value The value to send as the request. @return The new request, or `nil` on failure. @@ -605,7 +605,7 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support for responding to requests using primitive values. - + @since 6.0 */ @interface PTDiffusionResponder (PTDiffusionPrimitive) @@ -613,9 +613,9 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a request. - + @param value The value to send in response. - + @since 6.0 */ -(void)respondWithDouble:(double)value; @@ -623,13 +623,13 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a request. - + @param number The value to send in response. This may be `nil` in order to send a 'null' response. - + @param error Location to store a reason if this method returns `NO` to indicate failure. - + @return `YES` if a response was queued for dispatch or `NO` if the supplied number could not be encoded using this data type. @@ -640,22 +640,22 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a 64-bit integer response to a request. - + @param value The value to send in response. - + @since 6.0 */ -(void)respondWithLongLong:(long long)value; /** Dispatch a 64-bit integer response to a request. - + @param number The value to send in response. This may be `nil` in order to send a 'null' response. - + @param error Location to store a reason if this method returns `NO` to indicate failure. - + @return `YES` if a response was queued for dispatch or `NO` if the supplied number could not be encoded using this data type. @@ -666,7 +666,7 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a string response to a request. - + @param string The value to send in response. This may be `nil` in order to send a 'null' response. @@ -693,14 +693,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a string response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -717,14 +717,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a double-precision floating point (Eight-byte IEEE 754) response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -740,14 +740,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a 64-bit integer response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -839,20 +839,20 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support to the Time Series feature for appending and editing events using primitive values. - + @since 6.0 */ @interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) /** Update a time series topic by appending a new string value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -900,13 +900,13 @@ NS_ASSUME_NONNULL_BEGIN /** Update a time series topic by appending a new double-precision floating point (Eight-byte IEEE 754) value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -953,13 +953,13 @@ NS_ASSUME_NONNULL_BEGIN /** Update a time series topic by appending a new 64-bit integer value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -1010,13 +1010,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1043,13 +1043,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1076,13 +1076,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1105,11 +1105,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have string values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1126,11 +1126,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have double-precision floating point (Eight-byte IEEE 754) values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1147,11 +1147,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have 64-bit integer values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1963,9 +1963,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with @@ -1986,9 +1988,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with 64-bit @@ -2009,9 +2013,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with string @@ -2035,10 +2041,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with @@ -2063,10 +2071,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with 64-bit @@ -2090,10 +2100,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2118,10 +2130,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#string. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2146,10 +2160,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#doubleFloat. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2174,10 +2190,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#int64. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2205,11 +2223,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#string. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2238,11 +2258,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#doubleFloat. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2270,11 +2292,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#int64. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); @end diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2.h index 4760b44..8e03dfd 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Builder.h index feabd27..3150322 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Builder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Builder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Delta.h index a466731..0b42ba3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Delta.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Delta.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2DeltaChange; @class PTDiffusionRecordV2Schema; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChange.h index 242bdcb..c98bb5d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChange.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChange.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2DeltaChangeType; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChangeType.h index 764b033..35b3210 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChangeType.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2DeltaChangeType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchResult.h index f4fcca1..ce9ae6e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2FetchTopicResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchTopicResult.h index 3d2d57d..a3808c3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2FetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Model.h index 53f84c0..407076f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Model.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Model.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestDelegate.h index e97cfda..f840fb6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestStreamDelegate.h index 0c309ea..9902618 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2RequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Schema.h index 0a3ed64..9eb1c8b 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Schema.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2Schema.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionMutableRecordV2Model; @class PTDiffusionRecordV2SchemaRecord; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaBuilder.h index 5612c5d..c709608 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaBuilder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2Schema; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaField.h index 3db6034..18e6233 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaField.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaField.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2SchemaFieldType; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaFieldType.h index 1528f70..9370ef7 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaFieldType.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaFieldType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaNode.h index 467e591..6e796e9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaNode.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaNode.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaRecord.h index 5faf861..2cf810e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaRecord.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SchemaRecord.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2SchemaField; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h index 2c8d181..a122db1 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEvent.h index b684558..c6c096b 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h index fbeb15d..1baa01e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2TimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h index 9eb6d39..4b532e6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2TimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2UpdateStream.h index c1276ee..9d92497 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2UpdateStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2UpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2ValueStreamDelegate.h index f4a23cd..0a94cc5 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2ValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRecordV2ValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRegistration.h index 14b8d3d..ca77e51 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRegistration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServer.h index 991ffb8..de32eb6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServer.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServer.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRemoteServerConnectionOption; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerBuilder.h index 61737b8..4251fa9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerBuilder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServerConnectionOption; @class PTDiffusionRemoteServer; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionOption.h index 2cae572..45be376 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionOption.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionOption.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionState.h index 7c8ec46..ed52d78 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionState.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServerConnectionState.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServersFeature.h index 17f5dbf..cedcce6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServersFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRemoteServersFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionCredentials; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequest.h index 5eeafe1..c1c1ce8 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequest.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestContext.h index 6c99e05..7bd3717 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestContext.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestContext.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestHandler.h index 9900629..89599c3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestHandler.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestStream.h index a03f935..d546be8 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRequestStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponder.h index 940983a..58d4204 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionResponse; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponse.h index 9828470..2dbb969 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponse.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionResponse.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRetryStrategy.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRetryStrategy.h new file mode 100644 index 0000000..068bed3 --- /dev/null +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionRetryStrategy.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Defines a retry strategy. + + A retry strategy will be applied when an initial to attempt to open a session + fails with a SessionEstablishmentTransientException + + The strategy is defined in terms of the number of milliseconds between retries and + the maximum number of retries to attempt. + + @since 6.9 + */ +@interface PTDiffusionRetryStrategy : NSObject + +/** + The retry strategy that indicates that no retry is to be attempted. + */ ++(instancetype)NO_RETRY; + +/** + Creates a new retry strategy object. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + @param attempts the number of retry attempts + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval andAttempts:(const NSInteger) attempts; + + +/** + Creates a new retry strategy that will retry indefinitely at the + specified interval. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval; + + +/** + No retry constructor + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)init; + + +/** + The number of milliseconds between retries + + @since 6.9 + */ +@property(nonatomic, readonly) NSUInteger interval; + + +/** + The maximum number of retries to attempt + + @since 6.9 + */ +@property(nonatomic, readonly) NSInteger attempts; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSecurityFeature.h index abd9c58..5d8212d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSecurityFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSecurityFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionCredentials; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSendDeliveryPriority.h index e71c65d..58b20c8 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSendDeliveryPriority.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSendDeliveryPriority.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** Delivery priority for a sent message. diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSession.h index dad91b1..d11fd1f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSession.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSession.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionClientControlFeature; @class PTDiffusionMessagingFeature; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionConfiguration.h index 2211ad9..01639df 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionConfiguration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionConfiguration.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,26 +10,31 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionCredentials; @class PTDiffusionHTTPProxyConfiguration; +@class PTDiffusionRetryStrategy; @protocol PTDiffusionSessionReconnectionStrategy; +@protocol PTDiffusionSessionStateChangeDelegate; extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; + NS_ASSUME_NONNULL_BEGIN + /** @brief A session configuration defines behavior and policies to use when connecting to Diffusion. - + @see PTDiffusionSession @since 5.6 */ @interface PTDiffusionSessionConfiguration : NSObject + /** Returns a session configuration object initialized with the given principal and credentials. @@ -47,9 +52,10 @@ NS_ASSUME_NONNULL_BEGIN -(instancetype)initWithPrincipal:(nullable NSString *)principal credentials:(nullable PTDiffusionCredentials *)credentials; + /** The security principal to use when opening the session. - + A value of `nil` dictates that no principal name will be associated with the session, indicating anonymous authentication. @@ -57,29 +63,32 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSString *principal; + /** The security credentials to use when opening the session. - + A value of `nil` dictates that no credentials will be used when authenticating the session. @since 5.6 */ @property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; + /** The reconnection timeout in seconds that will be used on connection failure. - + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. @since 5.6 */ @property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; + /** The reconnection strategy that will be used on connection failure. - + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default reconnection strategy will be employed. @@ -87,11 +96,25 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly) id reconnectionStrategy; + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) PTDiffusionRetryStrategy* initialRetryStrategy; + + /** The default recovery buffer size in messages. @return Number representing the default recovery buffer size in messages. - + @see recoveryBufferSize @since 6.0 @@ -100,41 +123,44 @@ NS_ASSUME_NONNULL_BEGIN /** The recovery buffer size in messages; can be zero. - + If the server is configured to support reconnection, a session established with a non-zero reconnection time retains a buffer of sent messages. If the session disconnects and reconnects, this buffer is used to re-send messages that the server has not received. - + Higher values increase the chance of successful reconnection, but increase the per-session memory footprint. @see defaultRecoveryBufferSize - + @since 6.0 */ @property(nonatomic, readonly) NSUInteger recoveryBufferSize; + /** The default connection timeout (2 seconds). @return Time interval representing the default connection timeout. - + @since 5.7 */ +(NSTimeInterval)defaultConnectionTimeout; + /** The lowest value that the maximum message size can be set to in bytes. @return Number representing the lowest value in bytes that the maximum message size can be set to. @see maximumMessageSize - + @since 6.0 */ +(NSUInteger)maximumMessageSizeMinimum; + /** The default maximum message size in bytes. @@ -145,11 +171,12 @@ NS_ASSUME_NONNULL_BEGIN @return Number representing the default maximum message size in bytes. @see maximumMessageSize - + @since 6.0 */ +(NSUInteger)defaultMaximumMessageSize; + /** The default maximum outbound queue size in messages. @@ -161,6 +188,7 @@ NS_ASSUME_NONNULL_BEGIN */ +(NSUInteger)defaultMaximumQueueSize; + /** The maximum message size in bytes. @@ -175,6 +203,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSUInteger maximumMessageSize; + /** The maximum size of the outbound message queue for the connection. @@ -196,9 +225,10 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSUInteger maximumQueueSize; + /** The connection timeout. - + This constrains the time taken to establish an initial connection to the server. The server is responsible for limiting the overall time taken to complete a connection once it has received the request. @@ -207,20 +237,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSTimeInterval connectionTimeout; + /** Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections. - + A value of `nil` or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied. Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - + For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely: - + configuration.sslOptions = [NSDictionary dictionaryWithObject:kCFBooleanFalse forKey:kCFStreamSSLValidatesCertificateChain]; @@ -229,6 +260,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; + /** User-defined @ref md_session_properties "session properties". @@ -243,18 +275,28 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSDictionary* properties; + /** Configuration of the HTTP Proxy that should be used to make connections to the server. - + This allows connection to a server using HTTP CONNECT tunneling through the specified proxy. - + A value of `nil` dictates that a proxy is not used. This is the default. @since 6.0 */ @property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) id sessionStateListener; + + /** Compares the receiver to the given session configuration. @@ -266,8 +308,12 @@ NS_ASSUME_NONNULL_BEGIN */ -(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; + @end + + + /** @brief A mutable session configuration can be modified prior to being used to define behaviour and policies to use when connecting to Diffusion. @@ -286,6 +332,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) NSString *principal; + /** The security credentials to use when opening the session. @@ -295,6 +342,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; + /** The reconnection timeout in seconds that will be used on connection failure. @@ -316,6 +364,20 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite) id reconnectionStrategy; + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) PTDiffusionRetryStrategy* initialRetryStrategy; + + /** The recovery buffer size in messages; can be zero. @@ -333,13 +395,14 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger recoveryBufferSize; + /** The maximum message size in bytes. This constrains the size of messages that may be received from the server and thus the size of any content that can be received. The limit protects against unexpectedly large messages. - + @exception NSInvalidArgumentException On writing to this property if the given size is below the allowable minimum. @@ -350,6 +413,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger maximumMessageSize; + /** The maximum size of the outbound message queue for the connection. @@ -371,6 +435,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger maximumQueueSize; + /** The connection timeout. @@ -379,7 +444,7 @@ NS_ASSUME_NONNULL_BEGIN once it has received the request. If not explicitly set, defaultConnectionTimeout will be assumed. - + @note If this exceeds one hour (3,600 seconds) a warning will be logged and the connection timeout will be constrained to one hour. @@ -387,20 +452,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSTimeInterval connectionTimeout; + /** Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections. - + A value of `nil` or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied. - + Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - + For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely: - + configuration.sslOptions = [NSDictionary dictionaryWithObject:kCFBooleanFalse forKey:kCFStreamSSLValidatesCertificateChain]; @@ -409,6 +475,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; + /** User-defined @ref md_session_properties "session properties". @@ -435,6 +502,16 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) id sessionStateListener; + + @end + NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionError.h index 398b49e..f65cc34 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionError.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionError.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -51,7 +51,7 @@ typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { @since 6.0 - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Establishment instead. instead. + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_ClosedByClient instead. instead. */ PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionId.h index c960865..f21d301 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionId.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionId.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLock.h index 9de38c1..f7f2264 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLock.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLock.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionLockScope; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLockAttempt.h index 7d870c5..9a8588a 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLockAttempt.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionLockAttempt.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionLock; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollector.h index 22c03cf..b642626 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollector.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollectorBuilder.h index faf8565..c73e9da 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionMetricCollectorBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionMetricCollector; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesDelegate.h index 5b76343..9ca6e01 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistration.h index 7a0cb20..b39b8dd 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h index 3b31c14..e788596 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionPropertiesListenerRegistration; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionAttempt.h index 476ebe2..8adf4c3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionAttempt.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionAttempt.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionStrategy.h index d221776..174d5b8 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionStrategy.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionReconnectionStrategy.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSession; @class PTDiffusionSessionReconnectionAttempt; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStream.h index ada35b0..8910630 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStreamDelegate.h index 6259851..0df709f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionState.h index 844aa43..3aa6ec9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionState.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionState.h @@ -10,18 +10,18 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN /** @brief Session state represents the condition a session has in respect of connectivity to a Diffusion server. - + A session state object is immutable. @see PTDiffusionSessionStateChange - + @since 5.6 */ @interface PTDiffusionSessionState : NSObject @@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN /** `YES` if the session is closed, otherwise `NO`. - + This might mean that the session lost its connection to the server and could not be recovered. @@ -58,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN /** If the session is closed then this property will be `nil` if the closure was normal and expected, otherwise it will contain the failure reason. - + @note This property is to be considered as an auxiliary, informational attachment to this session state instance. As such it is not incorporated within the result of the hash method and is not checked on calls to isEqual: @@ -79,6 +79,57 @@ NS_ASSUME_NONNULL_BEGIN */ -(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; + + +/** + The session has been closed by the client. + + @since 6.9 + */ ++(instancetype)ClosedByClient; + + +/** + The session has been closed (or rejected) by the server. + + @since 6.9 + */ ++(instancetype)ClosedByServer; + + +/** + The session has lost its connection to a server and could not be recovered. + + @since 6.9 + */ ++(instancetype)ClosedFailed; + + +/** + An active connection with the server has been established. + + @since 6.9 + */ ++(instancetype)ConnectedActive; + + +/** + The session is establishing its initial connection. + + @since 6.9 + */ ++(instancetype)Connecting; + + +/** + Connection with a server has been lost and the session is attempting reconnection. + + @since 6.9 + */ ++(instancetype)RecoveringReconnect; + + @end + NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChange.h index e11b54c..8a4712f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChange.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChange.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionState; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChangeDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChangeDelegate.h new file mode 100644 index 0000000..8b2e30a --- /dev/null +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionStateChangeDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2023 DiffusionData Ltd., All Rights Reserved. +// +// Use is subject to licence terms. +// +// NOTICE: All information contained herein is, and remains the +// property of DiffusionData. The intellectual and technical +// concepts contained herein are proprietary to DiffusionData and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The optional delegate for a session which may be used to receive state notifications. + + By default a session will not have a listener. + + @since 6.9 + */ +@protocol PTDiffusionSessionStateChangeDelegate + + +/** + Called whenever the state of a session changes. + + @param session the session + @param previousState the previous state + @param state the current state + + @since 6.9 + */ +-(void)onSession:(PTDiffusionSession *)session + stateChangeFrom:(PTDiffusionSessionState *)previousState + to:(PTDiffusionSessionState *)state; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionTreesFeature.h index 3d1d139..e896078 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionTreesFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSessionTreesFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBranchMappingTable; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSetSessionPropertiesResult.h index 5b16c46..eb6e203 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSetSessionPropertiesResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSetSessionPropertiesResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStream.h index 18a71d0..9c98d34 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionStreamDelegate; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStreamDelegate.h index af12c1c..a37190a 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionStream; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchResult.h index a2a378f..0626764 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchTopicResult.h index bda7a97..1a4192e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestDelegate.h index db83bdd..65cc52e 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRequestContext; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestStreamDelegate.h index 266e8ab..0884b2a 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionResponder; @@ -42,6 +42,7 @@ NS_ASSUME_NONNULL_BEGIN didReceiveRequestWithString:(nullable NSString *)string responder:(PTDiffusionResponder *)responder; + @end NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringSessionResponseStreamDelegate.h index 7fdc28e..34fc4da 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEvent.h index 51fc3c0..afe53c8 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h index 22c4859..e408ef9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesQueryResult.h index af93739..b6b6e9c 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringUpdateStream.h index 32983b0..30c1e89 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringUpdateStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringValueStreamDelegate.h index fe42f3a..47e8ceb 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionStringValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriberStreamDelegate.h index 4fed397..fda020c 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriberStreamDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriberStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionControlFeature.h index b6ef0a2..34fd1ea 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionControlFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRegistration; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequest.h index fc872e7..80ed457 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequest.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h index d7bae1a..c68e149 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSubscriptionRoutingRequest; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEvent.h index 6231157..6e286ba 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEventMetadata.h index b994743..60d5f9d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEventMetadata.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesEventMetadata.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFeature.h index 50f5705..56bc5cc 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchResult.h index 14aaf1f..297f104 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTimeSeriesFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchTopicResult.h index 7f3ff85..be9aa93 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResult.h index 89f595f..5ec45d8 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTimeSeriesEvent; @class PTDiffusionTimeSeriesQueryResultEventArrayStructure; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h index 82a403d..53a9893 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesRangeQuery.h index 9c97336..89d9a86 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesRangeQuery.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTimeSeriesRangeQuery.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicControlFeature.h index 64be027..a82f04f 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicControlFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicCreationResult.h index 4a92cda..fc7efb3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicCreationResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicCreationResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollector.h index dfcf998..55fee76 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollector.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollector.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN @@ -46,6 +46,14 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, readonly) BOOL groupsByTopicType; +/** + Indicates whether the collector groups by topic view. + + @since 6.9 + */ +@property(nonatomic, readonly) BOOL groupsByTopicView; + + /** @brief The number of leading parts of the topic path to group by. @@ -57,6 +65,9 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, readonly) NSInteger groupByPathPrefixParts; + + + @end NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollectorBuilder.h index 1bda0f7..a9e0981 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicMetricCollectorBuilder.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicMetricCollector; @@ -41,6 +41,22 @@ NS_ASSUME_NONNULL_BEGIN -(instancetype)groupByTopicType:(BOOL)groupByTopicType; +/** + Specifies whether the metric collector should group by topic + view. + + By default, a topic metric collector does not group by topic view. + + @param groupByTopicView true to indicate that the collector + should group by topic view + + @return the builder + + @since 6.9 + */ +-(instancetype)groupByTopicView:(BOOL)groupByTopicView; + + /** Specified the number of leading parts of the topic path the metric collector should use to group results. diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationListener.h index 8968a6f..a6c312d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationListener.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicNotificationType; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationRegistration.h index e3b3341..7564c27 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationRegistration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationType.h index c2a0ced..c334ab3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationType.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationsFeature.h index 91ce757..233d371 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationsFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicNotificationsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStream; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicPermission.h index 336f2c0..10eb122 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicPermission.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicRemovalResult.h index 90779f5..0bbce27 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicRemovalResult.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicRemovalResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSelector.h index 5e1c546..7cff311 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSelector.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSelector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSpecification.h index a2ee381..a1199b7 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSpecification.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicSpecification.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistration.h index ade6b7f..ab70bae 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistration.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistrationDelegate.h index a7a2d47..05da049 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicTreeRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicTreeRegistration; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicType.h index 3573b01..a5352ea 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicType.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** @file PTDiffusionTopicType.h diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUnsubscriptionReason.h index 0ed9a4c..20b9b86 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUnsubscriptionReason.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUnsubscriptionReason.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** @file PTDiffusionTopicUnsubscriptionReason.h diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUpdateFeature.h index 2d6a694..8115aa6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUpdateFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicUpdateFeature.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,10 +10,11 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import +#import NS_ASSUME_NONNULL_BEGIN @@ -27,11 +28,12 @@ NS_ASSUME_NONNULL_BEGIN ### Update streams - An update stream is created for a specific topic. The type of the topic must - match the type of values passed to the update stream. An update stream can be - used to send any number of updates. It sends a sequence of updates for a - specific topic to the server. If supported by the data type, updates will be - sent to the server as a stream of binary deltas. + An update stream is created for a specific topic. An update stream builder + can be obtained using the PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder + method. The type of the topic must match the type of values passed to the + update stream. An update stream can be used to send any number of updates. + It sends a sequence of updates for a specific topic to the server. If supported + by the data type, updates will be sent to the server as a stream of binary deltas. Update streams have additional ways of failing compared to stateless set operations but when used repeatedly have lower overheads. This is because @@ -46,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN performed by the update stream will complete with an 'invalid update stream' error. - Applications can chose to use collaborative locking to coordinate exclusive + Applications can choose to use collaborative locking to coordinate exclusive access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. The application is responsible for designing a locking scheme which determines @@ -55,18 +57,6 @@ NS_ASSUME_NONNULL_BEGIN constraints and an application locking scheme can also ensure a sequence of set operations has exclusive access to the topic. - ### Constraints - - Constraints can be applied to the setting of a value and creation of an update - stream. Constraints describe a condition that must be satisfied for the - operation to succeed. The constraints are evaluated on the server. The - available constraints are: - - - an active session lock - - the absence of a topic - - the current value of the topic being updated - - a part of the current value of the topic being updated - ### Removing values When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or @@ -109,6 +99,18 @@ NS_ASSUME_NONNULL_BEGIN @interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature + +/** + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the type of the created update stream. + + @since 6.9 + */ +- (PTDiffusionUpdateStreamBuilder *)newUpdateStreamBuilder; + + /** Applies a JSON Patch to a JSON topic. diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicView.h index 3f35cf8..601f0e4 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicView.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicView.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicViewsFeature.h index d07441a..eda82c3 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicViewsFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicViewsFeature.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019, 2022 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019, 2023 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicView; @@ -386,7 +386,7 @@ NS_ASSUME_NONNULL_BEGIN Sets the field indicated by the JSON pointer to a value which is the - result of the specified calculation. If the field does not exist it + result of the specified calculation. If the field does not exist it will be created. The calculation can include fields within the input value. The calculation is specified as a quoted string. See below for a detailed description of calculations. @@ -513,7 +513,7 @@ NS_ASSUME_NONNULL_BEGIN A condition is of the form:
-         pointer operator [constant/pointer]
+         pointer operator constant
          
Where pointer is a JSON pointer, operator is a relational @@ -524,7 +524,6 @@ NS_ASSUME_NONNULL_BEGIN
          /Age > 40
          /Name = 'Bill'
-         /Age > /RetirementAge
          /Manager eq true
          
diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicsFeature.h index a4d769f..54f156d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicsFeature.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionTopicsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateConstraint.h index 5284f21..2cc7efc 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateConstraint.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateConstraint.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionPartialJSONUpdateConstraint; @class PTDiffusionSessionLock; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStream.h index 4407569..ee4deb6 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStream.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicCreationResult; diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStreamBuilder.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStreamBuilder.h new file mode 100644 index 0000000..3698253 --- /dev/null +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionUpdateStreamBuilder.h @@ -0,0 +1,244 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionUpdateStream; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRecordV2UpdateStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream builder. + + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the update stream type. + + To create a new Update Stream Builder, please use {@link PTDiffusionTopicUpdateFeature: newUpdateStreamBuilder}. + + @since 6.9 + */ +@interface PTDiffusionUpdateStreamBuilder: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Specifies a {@link PTDiffusionTopicSpecification topic specification} for this + update stream. + + If a topic does not exist at the `path`, one will be created using the topic + specification, otherwise the operation will fail. + + Specification is `nil` by default. Calling this method with a `nil` parameter removes + the currently set topic specification from this builder. + + @param specification the required specification for the topic + + @return the builder + + @since 6.9 + */ +-(instancetype)topicSpecification:(PTDiffusionTopicSpecification *const _Nullable)specification; + + +/** + Constraints can be applied to the setting of a value and creation of an update stream. + Constraints describe a condition that must be satisfied for the operation to succeed. + The constraints are evaluated on the server. + The available constraints are: + - active session lock + - absence of a topic, + - current value of the topic being updated + - part of the current value of the topic being updated + + Constraint is `nil` by default. Calling this method with a `nil` parameter removes + the currently set update constraint from this builder. + + @param constraint the constraint that must be satisfied for the update stream + to be validated + + @return the builder + + @since 6.9 + */ +-(instancetype)updateConstraint:(PTDiffusionUpdateConstraint * const _Nullable)constraint; + + +/** + Resets the builder to its default parameters. + + @return the builder + + @since 6.9 + */ +-(instancetype)reset; + + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @since 6.9 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with RecordV2 + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionValueStream.h index 04ce4d5..d5579df 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionValueStream.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionValueStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionVersion.h index 61e9cdf..9ea1df9 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionVersion.h +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Headers/PTDiffusionVersion.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/Info.plist b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/Info.plist index 578d04d..6ae4e2d 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/Info.plist +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable Diffusion CFBundleIdentifier - com.pushtechnology.Diffusion + - CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -17,15 +17,13 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 6.8.0 - CFBundleSignature - ???? + 1.0 CFBundleSupportedPlatforms MacOSX CFBundleVersion - 6.8.0 + 1 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild @@ -43,6 +41,6 @@ DTXcodeBuild 12D4e LSMinimumSystemVersion - 10.11 + 10.15 diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/error_descriptions.plist b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/error_descriptions.plist index 8a3ca3b..77b6b51 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/error_descriptions.plist +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/Resources/error_descriptions.plist @@ -2,6 +2,34 @@ + 20159 + + description + Client version rejected: Client should be downgraded to use server compatible version or server upgraded to client version in use. + domain + PTDiffusion + + 20158 + + description + Failed to serialise value. + domain + PTDiffusion + + 20157 + + description + Update Stream recovery attempt limit has been reached. + domain + PTDiffusion + + 20156 + + description + Update Stream recovery buffer limit has been reached. + domain + PTDiffusion + 100 description @@ -551,7 +579,7 @@ 20065 description - Data loss on topic with id '<id>'. Session closing. + Data loss on topic with id '<id>'. Session closing. domain PTDiffusion @@ -642,7 +670,7 @@ 20078 description - JSON Pointer expression must be empty or start with '/'. + JSON Pointer expression must be empty or start with '/'. domain PTDiffusion @@ -880,7 +908,7 @@ 20111 description - Field key's name is missing. + Field key's name is missing. domain PTDiffusion diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/_CodeSignature/CodeResources b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/_CodeSignature/CodeResources index 2f236d3..90c1049 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/_CodeSignature/CodeResources +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/Diffusion.framework/Versions/A/_CodeSignature/CodeResources @@ -6,1451 +6,948 @@ Resources/Info.plist - wBnOyKkulj7TML5p44f/ZV4OHnw= + CiRyOMMAwDJsFqbiRo6usTWBo/Q= Resources/error_descriptions.plist - /+DHMG6HQY/7Iw6Bg8mViy/+t3U= + MMww8P7AZRE5E4M8DHuLnb9nzuk= files2 Headers/Diffusion.h - hash - - bom0cUqvhp3IOAr0GNRfdJja1Uk= - hash2 - 1l7CRDgO0XTzqQnx3wXIvwD15oMKhCI7Hck7ZqbZ0RE= + A1zwNtl0yfpty9+eqIwje1Ha+Cxu33jPe/AvbGJVykc= Headers/PTDiffusion.h - hash - - XnD3E9+NbghWDiChKuryYDmAHiY= - hash2 - WT4amhWtg7n7RJGHwb1VxCTQG00Oez5nvTXcTcMjwQU= + NJkvOe7sV9inX4lGI2vh6WglcdzakvOyWAZvlfqGPX0= Headers/PTDiffusionAddTopicResult.h - hash - - gHVMjofviSaatFXSyW9JNlQWXp8= - hash2 - TS5sw/m1fnDF4YSLpyOGfCHtwqBh+iR/Q2gCOQhPNtk= + EKWKQQYimqytJpb6wN8t7zur8vJfV6t3purhOpwqcto= Headers/PTDiffusionBasicHTTPProxyAuthentication.h - hash - - tfRpT3SJrwnlUAWKk1zE5yStHPw= - hash2 - 9B2jRkMEMwVLYmX1JfaVKvnT0hJvMwtFQbymZA9GISM= + lNqCwMmnEWV1lCFH63yQUDGQ/QB12Lfr3497TSPyYZ8= Headers/PTDiffusionBinary.h - hash - - IRp9KLtwcW8Tpll50vOlqTnr5EE= - hash2 - 8awOvRGu2s1S2dUAQkbL2Nt69RPYztoHJuK0mGIRCgs= + pAtK+/vemHjXAdUhXY0+wdumrAFl8xi7AvEpM5NKKQI= Headers/PTDiffusionBinaryDelta.h - hash - - eOisvnXJ+75WXktyVQV47X7+rss= - hash2 - Oe/2TNcVqxdtSucgkdz2vKCacrppBczFbLQlZiAhHbo= + cAdg7jUyyUs3WBnGTxbH8Fp1ZgmzvwBgzDmzejaP02c= Headers/PTDiffusionBinaryFetchResult.h - hash - - wvBjyhM/oqwxn/TtgbMe0EG2/ZI= - hash2 - Fnq0zEK+ahTZSZ6vC2YxZCXg8MM2lAuvN7RWDvbCKpc= + i/6QE+uOhRxzksybPgBgkvMjwoQNwzCuk4CIUs/bUNA= Headers/PTDiffusionBinaryFetchTopicResult.h - hash - - IvwIFegt3H60YtYjfDWclLgvXNs= - hash2 - yJIAGkF6/Npi40M9T+Jttberc+ji8NYq49viqRGsaeg= + kxcCorEeDXRQ2HToGHFLzd576/SgoMD1sK8EtgLMj6Y= Headers/PTDiffusionBinaryRequestDelegate.h - hash - - HEW8gUfkpyJv9fIR56v7vBuyyew= - hash2 - mhf/B7Bv8xhRcVbDxRR2qthwvCO1wzYQ2KTXnMYQXwA= + UrZpuer2fPFUeb+5fMFquhZmCF8vxRrVnPSwoxTaqb4= Headers/PTDiffusionBinaryRequestStreamDelegate.h - hash - - KwS77VkO7OynPdkPDICIvXVs7D0= - hash2 - uSLY8OoKHNV6to7SI8StYOvwwdVzffgDX9+pDiT3js8= + HRlzQsTwHd08PPHEVDdGhBSmeu01WZFHsBFV9cbXT7E= Headers/PTDiffusionBinarySessionResponseStreamDelegate.h - hash - - k5Zben7VlzUyq1GbXRavPpnHbqo= - hash2 - A9oRfiGtK5Tl96csmgZwB/aq4BPzW3nrHPe0wWYQkTo= + nxFGh44y4EEEAeZ1kRa41tz6ej95dNJXgybjC5XKFwE= Headers/PTDiffusionBinaryTimeSeriesEvent.h - hash - - EQnUyyyh28i//lipgxgs018ju94= - hash2 - fcIW0UlvV394kM5GZt+R31MbLOCbU8Ur8HfkfS3vssQ= + C6b93rxmeLvZeqmBD+htM78o4fiy4L8k5uFeMhsj9RU= Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h - hash - - O3juN1/1h3CDQQ4OLiur7pBnGpU= - hash2 - yWbQzwQ+EZUScYLb8zco5JIEsF/EwPcnjvX+dynEU0w= + IYJwis0D+uFU4pTz9Ce6LrLfvBkCo/OFt+t7bo1dC3c= Headers/PTDiffusionBinaryTimeSeriesQueryResult.h - hash - - koRVjwmJQXlw2dF2tu9WkNbU+H4= - hash2 - xVeLbB8dLyyPTf7RENK1FBaZrqjq+wR7FaaLnDDNdP4= + yU9zQRr75wkd9rwAE79NPJ1k8UM/gZ0ozbdohJZ3kTc= Headers/PTDiffusionBinaryUpdateStream.h - hash - - 9gicGD1inPa6gTSXRqAjVdK8Jkg= - hash2 - kAC4IkG6w74cHgJqp5NSpm7osm8+pPS4mcLHK8YBDRY= + IS+ge2fuZOiRqsF/VVw9SogcM5ba+qaGtqRUVK2Y49s= Headers/PTDiffusionBinaryValueStreamDelegate.h - hash - - 8mXPY4qvKFwhC7seYe+krz0h3lM= - hash2 - zmm70JtWLjDAfGrW+Hg+1hdhZTUYzgOy163pfqKHToo= + g61+exeX7oOSLyEl8XOePjMxSoariC3H6soITiqqGYI= Headers/PTDiffusionBranchMapping.h - hash - - ZDKqttc6M9zzHagsXFo9g8XB820= - hash2 - kCE6/whwc0QlZKme0bnUatRXjbZlYAMZAYjUI6Slurg= + goiBi1K1nyRy6w9cYVbGyeeEMx5PFHXWjqIF1f2iuM8= Headers/PTDiffusionBranchMappingTable.h - hash - - w3tE+yV1eJmplAlpTXlnSgatTEQ= - hash2 - BNyVMROryypq0QDf2VPM7yoA8fhseG3FfRuQRQISUYQ= + /F0HJRO5DykAz629aZwZ87a0wsBmKUKlH5YQI3bMT4Q= Headers/PTDiffusionBranchMappingTableBuilder.h - hash - - Bo0UbPi3YEKdi8QrRkzv5/jXyAg= - hash2 - S3DKwptXZm4O3wzugFvZztZ8s+8GmOVrqzUbAenQp6I= + Ov5T/qu5/dNQ4tllnsPvaZ9A4d1OJBLiz76Aft00gpE= Headers/PTDiffusionBytes.h - hash - - M1Jnfw1hNGcI0Ib53U9zcbb1OjQ= - hash2 - uXUkViHfJ4TdmJd28rornnFO7HREe/TNquxr8z1o8XE= + noeJjt8j/FGQ6KRyHuNwOBMn7weyEERzf8DQDcEQpX0= Headers/PTDiffusionCancellable.h - hash - - K1St0I86KSn20CSR1hF9y/kj9Nw= - hash2 - d+V0C1Ywc/dbT2BW8XSXOH/JyobjUkZJtRz329DzsNU= + vDcczDhZ5sEOLKkdZ+qh58A5glGLt6E9EKdn6kEyt/Y= Headers/PTDiffusionCheckRemoteServerResult.h - hash - - rgJFAn1BZaXsAcy5G5KJrEnMUWw= - hash2 - 8CDz/xIThztVIkkXTLF4m/mH31DOSSOS8f1W00plYaQ= + mve8V9bYg7x2qkFwzduWxk8wFIK+dmLVBUcmGwjMKdo= Headers/PTDiffusionClientControlFeature.h - hash - - 9bpwdrS7GGm74lz179pVIo/lbK0= - hash2 - /Ky2QFEiPxLKSAIwRNerEWf2BJ9UZJanVVpUgQYmKLQ= + CGsOGc9zQUYKMnP9mOStwqfJ/gjFzFK61yJtOWS3B5I= Headers/PTDiffusionClientQueueEventListener.h - hash - - TX7hq5YhAOlQWhLeXuuYjnymdnw= - hash2 - ByiZ14wNPeGYdu7zTlKQNK5ipVf7h0UaRZJtbbvmvvU= + YqNTgiT0i1aJRBUUhzryEKY2YYLQWASMJLSdFNF4Dh0= Headers/PTDiffusionClientQueuePolicy.h - hash - - XSlTBmdUr8g3vzk6IaTa9rfkSxE= - hash2 - aSaInkVfQwhPGDiaA8z9PzKF9UCVwDerV0u5bBKx1DA= + MpKR2JR0lqht3ueV/XvEY2M2CLhb0rf40bVl8TzfBWY= Headers/PTDiffusionCloseReason.h - hash - - 4NP8EBJYodc7qbJuW1aIdBB79zk= - hash2 - wnNeQfWyv7HNJEYbO/Jr6GGSHYtaAvgy5k2KPa6a/p0= + mcVgGqxDFQx9CL1kIA3q+cwqct8eocI7ayVXFlJuC8w= Headers/PTDiffusionCreateRemoteServerResult.h - hash - - lXIiFvo6+6+zkanzQdwlxRq9r30= - hash2 - QTiXTocmAFD5q2gcVYtefoO/ENMZyspjeVkHV5/Dhu0= + ltZw8RDwqYhptUR0W538ThquYMgIYs6OveZnm+lnCv0= Headers/PTDiffusionCredentials.h - hash - - Yswe6ZeE8pV1UWc47mhDM/vERCw= - hash2 - oRtpJ0w2P7n2wlu/BUrsLqY6koj4uoAr4N+zn5V4FaI= + HVf7FwHHvz5drhP8M0SKLQgczz/zGzzhwfTxQfTN7Dk= Headers/PTDiffusionDataType.h - hash - - X0jXK7KstA98ANZQNPxIX8PTYn8= - hash2 - t567SJPAIgfXGeZNBQLIPPvELrVta2jdn4lMG6/BplQ= + XWWuVPUovPcPfOxJu7IlNebl5Hvf+y3edyfDk+I773Q= Headers/PTDiffusionDataTypes.h - hash - - 59TS6+k/8iOzzVAsZvaljsHGQvM= - hash2 - WS2v6ksJjFJb+hzJOEUWRuuSLl+Ui9fyTSEhOpnrJsc= + LsLy+f5mEXxYAA24hURlC47M2WxYSwrMIib1jLjFweU= Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h - hash - - MQj3IR5A8XwhAVxD6odEfwVSUYE= - hash2 - yedGEJHDqdz3nTuh/xkwiJM5lBHuxKkCopw1x51MpPk= + Tx5en1POL1nuG2LWUIQQJAJUehyWu3eNcSJFxxz4CoQ= Headers/PTDiffusionDefaultStreamDelegate.h - hash - - kn2OYFoVYgbQZU8Z9uK0waIA+O0= - hash2 - rzKPbC0g4rhpTU1Ft1ANOf0yj2alrEltJy2WTY1XMqg= + iPFDLfw+vgecpwNnt/Q8VW6Fq1bENEf2WYV63TIsR+4= Headers/PTDiffusionDefaultSubscriberStreamDelegate.h - hash - - rL2HohjRlnrEkzhB0HaNM8/m3AU= - hash2 - 0jG4Grx7lrOjYgpM0LcHQzWM4zD3QFEQuXkkd2MOPTE= + wUpvggq3lUb8yhP/luJHt+ND70yFaNxFpUwCcBiUjHk= Headers/PTDiffusionDefaultTopicNotificationListener.h - hash - - pWqPn+PFv+aw8bXUBM/23Gd/2D0= - hash2 - ziBTBJTzYQsJT0Htj89e6GGUiyPGBnXZb2nuggtd8E4= + 2iAbixccndqGnyqe8nCOUm/hfJ4lHrUi8nqvTwNlcpI= Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h - hash - - +BkpBsYRzZxyPMpOsvLENEOWqoU= - hash2 - v0vFV8PG661Ft2pJno0Y0TNG3M11QBLLNE+QmwmenIQ= + lTy8jnBVIRPIV/iYHVS2lgmGtpdO+1oWNQ2dm70izOc= Headers/PTDiffusionEnumeration.h - hash - - 7IATJXBFV7kyC63oqJ92RUpXNDo= - hash2 - wKnksBhl0WY7q9XrtAtdaPLtnjrZjoxEDgcfNZW1/NI= + 0d1hGNZqWcFSMH4f1c1VDYX0WIV17CWWDQpCkszafkI= Headers/PTDiffusionError.h - hash - - cECQ51CSMTZKw7m9wrI0PDkK0t8= - hash2 - TldcwDX43pUHimigwITWA3iT83Jtwl5kybXmaHghdt0= + RSZV+RQNSj6glfsBd7n3QhwJqhYaKOas8Ho5rdS33bE= Headers/PTDiffusionErrorListener.h - hash - - wcUQ12PknR5uodl6vDNDQ72DwOI= - hash2 - WNfLulQNPuiLWXFN5gpJJXVCsHYbhgbg7cr7ObJ0xew= + wUhpMThJrWlCugKuimRmK0kbZ/6jWMYPk6caEo3qp5k= Headers/PTDiffusionFeature.h - hash - - l318/UIdPwcCgnimVAGGubfOgrM= - hash2 - dmtnuuax0hIwWwR+r9IyJzwSmWNeSeUINUgtIH1NdBE= + Aqk7y7sqRwFIO73O/twnB9TG7BKB/PqxVUikbxkKitA= Headers/PTDiffusionFetchRequest.h - hash - - EWXDvEo6JtGvPODJtVfziNCRgmM= - hash2 - SJwtCuVPugCVJzR+TkrnaQH5HfSy4ki27I2HZRO5Bq8= + HilD4zCUclx4PshGXVes8cD3nXfke0WSzPq+9gsmAmU= Headers/PTDiffusionFetchResult.h - hash - - 7besz8A6wioK/QNMWjwJlaVctIc= - hash2 - nGeJO+icrmvf+QpOmw8U99hl54nPEBK6u368XtkdLF8= + LVshrFDq2KG31A5gm6KlRT0ntNfGoMS016CX2eTF8p0= Headers/PTDiffusionFetchTopicResult.h - hash - - n1swAjpJpvWNa7kigXb5lFG7qqM= - hash2 - /JmwyMyZ/id+Vgu5ilP1z8slyW31LDZRc4HLC9np9ZI= + jaJ+Vpq2FWnzLW19B5kf9R+9XItJBOlEMSaSNuFjYCc= Headers/PTDiffusionGetSessionPropertiesResult.h - hash - - wf69YysbIJf2k3TljvR8nLnhguQ= - hash2 - fQacIcFj7MDgJWjbg8h05QKkjFsnShWofV2qYc6g2TQ= + KS9IsH75bU0BMwO/VGHdqbuFlnGvGAHRtuKbzqAehhk= Headers/PTDiffusionGlobalPermission.h - hash - - hycq2LpFRepTNes5tWImHbyE+ug= - hash2 - YiGp6liFgtYsRc2ATGkl8EP/NNwolCHz2d8LK7D/l0I= + ZeGTIRBhyWydKlQFXTufEiYAtPeI9stVn4s0roOd9ps= Headers/PTDiffusionHTTPAuthentication.h - hash - - 04TrwbzPbN2tf29o6t+4QEOrt0Y= - hash2 - B9ooR2bWvmGoUefpEpnbb6aD8DUnkAatB5kZ361Biz4= + +RNHLW/DegSpyx4qw/kjoVIIoFTxnENRAGmfPYZBsgU= Headers/PTDiffusionHTTPAuthenticationChallenge.h - hash - - xPb2ms4PfUEgQGe0TT84xAVC26Q= - hash2 - /Ofoff52yZxji2wWL5fTxkvPkLoAbkvGLCfl/sj5ZQs= + 2LbRaWQViguwFTlDz+mPlfDFF53L6TZ1VX5ps9/yLK0= Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h - hash - - q2tRtdUcvNI3qGrT1PCxPtRvru4= - hash2 - 3ktKbse4NFRW4JHGq+yL8WLHf8HzD03k9VHRGVMZ2Ag= + /kgkQDewUpO1Htwgm/2wTjAu8pMUg9/n2FB1OuJmBqY= Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h - hash - - womdRtmMruef+Qhl4fW6XdlikHg= - hash2 - 7AAYwPITp1pGRIyDUzaldAFSBlvHfp8oF78WQpTj8qo= + NXTuGJPtTRB5+9aCkUJ3/vRaRROIUhh72VEs6LhpjPk= Headers/PTDiffusionHTTPProxyConfiguration.h - hash - - X9Chg+yCwug1lN6YBajyxKDfDc0= - hash2 - Ydmd+v48fyYfLn7FaMIvaS4a4IPNfIvaKhVRQa/k+Y0= + /cTb6wTMItyQmINsAp5wcPb2Rk1J3KYgZSCthmPjEcI= Headers/PTDiffusionHTTPResponse.h - hash - - APmuxxekiZOjirHbaSvuA3xFNfs= - hash2 - Y/52CRFO3UILqmbFrQkX2NCtD0fd1+7Q+iHQlGbImWY= + 1o2Ga+oRHDw9J7CoyTX6Ny5ITgi+1AOjCvj5T2YNhcM= Headers/PTDiffusionJSON.h - hash + hash2 - 13qELluVvXtpq/W5SEZTqXq2ZzE= + KVeGiB1jiOLKW6LGOWrEkiYKrzBfBsQNeGLJ9L+uquw= + + Headers/PTDiffusionJSONDelta.h + hash2 - P0Rdt9tjYqoTqukwq7T722xH7Vf9eWFobNMwXtCbqfM= + HSFFw0p0Vjx1Wq5cCnBT5imYhwRp4lePX6qOUxJHO7c= - Headers/PTDiffusionJSONFetchResult.h + Headers/PTDiffusionJSONDeltaChangeMap.h - hash + hash2 - /cK6X7hkNZboxNKluxhEUjRWIwQ= + AjKutPHJDIvXgSCGdhHvl3BHC9QpH9bwlVc6zfwches= + + Headers/PTDiffusionJSONFetchResult.h + hash2 - d8e4/qMsgGiwas2RcQMOqWzLJ44bvUXJFNwV66PclK0= + dJ8E+5YMCp+ImeQ6EsiDjxR1f+7gxwI2Ezzh0pUY8gc= Headers/PTDiffusionJSONFetchTopicResult.h - hash - - 5ZJnZTT2CH/QDZpKk0ONXpKcW2w= - hash2 - jvun989ZWLrFghxhCfACDWBq0HYAlh9Yl/3EyrupbWc= + n9dibxRGvPRIUJfhvuYFlge8huW7MhdYXhvc9w9bt+I= Headers/PTDiffusionJSONPatchResult.h - hash - - tINXQYyErrFXqwh3cnlfh3pO/9U= - hash2 - d8KtvIWpd5ixyviEX7ULyqICTlfjcNCD+wE0bk40fJc= + iLQkOP79QPRM6KYj7R1aDim0KlnmL2ls4ZFt3d9+2M8= Headers/PTDiffusionJSONRequestDelegate.h - hash - - PCVS7kwCps6n8WFRAo43sC639gc= - hash2 - qiXUcRdgS7mCTR0z9K7TTHzd8kvS9xiI8T7omS8vLy0= + yd2juwS8e/ytJq7zRRj6WtFifuOsuDTfDJGUzVu5a/8= Headers/PTDiffusionJSONRequestStreamDelegate.h - hash - - h8fH9WCeCRvKmRZpgN4PoxGwXcM= - hash2 - dbHy1dWRaSnNVa1eDMQosdXVHcd8Hipl167boprO0Sc= + V5hV4r4oahxIiBHUDmY/uYZnxlssalQaYcPVg1JJwNY= Headers/PTDiffusionJSONSessionResponseStreamDelegate.h - hash - - 1NWVlpE/WCiY0Evzq9gaEeQDPxk= - hash2 - gF2agnkqc8b09dL5JKVq/Kl6PtJ+NaYFebt68QQMpRQ= + PGWYZoa1NVp7ZYeuc07wQmpd+RGd2SZGUFHjNfTEIVo= Headers/PTDiffusionJSONTimeSeriesEvent.h - hash - - KqcX5DaBkiIwDyh5T1naEDsI+0U= - hash2 - f026jl/9mdUMn103LxtZNjSQaRCGSpxNTd7bro5cxmw= + uSkpHJ35QCNfDb9i0jzJVXE37MQ1McPK3s6bgpsKp1Y= Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h - hash - - jaxYR2fpU2LZj60PBUkGoxLj5tg= - hash2 - UKewzLh6o80REgtjqPdtlM5A8pgAohYaIN5ktKea9As= + J3tGpr6NiDTgkzIvimuJMF/QYHRvcP5cjVPlkJyyEEk= Headers/PTDiffusionJSONTimeSeriesQueryResult.h - hash - - PiW4Sb/HeTzzBAj1znEyS16e7ns= - hash2 - JwUbmrzo7gI7yIRgdiLLhNk928jEoqI1c7CJZ8vF/TU= + YPUQy8I9JLz/DLADhCOEr+V+8fZdPNMYDK/b34Fz85Y= Headers/PTDiffusionJSONUpdateStream.h - hash - - j+kgT9TmBDSeeUhqvss6orxl+AE= - hash2 - 3Acr5+Yc80p0yEi8xDBAJVmFnL9RyTZLJ2vGAE2nvEk= + Cf+RhPVGELSJPVNwj3wXKutO06CnjAKXGm7FzOIUh1A= Headers/PTDiffusionJSONValueStreamDelegate.h - hash - - f4o0O4ha63u/IckPbxgF2hi8ARM= - hash2 - M604wVcVo0BMNjlAbNHev3CN6AWVqCyvvEC9VX5zOcw= + w8Qp38dEwbILAikQpwwT3ABHp5SzATppP/aE+yG/DT4= Headers/PTDiffusionLogging.h - hash - - rFCKP77Z13fl1Lqhyl8lr6PcRMs= - hash2 - Iky6l6bITC/5VR+ildPxe3mxDv6Rzs4kegA0v2hfHwQ= + ThkCoh6S71c2+ugUpmxHrw6KPAGYvmxfYmyQiBYnewQ= Headers/PTDiffusionLoggingDestinationConfiguration.h - hash - - 4axnkOhVG9/3OVR3yw3cr1owtyY= - hash2 - YhPj8YSVacrCVfYKLtS4UsBdWqXFp1dHVzB/J+rwGV0= + e9rg3b8uHVVAtm6EgeUGF5DmygglLaseXRezI8GDFK0= Headers/PTDiffusionLoggingLevel.h - hash - - m0qdaXuRy1UIh4w9lBaMnB3kIU4= - hash2 - zsDV39ITI2hMqCOrSkGCNnComSTQ1ejnXiHP/P8ToZw= + IMgmWb6Gac/ypapkMV7cwewBwIHc0G+YQreT12J5bcQ= Headers/PTDiffusionLoggingMessagePrinter.h - hash - - spLTiRckY9p4svdpQ9fnqNIKW9g= - hash2 - KmsToaUAqvQZFz7vG5ihCvBlkEgvdZ4e2h41jk0NCP4= + 9FVZ1A+guhhf3gqlsyeOsLQgL6p3DET0arHxsRaRae0= Headers/PTDiffusionMessagingFeature.h - hash - - TTsgX8TESXQMEA7KRqHoSCIfjUM= - hash2 - 9/QU1E19rNmjExft85HLvIaCZw2JqbpNgDfP2Ak1SPo= + qavtZ3Sov4MOzk9EhtqMZnmqzMlIu5MNHRHkJ+7A87g= Headers/PTDiffusionMetricCollector.h - hash - - Q0hI/n0EHo+6+kg2ZMhq9zm9TxU= - hash2 - yjnIq+jiTS0KByV1wOQx7C9FTrrpS6Qoi3BDmEMSArc= + at9MAzNfEAlkNyMYo+Vrj8zZc+oX/OUy1STHg2ODJG0= Headers/PTDiffusionMetricCollectorBuilder.h - hash - - yQmzqI6Di3RfWUoGBKz4RvnEedE= - hash2 - ITjrz7XUnCELYwMCkInz99crKJ1M6JvisFwZzJZd0WY= + jrPanMbMursCBYm/a9MLB2ZUrs33FOAh6GmWohpkVn4= Headers/PTDiffusionMetricsFeature.h - hash - - ulonYz17A9TEyp+Wdbeg2UTFN4A= - hash2 - 0TiUrWOPBvksneZ5pF5efoyKniVlFINOSiojkFPCekA= + alYHcRjQQyGkaNLYcKEprHHqPRffTP5ohXFK664HBv4= Headers/PTDiffusionMissingTopicHandler.h - hash - - jJ9PsG+P1IDcxXLERBJYcolAZEw= - hash2 - z7MsEv+goIXU9e0bQ8PInmS8lEO9cg3ir8ZN4r6JVcQ= + uKY6CZZtWD/Q4zd7jzpKOBBW9Ctcp5pGVWtq0BiXYpE= Headers/PTDiffusionMissingTopicNotification.h - hash - - f+zhLyj+cKWNZWfwqYAIPYMXn9M= - hash2 - X02QdNUXH7P8LUOUFyPpXQLE1QIjd9w267lvAHDEuQo= + p9DvZjlEiuMGCPFmQRmWPmeRgF/K4mXoeb9CiYUJ9Tc= Headers/PTDiffusionMutableRecordV2Model.h - hash - - rX77Q+p6Z24SD2B1WwDJaVT7OFk= - hash2 - Mp7TJN4Tbpg+yiWGTrtrmrmGQKPoPUURWlZ0BAvRNeQ= + eKCPCPAJOPw/EeCVLRs0+4MwNO+3dnzJFMFloj6iJxQ= Headers/PTDiffusionNumberFetchResult.h - hash - - vkpfm8kei5FeQJjA8TvBzF1NJ70= - hash2 - F+JSs70HK7RVrn3vk37zTYx35LlQce1sHP8yY38SqIA= + ePnR6X9EQQCxk6Ml34BDOU3Z3wQr3NFjpTv5YJOu8sg= Headers/PTDiffusionNumberFetchTopicResult.h - hash - - 9juTPAfvGmI/eSDqGWc9Pe2k9FY= - hash2 - ryELDJSZgI4kWmcZTOFGn6ldwfeIG+yCSfOEXPK8NG0= + MJkMq/VBNbwbliRdP7PQzzqaV2cpDgejdTCwRVlOhMI= Headers/PTDiffusionNumberRequestDelegate.h - hash - - MaDH0rclSd1xFLM9nY2nAH2LzBY= - hash2 - 2fNFFT1Bu39ILrHNkzlkYcP3s5x8rrrV7l0UNqQ32SM= + l6d1NKLuIg/jkLs+dtO7fU0qGD9l2msTXvBR+OXJlfM= Headers/PTDiffusionNumberRequestStreamDelegate.h - hash - - DHwutv+bacmUxpxcu7owxikDewQ= - hash2 - uw+qq0fUmnqEpfcnKjPwQFId3k1u1SVujVOmbE5OC6I= + g5hXaPHIFRxUL0ymBbdflCvGDADrysbD0RuFNNMvkvM= Headers/PTDiffusionNumberSessionResponseStreamDelegate.h - hash - - UFwJKoii3V/0nunrBQGderRkUFc= - hash2 - G1aJVh+sBazHyHqgrCGzgi5aoy0ej9ceey9OMkMtAoE= + raiXClyo4QkZHwgNX9sxHMsifz+hOPIevS8r+BM2LYc= Headers/PTDiffusionNumberTimeSeriesEvent.h - hash - - 0qbeP+41+bMjUTgdEC0cGT9P01o= - hash2 - ntYgIg8cExcfFBFowEyO+RzYSJ4L6h1fEgHZB2fC7wc= + buP5I0PdBX4HpfdNU7zAhtlqoFIC6Uk4255EZT+4ZeM= Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h - hash - - u/s/wzNKMdkxsmzwoAhjiE33lPo= - hash2 - t5ih4v+6zF7dLNPNyptkXumB901ymB+rIq5ooMpNuzk= + QzyVbrYahlkD7P3l6BBwuZTtq6gg909b+FWh/E8DycQ= Headers/PTDiffusionNumberTimeSeriesQueryResult.h - hash - - FJhjeCt9g0rbkhCvc19H+cu2D9o= - hash2 - oVPqdCcXySKbsRe4cwFQuljafdag8G6QYsehgOMQkqg= + o0YnCbBaElVPGqVeixYvfJmLbIkeZqcc6cYStGKciPY= Headers/PTDiffusionNumberUpdateStream.h - hash - - xMiLZqNEjNcJlieyWRVOp6wHijk= - hash2 - RcYHynYIxmymcU8SOZo+79tVdjxNFILYYEUeNlhYs+c= + XtOI5eXbcMoWswaxbPu2Sb/gcDcQH2Ba8ydT/jd1s6w= Headers/PTDiffusionNumberValueStreamDelegate.h - hash - - UFSzUpxbZElKE3zzbkkG7LpoigI= - hash2 - iWpj4aoRfuwWOYX+87DF1zRQG+5aGepikxUd8BMf7Gw= + oqdIZ5ffSUdNhSFugNosZmFD5I4PB0YhlEvo/Ki48yA= Headers/PTDiffusionPartialJSONUpdateConstraint.h - hash - - 4Kg285/tvd0sddVplu8XznOumGM= - hash2 - XvTW0FeO0ZMA+y0hnyr9czEI6A2l9Mtc9p66H1a3nz4= + Gx/KwGDJhT3MTsmouAcBa+h2sdc+pgmT5lOJ7Z0+WpM= Headers/PTDiffusionPathPermission.h - hash - - YduEOO1T2Kmw+7Vv7VGa0EtFmSg= - hash2 - DTE49P341kYFb4XdSkbVCWZlkZFLHAPtz2wYHjHMx9c= + ztut6MW3+tIFlkaDGPfFqhEu18o34/PdheiuLMmlPs8= Headers/PTDiffusionPingDetails.h - hash - - s/YUpu02id3IaJL0naBecz13Ndk= - hash2 - 9h1WRqMX/WLmLopcGjRYGsdcI40MMGXNSRVClRKQWHE= + P/sgqX583duAKsSN2Se+yLdYLg7yJfXgt1YxVAzUwzU= Headers/PTDiffusionPingsFeature.h - hash - - ToR+BKQy2x1CjT7TWkSqkE7OxK0= - hash2 - KlNB3eR29yLgjbfeZxGPhT7PH8TzrEfv/qJAEHGn5WY= + PbJAv2JR0fReNzMcqERZEBzv5qj/Qyk+wTM2pXNUhLM= Headers/PTDiffusionPrimitive.h - hash - - nqrWaohoh0ja6D8iSB5EogVkhZ8= - hash2 - RDOFmSyUPfDSo7HfjnKXX4q14tRbZh3LfZT5iGSRBK4= + bIam3uhW5uzsP3cqi4S5ViKZxymJCHO0CWoshg1Wfss= Headers/PTDiffusionRecordV2.h - hash - - rCmHMFagwu8wmS3Mg+Q8gNX42tc= - hash2 - McJ3u2/bLoILUu1hW6LoALw0XXbX0OPaMYBMpvTtNb0= + aSFO/taoHFK7narpCeO0qwgw8Gf7MahfZQgsF7Q1bmg= Headers/PTDiffusionRecordV2Builder.h - hash - - QEgiu1leq3oUSasXj9rVYB+ezcU= - hash2 - kbqO0aFLALM2TPc/a2N8U/8+yS+vJTr+vwpRFJt7+PI= + ylx/BznpVyZpmeK0baGNKlRIiHhsTn98Q1MviX1xOKQ= Headers/PTDiffusionRecordV2Delta.h - hash - - Z2XlkG872AlE7BF2yN1gK6KJYGY= - hash2 - L7guOOpPIRzjgyJyBgCAt9xpBokenaaWAcwKZAl8D+0= + RtQw28FphjU93+/CQ+BkuIrvqXna86+ERPPii/ViFYA= Headers/PTDiffusionRecordV2DeltaChange.h - hash - - amKMt7zzKuisiAGSS4o/dO/gfiU= - hash2 - Z59mhojsI4dH4L+JBXi4lXrBoo7T2jnMdWwY231V2n8= + zw2jw2nh24u++nJ0yqnIR2ZHw/y9p8LBCgiTMyl1uSw= Headers/PTDiffusionRecordV2DeltaChangeType.h - hash - - OsT1NCWxWtKjjBpy4r1q0B3F1Bw= - hash2 - oge3Z5lBEvPBMTottPwGbY8PxT1lN41wyWLJu0zT7CQ= + nhZeQv+8V8F0T3yD0yEMRTHbuCSijA+ElrzJntbAmZw= Headers/PTDiffusionRecordV2FetchResult.h - hash - - INjNAOczxQqEx4cy41iwA7LWpZI= - hash2 - lO1DT9Vw+l7o0xmjf2r+jLp7zca4eNfThh6Z/89xI3M= + diNYpNy3TVUtqHj+94PVRN8At3J3Q/pt1LDUCZSZe4k= Headers/PTDiffusionRecordV2FetchTopicResult.h - hash - - TMD9NYUqaJtfxtXYpEUiQ8ABwtw= - hash2 - 1YAhsVu5OkFmpdc4k+Vj+TmuItfYGUXvcVTqKnKmmbU= + qbpi0nD2XE/HoYOxhJdlkKfnSe+M3oPNShttz7/+g+c= Headers/PTDiffusionRecordV2Model.h - hash - - YqTtIkx9UL9qI3MgaOYdE1Pqw1A= - hash2 - bLtqQ/gSGKmNuoXNIavImap4bRfH3X2CsPMraQAYW8Y= + az673ClIY13QToxNdg0k6eqR7Z4S/goLNRYpz3rY6KE= Headers/PTDiffusionRecordV2RequestDelegate.h - hash - - 5tja6Pl/xjl/EMBW0e7uHg9d8CE= - hash2 - OSRQjy/uO+BV9b8/q0WWORAzeFWd0NMEe+OQazPQf6I= + eDmg0zXrk3siHiyw54EJXP2LROZtW7l5oercgpPRyhM= Headers/PTDiffusionRecordV2RequestStreamDelegate.h - hash - - V/Jv9xOUHnVpx96N1WiFfvG4gTk= - hash2 - A+d/1S63fEq+qUrxLvTkl6kWAoDqbMmx8m4R90iRyg8= + BKRQ3kSSSeUj4/sRB9hJwYIJGfFUR5w/JYiEScznJA0= Headers/PTDiffusionRecordV2Schema.h - hash - - cp/B01S2/f9tf7igoMi6A+0O/Tc= - hash2 - LeHNYAN0jUEsWAzXShrkmLzK7nihrbZWTvhHwIiYV6I= + 8ABqdXMSVQNoMU8L1+sCVqoTAVwvJi5sr0u7Y6f9gCY= Headers/PTDiffusionRecordV2SchemaBuilder.h - hash - - ZhIcXpXr8oL0a1OLwiwrrTcYjlA= - hash2 - B/O3kRZU2nSBNiNRBfvT/Ck722xsTpGpyW8LCZ0JQ48= + nZT4PPAuwhd81kmuDDjL/uPCfktlD5nw0hMKI7TgqDM= Headers/PTDiffusionRecordV2SchemaField.h - hash - - /jeQVC5riz+T4TfX5uvh46LwDDw= - hash2 - PQFKoZ9EWYYbMUPczmRdgR7VYQOWgfxJ5H44kPqragU= + ez5vtOlO+1+LHixd3dXZmUgQhMmC/r+Dq4PagYcoSiM= Headers/PTDiffusionRecordV2SchemaFieldType.h - hash - - rUb1lnPxYyaoGiVc0+kXFJ7Y7Tw= - hash2 - BgqzEJ9b+COw4NHnBcrF3U2kmdSEfFso8djLgYBdV8I= + rjxh0i/TVcDOTc0/sqFzuyvtxsTpUEQ2Qx6E25wasAU= Headers/PTDiffusionRecordV2SchemaNode.h - hash - - QRe83a+5IaaOgHgPRNl/i6vwXnU= - hash2 - rNKswsjiWBWhSKrTBc0AvalqNc2R9/+GGYTkqnnTccw= + cIkGHujgRHlv9TRNRbjHV0NypPgdDunXNA1c0NTK3QE= Headers/PTDiffusionRecordV2SchemaRecord.h - hash - - TnFwYILZgo+/FVeim2AOace5hCw= - hash2 - 1QPnGg0QUxjNFo6nfayD5yrhYqQWFW12jy2AOez9DQw= + OaWvao2jABRf4RvNs1I/dt8zomyo554rjFmP2a4pup8= Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h - hash - - wHWllniW8bHydKIMRghh+B9pBNc= - hash2 - UZEKnK9sZLeJnNnfOiddEbHpfT7InkXTXb8IoKCfB34= + GltXf1PQU9F3u6iD3MhndXpDuxNbGU6cgqwyWFnesyU= Headers/PTDiffusionRecordV2TimeSeriesEvent.h - hash - - 8nW8wilb7VSbwoirdb8YXPUoXwc= - hash2 - C0gL/TPg1RM04ZSZZcwO+5RzfB/6rLCGfHiKELYhWEw= + S1QB8+ULPUp2unzvvgj0XeX13mqDnUhkc/RguwqSkZU= Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h - hash - - 5eqp6nK4/+8/p3Iaq6RYs2A67ac= - hash2 - IOqyrhBj5e27RGZv2/zPLFfPzLOa92HhtnJSL2LizYQ= + 56eJs8aqJiQIWHm6ktcVHgH9qIN0dPbaKX7ugi82W+8= Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h - hash - - Pmj2xpyYBWs4WOlPNMtQDKFt1po= - hash2 - ihMZz6aqPagWix2ilZhrNixtPBVz1J5gFUSx/6fHGec= + oSvxiNQA/o4xrZNIDnYVjdS0JhmfUErRdy5GPZH22G8= Headers/PTDiffusionRecordV2UpdateStream.h - hash - - Y0a4Rv+Rjy+bPGlHY4MaiXDvzgE= - hash2 - kN0sogJm8z97fIOzzywjVeLouSGRSnj3QIqt0beQMzg= + XoaxmflJ8P6lFAy61BUszRGW2RCvVuNT2RYSLcO9m4A= Headers/PTDiffusionRecordV2ValueStreamDelegate.h - hash - - QVYIHzmU7JnguRZStV2xfYFe+SM= - hash2 - sx3eyoG8xnGpUB69imBnY+qiAg9JfVw0ggYzzkgDbcw= + OBSkyOcPqobhjr+y8i3yPKSoITaKaC//yLmKPYNzoKM= Headers/PTDiffusionRegistration.h - hash - - LGwiK+YsT6bBbaxQbi07AVArkms= - hash2 - /fw7FyAdyzmugjU4+5/vS7TnapryqyZAyYK1/lyI908= + AC+hSXzVgK55KdMemvMGgZlTU8gsJI0HGM2M/NHOIWc= Headers/PTDiffusionRemoteServer.h - hash - - tP1e8puvRCc3D98M2wIel8k9sms= - hash2 - puIFVIDvNoaDo929UvzfQPhRzHZTtWkqN/WGZLy6fB0= + Ipl+s0Ir/pp3eT/Vf26jTK5/0EeGNGiGca3CpJB0BHc= Headers/PTDiffusionRemoteServerBuilder.h - hash - - dGgKIOzLscYH0Kd+q0Efp8IjDpc= - hash2 - pUszGkxP+a/JbCZefTpZSGIot0KsA9enBe/25WdmYcY= + gaUUPE0U7WkpNQknazdOYoYUGA+KwwLf4yFEY7b7p6Y= Headers/PTDiffusionRemoteServerConnectionOption.h - hash - - ITjyZnacokkituioSBE8DhLXd8Q= - hash2 - NLenmJCy6U1pZoVxiYN2Km9JjN4PorWO5axqXSQYPws= + WbaMZD+9MJLszFhmcrzVVgTV5aXg8J02HUSzi17YWro= Headers/PTDiffusionRemoteServerConnectionState.h - hash - - YKFO+vf7p2q4zct1FRpSTINM89c= - hash2 - XqnhvAqC9NYx0svsYXd4rPjtfOzsWTethpkUgb6Wgk0= + swlPqwPPRaULAyqedgBhRD7w8AeTXogdlYj0s9+XsR4= Headers/PTDiffusionRemoteServersFeature.h - hash - - 3Prda4oNHqXUzM+2U22Vo3u2sRM= - hash2 - jJEqREhxVAGRZkUUJbXwi5q6iFNaUmUVffrMPWcWcec= + y1JIOYUAYENRX00Q2zF18/ETQJB2u7Re0zFh/trDtGw= Headers/PTDiffusionRequest.h - hash - - iBXHk0CN0V4H9TfvFlQgi/TXa6I= - hash2 - 1D1r3iVYAShdtGkw6SdHcTsXrHIsGXNBzcwzx4FHMHM= + s/Lfp8u/pzNHOKd7KCcxwAo965kFmnkS3Nttky9ew8k= Headers/PTDiffusionRequestContext.h - hash - - qxw2kG8mwhMOqbAw9ZcSwMgE6/k= - hash2 - PZ+PEV2ygYNQAcIvjDt2UmELSBOpW4/IbwN5PBxrhPo= + OzN0x0dcrwv87qN0XSlSv9wvadmAG6a3EAPIQAzFH1o= Headers/PTDiffusionRequestHandler.h - hash - - XmYRoiMjYnjmqFsrRj+Ocq9rZdU= - hash2 - rgOHp1VCSIkXw0SrmaPmxjlkBTRbWS/L4/1JRW8Jaac= + hHNsgq+E54KjW35ic5fMiX9hg+fy+Jp7w294MMZ5/VU= Headers/PTDiffusionRequestStream.h - hash - - qm5369ZeGnWQIKkO1xGqW93f0zM= - hash2 - NuRPmImge3Vf3x+Xl8pIGvRCmpdCMzk7vPxtX2upPDY= + i+fPGPXRnmNmFDIrIQsCd71kWzM8cLXjefPbv0RADko= Headers/PTDiffusionResponder.h - hash - - SQPU0jg5rEhY53sQfJBDoMRLoeQ= - hash2 - riQyM5q6dLJHwPJuh7jIr/aM+P5biTeOhQPYxV7sHy8= + DdZ9X11CvjQXFliHm5mH6OFQIRqxn1+CG1dST6Fgs+I= Headers/PTDiffusionResponse.h - hash + hash2 - UhIeKy+CRs4T2zTGFphGm1OzMQU= + b+htxBGWuJdDzP/8in9NRYt7zJ1xlfqhtMYzjW6NdqI= + + Headers/PTDiffusionRetryStrategy.h + hash2 - YNRB/Q0hMT4CGHdtVdYblO6/1ATcgFBlrm95Z5jvsMA= + lL2ackpqfPu9o2BKp+iBdKHIe4dUCFXGir2cl/XHkus= Headers/PTDiffusionSecurityFeature.h - hash - - r3/W67iYxvPHeteE6OMX+4ROxLU= - hash2 - z6qqOhPFPZgIdA3SsZFLlrGmoSBzrg4Vach5QEHDqBo= + 5oF9U+VlTM5jHlNjiAYFybHqmtMD62sQ8520TCJQvGw= Headers/PTDiffusionSendDeliveryPriority.h - hash - - 5verWwhZ36ChGa7vv+1M8PP8Rt8= - hash2 - P8lUuY8dzJotFCyr1YyOifq4kmNYZQLYIfHIn7kePp8= + bdVgIqZ1mvNHklE4in6f4AxN6lwODQtF5YVXogMZZBo= Headers/PTDiffusionSession.h - hash - - K4ufrMdrBR/6eUlFVBsL4YNlpkw= - hash2 - 37UpfQ4QviJPz90/H+eVkIMrL6ff+IalOAKbA1ZqXs8= + aOJbvrzjp7w20LBbMFPr3qZdrdDIsV2LGlh0osphwzE= Headers/PTDiffusionSessionConfiguration.h - hash - - cjTtORO4pfSJOpVygL/iuUmTLfE= - hash2 - H2cxWdtltgeyiqCyQy+7NveGUUoVb1SK1R8vOLQXYso= + 7aUfnLdjsDDbA4/82urX+3vutpLpPy/xWlFa7lLmF8E= Headers/PTDiffusionSessionError.h - hash - - /sDYNWbyKXRgx2xjLLXdtDk8uMw= - hash2 - +Q5rNi73pWx6+q3YhFJpm9hO1Ba1VWnriAFZb2OmH9g= + 19bGFW3lh3kbywHdtSeP7A1ptR3aGhwd5bJnTHSBJdk= Headers/PTDiffusionSessionId.h - hash - - oyP1ZP8tiqVh+RtjUsOFCD36SbM= - hash2 - J/+vE7jn++HZfXSRf9mx7uemIupYVhtRtFmOl/crL0k= + b/pdRBwslaHtVtVZuKpi8dhStXVQfObJDdtIenPBrSI= Headers/PTDiffusionSessionLock.h - hash - - +pRVtSlOo4nwFJAxLx7rRQ1bFBE= - hash2 - 1kVzjUr19mRfH3mjq/SDmQE4QUtD7NMXRmW2V9XlTEg= + HPdjKoKoj/ccqAOaMUF8naebbfopaiBV2Dwvf51t0h0= Headers/PTDiffusionSessionLockAttempt.h - hash - - zDG2rmmh4HQqat13XIARd2gpyp4= - hash2 - 7Qxg9Cq8bB9OGOhGfm7V9vXpLP5/AvmvkOx+UDTeWeY= + Oy4bs7+zLKvX06wSTJosCVqwgMJo8MaWn6jP26LULQY= Headers/PTDiffusionSessionLockScope.h - hash - - B+/qZhcMyw+RQI5MTzMR+SKqF8M= - hash2 eqwbvTvGikz3/e4eogPGBJUXeGhNV8dQOmB6uWum7qw= @@ -1458,681 +955,447 @@ Headers/PTDiffusionSessionMetricCollector.h - hash - - r/Zt7XdN0mfHzv6oKpiC0OXqrxw= - hash2 - NsRO+4UBUdido/Z4IGu85JgySXjhmKQ0z3a3fztteOc= + IozljUE1DL7DVqEfrmvrzMIBY58UR3Pes6siIjF0ueY= Headers/PTDiffusionSessionMetricCollectorBuilder.h - hash - - talQ04uHilmK6CHOlES9BepGWkk= - hash2 - P8p+TKpwml2q3JCQw5855Jb/pZ0KqrRgL/MHqRBCKVg= + YvDv1NoWTEx24p9c++JGmfEPTztjsedlbKeJq3binMA= Headers/PTDiffusionSessionPropertiesDelegate.h - hash - - Zmm4SJs443B/Ed0GSpRps6zTviA= - hash2 - tzco0p9SYApWIime3+WH7JB68fbzpeWaTSEJYEMDqVA= + lpHxU340gS9s1pTZJh1uxc/NWwRVOOEfyDZZrCtXG8c= Headers/PTDiffusionSessionPropertiesListenerRegistration.h - hash - - T5YzTXQWyd4mNDDwbkWXSNh9tQg= - hash2 - ywHpN7WRBoxH1vff8wRStNd/kGYda0DcFwEmRCItZsk= + ZuLNBjdclVDGgLU16qB120DnY8LqtClq9IaTCzLO5/Q= Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h - hash - - DG9AN818s/C+5ehY39mIwXSvCNk= - hash2 - 4Z6fSIhnwcSYiZR1+/p6cZufp7LeYtHGgs8d47DzK1I= + aLpsJ4rCC4TFj3icKAw4SwCUDZdSp0ObohPJHsHdwm4= Headers/PTDiffusionSessionReconnectionAttempt.h - hash - - R91QcHqYATJhv8hKoDoQbWbdMDo= - hash2 - YO23M6KlqvkG/Y/qN9anZIQK3J7cSKAXr5Tl7Tgzp5Y= + FwCXyjswE7Hj5EBrSFNyNVz2oQPeumukE2QyFN1HAfs= Headers/PTDiffusionSessionReconnectionStrategy.h - hash - - PrgSLAcm+88cWPctmusCFsADB8M= - hash2 - M8tPHVUp7N0ja0SJC+irr1LZg0YMkk5Dva7CjOYA30I= + NLqSWJnGyHtxnG50P1sSHBxi0zlfR5vAaroCavTecEk= Headers/PTDiffusionSessionResponseStream.h - hash - - TFbOIDOggRw+LezkWA7RLjZNDRA= - hash2 - /JXUQZQL1WH4zzMtawBxc8cll1rsR+/N1043M/QW3t8= + qs973ob/v5F3fAsMKMRZqI0I0WE4/KmtBZNnE5RLKmM= Headers/PTDiffusionSessionResponseStreamDelegate.h - hash - - fl2RAQgYo+kqHlgIUD5JDuzX/VA= - hash2 - DsTHLPRsTPZg6QHzyclrZ0WH/mRt5v/YwZ7g527/lmE= + QRNr3Gse3PIgrHWR1VtdF+d9ii7ViNWEI64nGCGsO0s= Headers/PTDiffusionSessionState.h - hash - - D7PBX4cf+PMCbTETtIfiwDZdUs4= - hash2 - Kbakvtxdu/fA43Ed/BjK0hVR0FVT2b8/D49em6+wZUc= + bYxqFaSEGy2nLELcDV/7vH9XMaslTroU4F7oCbR+vg4= Headers/PTDiffusionSessionStateChange.h - hash + hash2 - kH2ACmvz/J2676PpkVCDrOmYXoM= + M8/yWmdsYbCW9lX6pnhwnSfd90o1bVCft4s507oUoVE= + + Headers/PTDiffusionSessionStateChangeDelegate.h + hash2 - BBBArTvfiEFL6oiFj/41zNNlT1njYY1vYoI+nQ8bMAI= + am8jQ2utEtfiQO3dkpzlbQUNo58aKCH5RmxE2M8AuGQ= Headers/PTDiffusionSessionTreesFeature.h - hash - - yLxcurXzmLYnoF40EUkeQ1Wjdn8= - hash2 - 6voybta1zQJcZyRA/HJOZchUhPyf0Vjcyo9psnJZDuA= + 3Fw1/3L0ryyWtnHJC0mm0jnAegdY0NrSL0G2ubsZmE8= Headers/PTDiffusionSetSessionPropertiesResult.h - hash - - AOCaIej6BlQ6Lk/b3gQguGFo7vE= - hash2 - +IygM21qDTih0RTOpjmv8oxit4hVzTMwtNgCyCH5NVk= + ZT4skgOofyOjtRCQdbFBFhUA7btBk41Au6JAgxDW7Mc= Headers/PTDiffusionStream.h - hash - - rDmcy+gFQLG4u371AOzTrt8fnZc= - hash2 - OquMbs9jXcZ0/fVIvH+RsTHImbCwoPpN96YYPMLcIhc= + Z01BcLpUXyCkNl1UKzeDgsaGdh1Nmf+cQnTJRlIIjdc= Headers/PTDiffusionStreamDelegate.h - hash - - ePW4fuh5cMZxSyFRc3beuTOlpxg= - hash2 - RTKGdQk1l3twac14AsIuM9dC8e5fhB1P0CaJH6nHNsI= + OKp/dnEU+OLBVLI8cKIobbewMTK66QNLgSRWn1EwbiE= Headers/PTDiffusionStringFetchResult.h - hash - - GIweI8KVClgVTBpcOBGKqU2Q8OA= - hash2 - iScsJF+yUkJMSMGb+P70xaiKit/RnocgutNK6Eafjms= + EZgkv0bTJ7vbx4q4lXOQ3uAE7FzR+50GbB6MpmRBuqQ= Headers/PTDiffusionStringFetchTopicResult.h - hash - - 7qisXZm9jhg0Y5fMDyVWzx65oy0= - hash2 - yRUHXY9ID0T+cHhcu05vDj/Q8f5XewKStovmsJJfg5o= + PryoSKA6X0dRT3nG38guKaVEs7hQTcOA+KnNa16A0Qg= Headers/PTDiffusionStringRequestDelegate.h - hash - - EN/WRMBYCSI21ohKnQzSsENswas= - hash2 - sVm5YGWk4jbyYv4hlks1KQPYZm/Wj9HB4JtBYLrjfXw= + FoWCrvy+J4zEJgDnyd6ze70Ed4SxockWJgBaIfy3Uow= Headers/PTDiffusionStringRequestStreamDelegate.h - hash - - Sbfe0TtEgYds3b3MYM6tqQaNhXg= - hash2 - NldLf7GUHmJTWAuOoyjAqyfDQ6IRpqKW/rw+BavdQs0= + aRkqgLeibdHPAQ7vIGs2lt+b4/DYXeyt7cxD3dOVvQs= Headers/PTDiffusionStringSessionResponseStreamDelegate.h - hash - - 74IsG6YvQIagZxhmwxZyKJGxw4w= - hash2 - dIXuP7RC6K8KO1689SrR5VijdM4Guiml+63AgVu3oDE= + k+E/xL+LibLAq3rTIKYfaQKDpX4qJnPV5K8pTdAbikA= Headers/PTDiffusionStringTimeSeriesEvent.h - hash - - 1NQ2QsLa1qI8t2LXjuem4yF+llQ= - hash2 - FVcLjhf5UzkYCTpXLw9ypb4uPWPs9y8O1szJXXERdR0= + U90vJc+4gDM/XBnh6A+OWV+oJjacZKxoeVDWBnSu6+s= Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h - hash - - 4qsI0k8nCf4N+Nz/FMynawnaygM= - hash2 - JRu3roXY1J+cuVEwUYMCJnzDaalziDbiFvmMqu0sFEQ= + WkxIsa0sxbn4Opqafg/DZGdkbgAqFKIl2RTGu9EfzUs= Headers/PTDiffusionStringTimeSeriesQueryResult.h - hash - - zumPNOhfHhpy4bsA5zSFE71XvJQ= - hash2 - drSETpxCvXvczEAlpPKawLglX02OHH/GPatIi9FbFR8= + a+Aa8ogA/9JA8BEdQbZ1jrYbzxzn/l5m0T8RP3kkQt0= Headers/PTDiffusionStringUpdateStream.h - hash - - s7gAMaCr5wMoDUpdrY4/YQ1yaJM= - hash2 - a9SXqo11AZAX3NJne0XJt1649MIf4ieBpKn8y8kzMys= + KLQPX2pO2fwi0d3ylQaXKx1UswHPw88y2gpnmU6SpGM= Headers/PTDiffusionStringValueStreamDelegate.h - hash - - a7UMtigs/ys7HE/CZ8/KHEyHWsQ= - hash2 - rYE908yYBw327klyOltj8s7/3zSIiqzZ82pRuzbi1kY= + j0aubzfnDFx/qCJExG0pCXfOE9j62guTMKIZBvl03AU= Headers/PTDiffusionSubscriberStreamDelegate.h - hash - - wDl6dH5JGxIwojmEV1M/8prrOgU= - hash2 - itqgplYgEs2CoIpFuF0TeTAvtLGMxrP39cEw+TcjEGY= + tXbsjZ/Fz4jHFGUL2oai9jkm6Ts9zdbqDbzzzSWiBFY= Headers/PTDiffusionSubscriptionControlFeature.h - hash - - coLOg32pomsy6EhJOOH505Qv8NA= - hash2 - g/RudrAUkgwmnIfzrdBMeA72i0ipTmt4v7DigQ+j800= + 577CUsWVEXOH403zyribYpfeQT5CLxH4e3AnLOeNTxk= Headers/PTDiffusionSubscriptionRoutingRequest.h - hash - - bh6oZPo6Q9ckwiOGwLtgxhRJf1c= - hash2 - ypi7uoPa9zoUHojlKPyocBYMB37JNgezBRfjOIK4K2Q= + 7WtOrCkqrBKfaFJvH7Twc/krOlfNrwvT5+Bvr/aQsWE= Headers/PTDiffusionSubscriptionRoutingRequestHandler.h - hash - - 9jnRMtx9K8HdPuXG+znth3M0aGE= - hash2 - Q70WIM3Mqaq3dqSUMnC2AldPwtv5fgtYm8bGuod+UaA= + RJjJK3WCbo6On5aoF5Wl8nRUBNnrGBZqGk9TctyMvA8= Headers/PTDiffusionTimeSeriesEvent.h - hash - - EUo8rlUN7L4Vb0ApCRQc0QvyDKI= - hash2 - 97vCHRcjqT7uKfcSO9Ys4RsI6v7ZSH7qPwnAX9Di/VY= + 5VG95jJeM9H1vz5vUHuXlLbNdqEEZPQKSWmawxb5NDg= Headers/PTDiffusionTimeSeriesEventMetadata.h - hash - - K3z4tHb6R+DJ5TS7Zn7KTSuV3aQ= - hash2 - CzAl0sN+oQ07Gf4dwGQyaNBx6NuB7mPXQUsSP+9DCp4= + gQQjIWKJiUPdnTnK8c3q3d5+zviWGHWCQhH6k6wafak= Headers/PTDiffusionTimeSeriesFeature.h - hash - - kRQvWpGJ5/+mq+wKgZn1UFU+aEc= - hash2 - ye0OOkiUHe3N0n4B18mkrE5tiDW8JaJlEIgSk4itzIA= + bJ14hUgeVsI7pmf0Gp7XPl15nwTclL6QbiWTNB/J6NQ= Headers/PTDiffusionTimeSeriesFetchResult.h - hash - - MvAjs5LXtdh3OO3tOuSA04LMM1k= - hash2 - 364c4eAqt3TZfuyxQUU/jJfSxkmEmqvdjiSSyHPC+58= + VQbww+bJHpKLZVw5ozGHGcJsJbzWDopMins1f4GoDCc= Headers/PTDiffusionTimeSeriesFetchTopicResult.h - hash - - yp6pe18HJ/EGJmpbh+6s7NLZ7pU= - hash2 - 8BeXhDKuElnBgYAnaGN+0q99SidHj4GPqy2mDGnTvB4= + 70ZAVjYK54fPbI/aBwmPLPqlGRp906FpeahTBArh8UM= Headers/PTDiffusionTimeSeriesQueryResult.h - hash - - gG4FAopvIEIBP0fMvPbOLS83u98= - hash2 - F0a8u/EEZ6VlWAxFABVFbMi6Ms0h0UmR56WaaOH4ubw= + DHFhF1le1yYZG7QB9XjEpuTNeQKnx+/nJ6IydZXbSro= Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h - hash - - DvpP6DS6eAyk+aCqkqWb3iigDxs= - hash2 - Mw1+1YCFwn0dlb2fDs/LBpf8EmCBoPlHOUxhl7NTXfQ= + bhUqJ6BsDyWGwCjInsDC4UBeq/gZB5u5bqsZbZdNq14= Headers/PTDiffusionTimeSeriesRangeQuery.h - hash - - W/tKg/AWIskigFCtEjJRnm+TmXc= - hash2 - oXGcbB52rvoGAIFba+3plNyY2meLjW25+PKTXNsVcMQ= + 88wFqFx9xtfeGUzuGPNUyWy+HZ0w3J69Dmpgu8GF0WU= Headers/PTDiffusionTopicControlFeature.h - hash - - WtrzrcDtqjI42rwsqH/19Vd1VCk= - hash2 - r6nw88gBv8+MqASQ0Q5wqrafP3c5a4bG20dKeAVh9s4= + TNPv7A1Pc7kGI6am+cbLzrovDKOZdWOgnh51mpjr0FA= Headers/PTDiffusionTopicCreationResult.h - hash - - HSAGnfPszx9efRtpwwVWOIoTd/o= - hash2 - EhpYsxuOUlHPVaE/Fg/SeVil51mEO2QM5MW8x38pPFw= + 0eFshVZ8h0pY9lKi20iOj7RfEPY+5T1l1pECdmLdFI0= Headers/PTDiffusionTopicMetricCollector.h - hash - - kPmr2niRnxmnK+WEyGTHpQSy94I= - hash2 - CUDXZdj/kKN8IE1emun6dqOp+ajEFVG0Txfc0cEzCj8= + 2qs00SrBSzk8lUh8OVFMfQKkmmOe9/jAormyRZUzDCo= Headers/PTDiffusionTopicMetricCollectorBuilder.h - hash - - sHHk1WUF3Z4/PJSf1bOsvhKM25w= - hash2 - +47IgEXxUk98VJhVdtTzGnLZni4floIx32vpjXD0d18= + 6LinbFSYd4TEuw/bhnsx6e5vxZdq8lD1UVobF0qnVPI= Headers/PTDiffusionTopicNotificationListener.h - hash - - hZTc6cym7qmNF9lVtC5R8cw4FMI= - hash2 - NY+JZ6aNwMND735hkY+dGOTnbYaTWTW4X2/UWE9h2TA= + Yd65kVGGp6/jytaX0dO4N3/nyN5d2hX0hiPq19iNkbk= Headers/PTDiffusionTopicNotificationRegistration.h - hash - - +z4j7niWHEOMtD8Q+7iljLXUHkU= - hash2 - XFZRQ4OdjKY1xFGV/TcwJrnCm4K7v3MC4a6nsfz4mwI= + /kZ4Jgw1b6/dFhaP0Bs37rKtyU4qg3cb3LlGkLIrZqY= Headers/PTDiffusionTopicNotificationType.h - hash - - P/gSFu8kqdKZP1GErdycrZWxe8Y= - hash2 - BdcYCXge2aneTMdtz7N7EnLg7RAKxGJS4ZYbiy+CZGg= + R6Vv6W9PRLpJv55+h+fKVGJa/y3OlS36Kt5QJ3vuaPM= Headers/PTDiffusionTopicNotificationsFeature.h - hash - - cOpzyzMcUYS9Rswys88ul8VxKtc= - hash2 - x/S9lKmn2cVcwpVewElZP+vkC9XsBpK8j43C5WTATpE= + 9nIAjTCyPklFkgqsz9XUCe4/VIoWvMTomyPUDVNnd6Y= Headers/PTDiffusionTopicPermission.h - hash - - ToIfuMW32GNijiIbh7HZyDC4MBg= - hash2 - bhkm8653HOfvCBW4cHOAu3PXsR73xqC7LtgwIjXoBjA= + iHfHjjZXfd7enFoS1PUR+q0wl+bOV/YvDqRAvTW92h8= Headers/PTDiffusionTopicRemovalResult.h - hash - - OGJ85IHK6RKAeL3lQBmxgeRms9E= - hash2 - fxq1LeEeEWlwIODGxIVcELQF+fFknYm1iOqm7+epKfc= + 4UPlfIx5Kp0DTFEBUoGxDPULjn9rWA68/6dYOgJ7XRM= Headers/PTDiffusionTopicSelector.h - hash - - PvLuO6ABp5SdMAkZALFuqj6FPk0= - hash2 - XnNCiSKVNs816fSnzAKlgEsCcibEYT3QtDZD91NtiP4= + 0/Gr4YiDdZa5EG6bKOeN8StjNShjC1AEsRpXJ+j8g+8= Headers/PTDiffusionTopicSpecification.h - hash - - 6T6nTGbvX3owIJsYdwSEQeIz6KI= - hash2 - 6/u6TjEAtna5auIZnZonbeGvBDeAud/ACWp0s5uhruA= + 7l2YWBc8NotaGX/yG82SCQA60ne3Q+6SrQA2P7hx+j0= Headers/PTDiffusionTopicTreeRegistration.h - hash - - geRzJEq1yPFwf5jz0mNoxXMtLok= - hash2 - Ggz+bePtETeeiietlUZYWnGGj5sZ7vaIrwJKJ4SI9+M= + kQ3awGQo+b7tPgX2VMOYa+Bg41so8LMtV50t3B4JdQ0= Headers/PTDiffusionTopicTreeRegistrationDelegate.h - hash - - bJmglUQThguySqQY/0RZIdSn758= - hash2 - 8wf0iSrww7kBrC7NQdI52PP1KzFXNc7DqLQSB/ZDzTc= + XjL0BeHNZXrK1Uh/p/IR/I7Gx+XZkdfMJBtksK6A2yg= Headers/PTDiffusionTopicType.h - hash - - mY6IRMiXMRWQq+a/0cO8jlp/wPw= - hash2 - Esy/uXBR+Su4h3uJlMd2lrwCYoc93CeDNsydn/ee+WY= + Kxx6dzJsEyUOaMEUp3V2RRdXlFQFeyYtCGifEjWkIJ0= Headers/PTDiffusionTopicUnsubscriptionReason.h - hash - - X5fsyCzYm1au3UTJLOJV547sfT8= - hash2 - 505yxoqyGKB6p3KW1x74uejSKPtVspVyz/3HYrmpFyQ= + zh3U7QP1cmfSJ7dSUHgTCvi0dP4HFP6dZg4k2nqlm2c= Headers/PTDiffusionTopicUpdateFeature.h - hash - - fGaZOiKa69O1PnrUxN+BIKtHCwY= - hash2 - Pnh7vcziF9yfzR5VagR3Ak/4LccCL4W/rdWcHvwiyZM= + A4+YoizxM5TQQjgknubvhaNCLYmHrJ3FhqJKdRLdqaw= Headers/PTDiffusionTopicView.h - hash - - RNHKeU6rwo7Y8caMk40vHJ9WOl4= - hash2 - cq77Pu8R3aJSLnEaiJn1myGkvoLfyz+Af84llfG7FVk= + 8ArWfdJooTE+1YebNF7DbQBWQwg7WaAX0KL69fZWNSU= Headers/PTDiffusionTopicViewsFeature.h - hash - - 1jM2LY+xS60EBqCGtHhC4WxQdv4= - hash2 - 2VcRpxrNCTQ9xI/G2o3KdoFb9pRLrwxum0nGJwKmISk= + 2/+vZqxCDMUYv6fY2x1lVuviabAtyFNliwS3ihLLOQU= Headers/PTDiffusionTopicsFeature.h - hash - - oucx5fp8VB3Ck/BuDgoSHj59a4g= - hash2 - sHvk36QYKh/Ye46RvgvZqciETRHFt4OZQEBnwn2o0os= + O/N4e3K4VGNsXRkcH+HRfPkayqJaHunzpinEW7gICeU= Headers/PTDiffusionUpdateConstraint.h - hash - - WgubOT3cRcshVldoHPR5oATeZbk= - hash2 - 0nb1Of6Kfc61MDmtDqnriTxUaLxM/Yb/rQ0y44m8M2U= + 7Zk0Kppo3shbAB5ANtfw5q13LdXwfOr9egJHcpZZmJo= Headers/PTDiffusionUpdateStream.h - hash + hash2 - Q51eU6LsCptV2OMM0Oc1kbntKmc= + FmGglpmZL0KdJMlw9r41qQY/BpdALvuiiAclQ961WQw= + + Headers/PTDiffusionUpdateStreamBuilder.h + hash2 - fcmZ6i59/7l/GRY7gm2xrkykMmLDCeI2bWkYXOy8y8Y= + SnJKtvSveD1LG7lOtN+js9VlM0+nG1JUGHq8pPDlJ1c= Headers/PTDiffusionValueStream.h - hash - - vmLkEfveOrPcHBpupS8osA0+OAI= - hash2 - 2UDxwsKitVygyFLRxEBy/K1udXbMAJWPfUq5Xnsy9P8= + jltRdIfQ1M/rbV03jANn+F5kMjLxg8e17DeBMKCzggE= Headers/PTDiffusionVersion.h - hash - - B7GoZ+3T6mv21Fy27HaP3q0r3FY= - hash2 - XJ59U7yc7z/CEo8dOcxQ1ybieeK7tx3IHe/vaZmVWbA= + REiwYO8DNVoVvpIWKjCPxN05ivkRw2uLsCAe/fjcTr0= Modules/module.modulemap - hash - - q330/OkSKLLkRwoC2kdB1e4qTEQ= - hash2 IOdf2zvMpEjPRyI0O/jRrRe4UhkqYb+0eyRNsRwyyZE= @@ -2140,24 +1403,16 @@ Resources/Info.plist - hash - - wBnOyKkulj7TML5p44f/ZV4OHnw= - hash2 - kJxjYRzBqkKxU5XNRYl/DHmisiticdfKyomL7wlKaw0= + Lp4UUnyfsc5a5xrOUWLHKBeGQxdt0NTgUVAHXixFaWA= Resources/error_descriptions.plist - hash - - /+DHMG6HQY/7Iw6Bg8mViy/+t3U= - hash2 - WQDp1cUnKDQJgvpCF6wTV4TPJinp3INCQoKIJio4Cmk= + leLTmZUZ9DjAtyiBHnYaM+SUWfsw4x2NRWUcZhenZkw= diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist b/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist index 83c8924..8ad5404 100644 --- a/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist +++ b/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleIdentifier - com.apple.xcode.dsym.com.pushtechnology.Diffusion + com.apple.xcode.dsym.- CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -13,8 +13,8 @@ CFBundleSignature ???? CFBundleShortVersionString - 6.8.0 + 1.0 CFBundleVersion - 6.8.0 + 1 diff --git a/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion b/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion index b2abe66..d6bb460 100644 Binary files a/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion and b/Sources/Diffusion.xcframework/macos-arm64_x86_64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Diffusion b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Diffusion index 8523aa6..6eae69b 100755 Binary files a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Diffusion and b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Diffusion differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/Diffusion.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/Diffusion.h index 675946c..4a29369 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/Diffusion.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/Diffusion.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -16,7 +16,7 @@ Framework umbrella header file. */ -@import Foundation; +#import #import #import @@ -68,6 +68,8 @@ #import #import #import +#import +#import #import #import #import @@ -138,6 +140,7 @@ #import #import #import +#import #import #import #import @@ -158,6 +161,7 @@ #import #import #import +#import #import #import #import @@ -206,5 +210,6 @@ #import #import #import +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusion.h index 27dfff5..c1be496 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusion.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusion.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h index 738baf5..e084fef 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h index 6fbf6e3..10308a5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h index 9e16384..1c06044 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinary.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h index 567dd0b..ddd2be4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h index 190d691..61cc708 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h index 1a8d760..42e3874 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h index 02b00df..f6ee77f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h index 8ec00d2..7cd0178 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h index 67c6393..a5d0a93 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h index e32a8ce..cad83e5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h index bd71fad..f3ea38b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h index 1394647..ffd4a0d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h index 3d207c0..40fdcb4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h index 7ff6e28..9294dcd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h index 406a862..a45cf1a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMapping.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h index 3f3135e..33cea73 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionBranchMapping; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h index ac7d9e9..06c913c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionBranchMappingTable; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h index feafd5b..9b0b121 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionBytes.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h index 527527e..d11a077 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCancellable.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h index e948368..77cb3a3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServer; @class PTDiffusionRemoteServerConnectionState; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h index 3b85b3d..824016f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @protocol PTDiffusionSessionPropertiesDelegate; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h index 241997f..91135ca 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRegistration; @class PTDiffusionClientQueuePolicy; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h index 176762c..05e9a08 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h index 0b40936..0cde947 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCloseReason.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h index 70a70ad..ae4e164 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServer; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h index c8448d9..365608d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionCredentials.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h index a82451c..a1af9f6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h index c3709e0..8821a4f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDataTypes.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionDataType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h index 888f576..9b8d5e5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h index 5c0b787..d246a84 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h index ac5f160..a9f9a99 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h index 4705af9..04a802a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h index 07b78b1..cc32f47 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h index b9c0b4a..8513903 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionEnumeration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionError.h index fa3029f..fb285ca 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionError.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionError.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -1147,6 +1147,36 @@ typedef NS_ENUM(NSInteger, PTDiffusionError) { */ PTDiffusionError_KeyNotFoundInDictionary = 20155, + /** + * Update Stream recovery buffer limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamBuffer = 20156, + + /** + * Update Stream recovery attempt limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamRecoveryLimit = 20157, + + /** + * Failed to serialise value. + @since 6.9 + */ + PTDiffusionError_ValueSerialisation = 20158, + + /** + * Invalid Protocol Version. + * @since 6.9 + */ + PTDiffusionError_ClientVersionDowngrade = 20159, + + /** + * Invalid argument for the method. + * @since 6.9 + */ + PTDiffusionError_InvalidArgument = 20160, + }; NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h index 58d3cc9..a5b575b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionErrorListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h index c93f962..38f926d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSession; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h index b086393..5bb54e9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionFetchResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h index 1fd16cf..b28c2bd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h index a13ac71..ba25ffd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h index 5597758..68585a2 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h index 4d85fa4..b82cebc 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h index b8d54a2..d82908f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionHTTPAuthenticationChallengeHandler; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h index ff4d980..74c30b3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionHTTPAuthenticationChallengeStatus; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h index e773f48..f2125a6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionHTTPAuthenticationChallenge; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h index 139476b..97ef12d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h index 966605d..d17e32d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionHTTPAuthentication; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h index 28b1664..a702e5a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h index 2a6daf1..2eadd76 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSON.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2016 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import @@ -48,10 +48,10 @@ NS_ASSUME_NONNULL_BEGIN /** @brief An immutable JSON value with support for both binary and JSON deltas. - + JSON is "JavaScript Object Notation", a lightweight data-interchange format. See [www.json.org](http://www.json.org). - + Internally the value is stored and transmitted not as a JSON string, but in CBOR format to reduce memory and network overhead. CBOR (Concise Binary Object Representation) is a standardized format for binary representation of @@ -69,24 +69,24 @@ NS_ASSUME_NONNULL_BEGIN /** Return a JSON object initialized with the given object. - + Object hierarchies passed to this method must be constructed from Foundation objects which can be logically encoded with CBOR. This provides flexibility above and beyond the basic capabilities of a 'pure JSON' encoding as well as being less restrictive than the capabilities of NSJSONSerialization. - + This means: - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, `NSDictionary` or `NSNull`. - Dictionary keys may be instances of any supported type. - The top level object may be of any supported type. - + Being more permissive than NSJSONSerialization in that: - `NSData` instances may be used. - Dictionary keys are not restricted to instances of `NSString`. - The top level object is not restricted to being a container (`NSArray` or `NSDictionary`). - + Applications may take advantage of the more permissive nature of the underlying CBOR encoding by using these capabilities, assuming: 1. Encoding to JSON string is not required. @@ -95,7 +95,7 @@ NS_ASSUME_NONNULL_BEGIN @param object The object to be serialized to CBOR and stored internally to represent the receiver. - + @param error If this method returns `nil` to indicate that an error occurred then this will be populated with the reason for that failure. @@ -111,11 +111,11 @@ NS_ASSUME_NONNULL_BEGIN /** Convenience wrapper around initWithObject:error: that first uses NSJSONSerialization to generate the object to be serialized. - + @param jsonData A data object containing JSON data. See Apple's NSJSONSerialization documentation for detailed information regarding supported encodings. - + @param error If this method returns `nil` to indicate that an error occurred then this will be populated with the reason for that failure. @@ -149,13 +149,13 @@ NS_ASSUME_NONNULL_BEGIN /** Compare the receiver's JSON value with another (e.g. an earlier version) to create a binary delta. - + @param json The original to which the delta should be able to be applied in order to generate the value represented by the receiver. - + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - + @return A delta representing the difference between json and the receiver, or `nil` if there was an error (e.g. either the original or the receiver don't represent a valid JSON value). @@ -169,16 +169,16 @@ NS_ASSUME_NONNULL_BEGIN /** Apply a binary delta to the receiver's JSON value to create a new value. - + @param delta The delta describing the changes to be applied to the receiver's value in order to create the value to be returned. - + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - + @return The new JSON value, or `nil` if there was an error (e.g. the receiver does not represent a valid JSON value). - + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. @since 5.9 @@ -221,7 +221,7 @@ NS_ASSUME_NONNULL_BEGIN @return A data object containing JSON, or `nil` if there was an error (e.g. the receive doesn't represent a valid JSON value or cannot be converted to pure JSON). - + @since 5.9 */ -(nullable NSData*)JSONDataWithError:(NSError **)error; @@ -291,15 +291,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving JSON requests for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. - + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -359,14 +359,14 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support for responding to requests using JSON values. - + @since 6.0 */ @interface PTDiffusionResponder (PTDiffusionJSON) /** Dispatch a response to a request. - + @param json The value to send in response. @exception NSInvalidArgumentException Raised if the json argument is `nil`. @@ -387,14 +387,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a JSON response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -439,20 +439,20 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support to the Time Series feature for appending and editing events using JSON values. - + @since 6.0 */ @interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) /** Update a time series topic by appending a new JSON value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -504,13 +504,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -535,9 +535,9 @@ NS_ASSUME_NONNULL_BEGIN Evaluate a query for a time series topic where events have JSON values. @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -731,9 +731,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If path is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with JSON values @@ -757,10 +759,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If either argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -785,10 +789,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#json. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -816,11 +822,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#json. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); @end diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONDelta.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONDelta.h new file mode 100644 index 0000000..81a2962 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONDelta.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; +@class PTDiffusionJSONDeltaChangeMap; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable structural delta describing the differences between two + JSON values. + + Unlike a binary delta, a structural delta can be queried to determine its + effect. + + JSON deltas are useful for identifying small changes to complex JSON values. + + @see PTDiffusionJSON + + @since 6.3 + */ +@interface PTDiffusionJSONDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The parts of the first JSON value not found in the second JSON value. + + @note The pointer references used for the change map keys are relative to the + first JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* removed; + +/** + The parts of the second JSON value not found in the first JSON value. + + @note The pointer references used for the change map keys are relative to the + second JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* inserted; + +/** + Whether the two JSON values used to create this instance are different. + + @since 6.3 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h new file mode 100644 index 0000000..d09763e --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h @@ -0,0 +1,86 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable map describing the changes to a JSON value. + + The map contains an entry for each change, as follows: + + - The key is a [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the change in the complete value. Since a JSON value is a + list of zero or more data items, the reference always begins with an array + index. For example, the first part is identified by the JSON Pointer `/0`. + - The value is part of the complete value. It is returned as a JSON object that + can be parsed independently as a unit, or converted to a Foundation object or + JSON string. + + @since 6.3 + */ +@interface PTDiffusionJSONDeltaChangeMap : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The entries forming the change map. + */ +@property(nonatomic, readonly) NSDictionary* map; + +/** + Returns a view of the portion of this map whose keys are descendants of + `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the descendants of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)descendantsOfPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Returns a view of the portion of this map whose keys are descendants or parents + of `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + This method can be used to determine whether a structural delta affects a + particular part of a JSON value. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the intersection of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)intersectionOfPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h index 5f16be3..7c5533e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h index 787a14f..0450807 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h index 7564651..ca6c7ad 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h index 1b2499d..5a8bd92 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h index acdbb12..3b737e9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h index 04576c9..e51bb2c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h index 9ee409b..e0edc20 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h index ef818ea..fdf131e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h index 696bf4e..bca18ac 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h index ab37a71..5389c12 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h index 930dd93..bcb1b11 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h index 3e0b6e8..f835e7e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLogging.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionLoggingDestinationConfiguration; @class PTDiffusionLoggingLevel; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h index a779a35..89407c2 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h index a993729..556f664 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h index d98a267..d15d48b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h index 4544b00..15e6912 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBytes; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h index fc66026..7a99879 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h index def2453..3b99f77 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -40,7 +40,7 @@ NS_ASSUME_NONNULL_BEGIN @return the builder */ --(instancetype)exportToPrometheus:(BOOL)export; +-(instancetype)exportToPrometheus:(BOOL)exportToPrometheus; /** diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h index 2a189a4..df615f3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionMetricCollector; @@ -93,7 +93,7 @@ NS_ASSUME_NONNULL_BEGIN PTDiffusionMetricsFeature *const metrics = session.metrics; - @author Push Technology Limited + @author DiffusionData Limited @since 6.7 */ diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h index 6d29125..5b87b0b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionMissingTopicNotification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h index f356365..f35483e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h index f0d1233..d25abaf 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h index 6872693..c05250c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h index 237a929..5a3f194 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h index 287674f..ae0ba41 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRequestContext; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h index c31c0fc..5b784bd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionResponder; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h index 177da2c..49030b4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h index a62f940..ba41d8d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h index 6cdc4cf..03082c0 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h index 85d578f..ba80576 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h index 3e88e19..fcf8324 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h index f95c95d..ca73355 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h index e16e776..e999346 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h index de3e036..bef37ec 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPathPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h index 537326e..6d4d4f3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingDetails.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h index 0cbeeb1..7371089 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPingsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionPingDetails; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h index 2fd050d..22b31b5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionPrimitive.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import @@ -71,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN receiver of values using the Topics feature. @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionTopicsFeature @since 6.0 @@ -167,15 +167,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving double-precision floating point numeric requests (Eight-byte IEEE 754) for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -185,15 +185,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving 64-bit integer requests for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. - + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -327,7 +327,7 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request that can be used to send the given double-precision floating point (Eight-byte IEEE 754) value using messaging. - + @param value The value to send as the request. @return The new request, or `nil` on failure. @@ -605,7 +605,7 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support for responding to requests using primitive values. - + @since 6.0 */ @interface PTDiffusionResponder (PTDiffusionPrimitive) @@ -613,9 +613,9 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a request. - + @param value The value to send in response. - + @since 6.0 */ -(void)respondWithDouble:(double)value; @@ -623,13 +623,13 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a request. - + @param number The value to send in response. This may be `nil` in order to send a 'null' response. - + @param error Location to store a reason if this method returns `NO` to indicate failure. - + @return `YES` if a response was queued for dispatch or `NO` if the supplied number could not be encoded using this data type. @@ -640,22 +640,22 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a 64-bit integer response to a request. - + @param value The value to send in response. - + @since 6.0 */ -(void)respondWithLongLong:(long long)value; /** Dispatch a 64-bit integer response to a request. - + @param number The value to send in response. This may be `nil` in order to send a 'null' response. - + @param error Location to store a reason if this method returns `NO` to indicate failure. - + @return `YES` if a response was queued for dispatch or `NO` if the supplied number could not be encoded using this data type. @@ -666,7 +666,7 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a string response to a request. - + @param string The value to send in response. This may be `nil` in order to send a 'null' response. @@ -693,14 +693,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a string response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -717,14 +717,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a double-precision floating point (Eight-byte IEEE 754) response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -740,14 +740,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a 64-bit integer response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -839,20 +839,20 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support to the Time Series feature for appending and editing events using primitive values. - + @since 6.0 */ @interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) /** Update a time series topic by appending a new string value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -900,13 +900,13 @@ NS_ASSUME_NONNULL_BEGIN /** Update a time series topic by appending a new double-precision floating point (Eight-byte IEEE 754) value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -953,13 +953,13 @@ NS_ASSUME_NONNULL_BEGIN /** Update a time series topic by appending a new 64-bit integer value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -1010,13 +1010,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1043,13 +1043,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1076,13 +1076,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1105,11 +1105,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have string values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1126,11 +1126,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have double-precision floating point (Eight-byte IEEE 754) values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1147,11 +1147,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have 64-bit integer values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1963,9 +1963,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with @@ -1986,9 +1988,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with 64-bit @@ -2009,9 +2013,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with string @@ -2035,10 +2041,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with @@ -2063,10 +2071,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with 64-bit @@ -2090,10 +2100,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2118,10 +2130,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#string. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2146,10 +2160,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#doubleFloat. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2174,10 +2190,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#int64. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2205,11 +2223,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#string. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2238,11 +2258,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#doubleFloat. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2270,11 +2292,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#int64. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); @end diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h index 4760b44..8e03dfd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h index feabd27..3150322 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h index a466731..0b42ba3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2DeltaChange; @class PTDiffusionRecordV2Schema; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h index 242bdcb..c98bb5d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2DeltaChangeType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h index 764b033..35b3210 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h index f4fcca1..ce9ae6e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2FetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h index 3d2d57d..a3808c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h index 53f84c0..407076f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h index e97cfda..f840fb6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h index 0c309ea..9902618 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h index 0a3ed64..9eb1c8b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionMutableRecordV2Model; @class PTDiffusionRecordV2SchemaRecord; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h index 5612c5d..c709608 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2Schema; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h index 3db6034..18e6233 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2SchemaFieldType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h index 1528f70..9370ef7 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h index 467e591..6e796e9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h index 5faf861..2cf810e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2SchemaField; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h index 2c8d181..a122db1 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h index b684558..c6c096b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h index fbeb15d..1baa01e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2TimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h index 9eb6d39..4b532e6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2TimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h index c1276ee..9d92497 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h index f4a23cd..0a94cc5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h index 14b8d3d..ca77e51 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h index 991ffb8..de32eb6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServer.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRemoteServerConnectionOption; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h index 61737b8..4251fa9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServerConnectionOption; @class PTDiffusionRemoteServer; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h index 2cae572..45be376 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h index 7c8ec46..ed52d78 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h index 17f5dbf..cedcce6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionCredentials; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h index 5eeafe1..c1c1ce8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h index 6c99e05..7bd3717 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestContext.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h index 9900629..89599c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h index a03f935..d546be8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRequestStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h index 940983a..58d4204 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionResponse; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h index 9828470..2dbb969 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionResponse.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h new file mode 100644 index 0000000..068bed3 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Defines a retry strategy. + + A retry strategy will be applied when an initial to attempt to open a session + fails with a SessionEstablishmentTransientException + + The strategy is defined in terms of the number of milliseconds between retries and + the maximum number of retries to attempt. + + @since 6.9 + */ +@interface PTDiffusionRetryStrategy : NSObject + +/** + The retry strategy that indicates that no retry is to be attempted. + */ ++(instancetype)NO_RETRY; + +/** + Creates a new retry strategy object. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + @param attempts the number of retry attempts + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval andAttempts:(const NSInteger) attempts; + + +/** + Creates a new retry strategy that will retry indefinitely at the + specified interval. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval; + + +/** + No retry constructor + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)init; + + +/** + The number of milliseconds between retries + + @since 6.9 + */ +@property(nonatomic, readonly) NSUInteger interval; + + +/** + The maximum number of retries to attempt + + @since 6.9 + */ +@property(nonatomic, readonly) NSInteger attempts; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h index abd9c58..5d8212d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionCredentials; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h index e71c65d..58b20c8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** Delivery priority for a sent message. diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSession.h index dad91b1..d11fd1f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSession.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSession.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionClientControlFeature; @class PTDiffusionMessagingFeature; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h index 2211ad9..01639df 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,26 +10,31 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionCredentials; @class PTDiffusionHTTPProxyConfiguration; +@class PTDiffusionRetryStrategy; @protocol PTDiffusionSessionReconnectionStrategy; +@protocol PTDiffusionSessionStateChangeDelegate; extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; + NS_ASSUME_NONNULL_BEGIN + /** @brief A session configuration defines behavior and policies to use when connecting to Diffusion. - + @see PTDiffusionSession @since 5.6 */ @interface PTDiffusionSessionConfiguration : NSObject + /** Returns a session configuration object initialized with the given principal and credentials. @@ -47,9 +52,10 @@ NS_ASSUME_NONNULL_BEGIN -(instancetype)initWithPrincipal:(nullable NSString *)principal credentials:(nullable PTDiffusionCredentials *)credentials; + /** The security principal to use when opening the session. - + A value of `nil` dictates that no principal name will be associated with the session, indicating anonymous authentication. @@ -57,29 +63,32 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSString *principal; + /** The security credentials to use when opening the session. - + A value of `nil` dictates that no credentials will be used when authenticating the session. @since 5.6 */ @property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; + /** The reconnection timeout in seconds that will be used on connection failure. - + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. @since 5.6 */ @property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; + /** The reconnection strategy that will be used on connection failure. - + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default reconnection strategy will be employed. @@ -87,11 +96,25 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly) id reconnectionStrategy; + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) PTDiffusionRetryStrategy* initialRetryStrategy; + + /** The default recovery buffer size in messages. @return Number representing the default recovery buffer size in messages. - + @see recoveryBufferSize @since 6.0 @@ -100,41 +123,44 @@ NS_ASSUME_NONNULL_BEGIN /** The recovery buffer size in messages; can be zero. - + If the server is configured to support reconnection, a session established with a non-zero reconnection time retains a buffer of sent messages. If the session disconnects and reconnects, this buffer is used to re-send messages that the server has not received. - + Higher values increase the chance of successful reconnection, but increase the per-session memory footprint. @see defaultRecoveryBufferSize - + @since 6.0 */ @property(nonatomic, readonly) NSUInteger recoveryBufferSize; + /** The default connection timeout (2 seconds). @return Time interval representing the default connection timeout. - + @since 5.7 */ +(NSTimeInterval)defaultConnectionTimeout; + /** The lowest value that the maximum message size can be set to in bytes. @return Number representing the lowest value in bytes that the maximum message size can be set to. @see maximumMessageSize - + @since 6.0 */ +(NSUInteger)maximumMessageSizeMinimum; + /** The default maximum message size in bytes. @@ -145,11 +171,12 @@ NS_ASSUME_NONNULL_BEGIN @return Number representing the default maximum message size in bytes. @see maximumMessageSize - + @since 6.0 */ +(NSUInteger)defaultMaximumMessageSize; + /** The default maximum outbound queue size in messages. @@ -161,6 +188,7 @@ NS_ASSUME_NONNULL_BEGIN */ +(NSUInteger)defaultMaximumQueueSize; + /** The maximum message size in bytes. @@ -175,6 +203,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSUInteger maximumMessageSize; + /** The maximum size of the outbound message queue for the connection. @@ -196,9 +225,10 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSUInteger maximumQueueSize; + /** The connection timeout. - + This constrains the time taken to establish an initial connection to the server. The server is responsible for limiting the overall time taken to complete a connection once it has received the request. @@ -207,20 +237,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSTimeInterval connectionTimeout; + /** Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections. - + A value of `nil` or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied. Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - + For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely: - + configuration.sslOptions = [NSDictionary dictionaryWithObject:kCFBooleanFalse forKey:kCFStreamSSLValidatesCertificateChain]; @@ -229,6 +260,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; + /** User-defined @ref md_session_properties "session properties". @@ -243,18 +275,28 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSDictionary* properties; + /** Configuration of the HTTP Proxy that should be used to make connections to the server. - + This allows connection to a server using HTTP CONNECT tunneling through the specified proxy. - + A value of `nil` dictates that a proxy is not used. This is the default. @since 6.0 */ @property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) id sessionStateListener; + + /** Compares the receiver to the given session configuration. @@ -266,8 +308,12 @@ NS_ASSUME_NONNULL_BEGIN */ -(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; + @end + + + /** @brief A mutable session configuration can be modified prior to being used to define behaviour and policies to use when connecting to Diffusion. @@ -286,6 +332,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) NSString *principal; + /** The security credentials to use when opening the session. @@ -295,6 +342,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; + /** The reconnection timeout in seconds that will be used on connection failure. @@ -316,6 +364,20 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite) id reconnectionStrategy; + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) PTDiffusionRetryStrategy* initialRetryStrategy; + + /** The recovery buffer size in messages; can be zero. @@ -333,13 +395,14 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger recoveryBufferSize; + /** The maximum message size in bytes. This constrains the size of messages that may be received from the server and thus the size of any content that can be received. The limit protects against unexpectedly large messages. - + @exception NSInvalidArgumentException On writing to this property if the given size is below the allowable minimum. @@ -350,6 +413,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger maximumMessageSize; + /** The maximum size of the outbound message queue for the connection. @@ -371,6 +435,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger maximumQueueSize; + /** The connection timeout. @@ -379,7 +444,7 @@ NS_ASSUME_NONNULL_BEGIN once it has received the request. If not explicitly set, defaultConnectionTimeout will be assumed. - + @note If this exceeds one hour (3,600 seconds) a warning will be logged and the connection timeout will be constrained to one hour. @@ -387,20 +452,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSTimeInterval connectionTimeout; + /** Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections. - + A value of `nil` or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied. - + Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - + For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely: - + configuration.sslOptions = [NSDictionary dictionaryWithObject:kCFBooleanFalse forKey:kCFStreamSSLValidatesCertificateChain]; @@ -409,6 +475,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; + /** User-defined @ref md_session_properties "session properties". @@ -435,6 +502,16 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) id sessionStateListener; + + @end + NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h index 398b49e..f65cc34 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionError.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -51,7 +51,7 @@ typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { @since 6.0 - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Establishment instead. instead. + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_ClosedByClient instead. instead. */ PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h index c960865..f21d301 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionId.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h index 9de38c1..f7f2264 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLock.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionLockScope; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h index 7d870c5..9a8588a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionLock; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h index 22c03cf..b642626 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h index faf8565..c73e9da 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionMetricCollector; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h index 5b76343..9ca6e01 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h index 7a0cb20..b39b8dd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h index 3b31c14..e788596 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionPropertiesListenerRegistration; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h index 476ebe2..8adf4c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h index d221776..174d5b8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSession; @class PTDiffusionSessionReconnectionAttempt; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h index ada35b0..8910630 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h index 6259851..0df709f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h index 844aa43..3aa6ec9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionState.h @@ -10,18 +10,18 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN /** @brief Session state represents the condition a session has in respect of connectivity to a Diffusion server. - + A session state object is immutable. @see PTDiffusionSessionStateChange - + @since 5.6 */ @interface PTDiffusionSessionState : NSObject @@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN /** `YES` if the session is closed, otherwise `NO`. - + This might mean that the session lost its connection to the server and could not be recovered. @@ -58,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN /** If the session is closed then this property will be `nil` if the closure was normal and expected, otherwise it will contain the failure reason. - + @note This property is to be considered as an auxiliary, informational attachment to this session state instance. As such it is not incorporated within the result of the hash method and is not checked on calls to isEqual: @@ -79,6 +79,57 @@ NS_ASSUME_NONNULL_BEGIN */ -(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; + + +/** + The session has been closed by the client. + + @since 6.9 + */ ++(instancetype)ClosedByClient; + + +/** + The session has been closed (or rejected) by the server. + + @since 6.9 + */ ++(instancetype)ClosedByServer; + + +/** + The session has lost its connection to a server and could not be recovered. + + @since 6.9 + */ ++(instancetype)ClosedFailed; + + +/** + An active connection with the server has been established. + + @since 6.9 + */ ++(instancetype)ConnectedActive; + + +/** + The session is establishing its initial connection. + + @since 6.9 + */ ++(instancetype)Connecting; + + +/** + Connection with a server has been lost and the session is attempting reconnection. + + @since 6.9 + */ ++(instancetype)RecoveringReconnect; + + @end + NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h index e11b54c..8a4712f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionState; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h new file mode 100644 index 0000000..8b2e30a --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2023 DiffusionData Ltd., All Rights Reserved. +// +// Use is subject to licence terms. +// +// NOTICE: All information contained herein is, and remains the +// property of DiffusionData. The intellectual and technical +// concepts contained herein are proprietary to DiffusionData and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The optional delegate for a session which may be used to receive state notifications. + + By default a session will not have a listener. + + @since 6.9 + */ +@protocol PTDiffusionSessionStateChangeDelegate + + +/** + Called whenever the state of a session changes. + + @param session the session + @param previousState the previous state + @param state the current state + + @since 6.9 + */ +-(void)onSession:(PTDiffusionSession *)session + stateChangeFrom:(PTDiffusionSessionState *)previousState + to:(PTDiffusionSessionState *)state; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h index 3d1d139..e896078 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBranchMappingTable; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h index 5b16c46..eb6e203 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStream.h index 18a71d0..9c98d34 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionStreamDelegate; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h index af12c1c..a37190a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionStream; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h index a2a378f..0626764 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h index bda7a97..1a4192e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h index db83bdd..65cc52e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRequestContext; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h index 266e8ab..0884b2a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionResponder; @@ -42,6 +42,7 @@ NS_ASSUME_NONNULL_BEGIN didReceiveRequestWithString:(nullable NSString *)string responder:(PTDiffusionResponder *)responder; + @end NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h index 7fdc28e..34fc4da 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h index 51fc3c0..afe53c8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h index 22c4859..e408ef9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h index af93739..b6b6e9c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h index 32983b0..30c1e89 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h index fe42f3a..47e8ceb 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h index 4fed397..fda020c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h index b6ef0a2..34fd1ea 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRegistration; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h index fc872e7..80ed457 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h index d7bae1a..c68e149 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSubscriptionRoutingRequest; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h index 6231157..6e286ba 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h index b994743..60d5f9d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h index 50f5705..56bc5cc 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h index 14aaf1f..297f104 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTimeSeriesFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h index 7f3ff85..be9aa93 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h index 89f595f..5ec45d8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTimeSeriesEvent; @class PTDiffusionTimeSeriesQueryResultEventArrayStructure; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h index 82a403d..53a9893 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h index 9c97336..89d9a86 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h index 64be027..a82f04f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h index 4a92cda..fc7efb3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h index dfcf998..55fee76 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN @@ -46,6 +46,14 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, readonly) BOOL groupsByTopicType; +/** + Indicates whether the collector groups by topic view. + + @since 6.9 + */ +@property(nonatomic, readonly) BOOL groupsByTopicView; + + /** @brief The number of leading parts of the topic path to group by. @@ -57,6 +65,9 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, readonly) NSInteger groupByPathPrefixParts; + + + @end NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h index 1bda0f7..a9e0981 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicMetricCollector; @@ -41,6 +41,22 @@ NS_ASSUME_NONNULL_BEGIN -(instancetype)groupByTopicType:(BOOL)groupByTopicType; +/** + Specifies whether the metric collector should group by topic + view. + + By default, a topic metric collector does not group by topic view. + + @param groupByTopicView true to indicate that the collector + should group by topic view + + @return the builder + + @since 6.9 + */ +-(instancetype)groupByTopicView:(BOOL)groupByTopicView; + + /** Specified the number of leading parts of the topic path the metric collector should use to group results. diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h index 8968a6f..a6c312d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicNotificationType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h index e3b3341..7564c27 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h index c2a0ced..c334ab3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h index 91ce757..233d371 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStream; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h index 336f2c0..10eb122 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h index 90779f5..0bbce27 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h index 5e1c546..7cff311 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSelector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h index a2ee381..a1199b7 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h index ade6b7f..ab70bae 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h index a7a2d47..05da049 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicTreeRegistration; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h index 3573b01..a5352ea 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** @file PTDiffusionTopicType.h diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h index 0ed9a4c..20b9b86 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** @file PTDiffusionTopicUnsubscriptionReason.h diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h index 2d6a694..8115aa6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,10 +10,11 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import +#import NS_ASSUME_NONNULL_BEGIN @@ -27,11 +28,12 @@ NS_ASSUME_NONNULL_BEGIN ### Update streams - An update stream is created for a specific topic. The type of the topic must - match the type of values passed to the update stream. An update stream can be - used to send any number of updates. It sends a sequence of updates for a - specific topic to the server. If supported by the data type, updates will be - sent to the server as a stream of binary deltas. + An update stream is created for a specific topic. An update stream builder + can be obtained using the PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder + method. The type of the topic must match the type of values passed to the + update stream. An update stream can be used to send any number of updates. + It sends a sequence of updates for a specific topic to the server. If supported + by the data type, updates will be sent to the server as a stream of binary deltas. Update streams have additional ways of failing compared to stateless set operations but when used repeatedly have lower overheads. This is because @@ -46,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN performed by the update stream will complete with an 'invalid update stream' error. - Applications can chose to use collaborative locking to coordinate exclusive + Applications can choose to use collaborative locking to coordinate exclusive access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. The application is responsible for designing a locking scheme which determines @@ -55,18 +57,6 @@ NS_ASSUME_NONNULL_BEGIN constraints and an application locking scheme can also ensure a sequence of set operations has exclusive access to the topic. - ### Constraints - - Constraints can be applied to the setting of a value and creation of an update - stream. Constraints describe a condition that must be satisfied for the - operation to succeed. The constraints are evaluated on the server. The - available constraints are: - - - an active session lock - - the absence of a topic - - the current value of the topic being updated - - a part of the current value of the topic being updated - ### Removing values When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or @@ -109,6 +99,18 @@ NS_ASSUME_NONNULL_BEGIN @interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature + +/** + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the type of the created update stream. + + @since 6.9 + */ +- (PTDiffusionUpdateStreamBuilder *)newUpdateStreamBuilder; + + /** Applies a JSON Patch to a JSON topic. diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h index 3f35cf8..601f0e4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicView.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h index d07441a..eda82c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019, 2022 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019, 2023 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicView; @@ -386,7 +386,7 @@ NS_ASSUME_NONNULL_BEGIN Sets the field indicated by the JSON pointer to a value which is the - result of the specified calculation. If the field does not exist it + result of the specified calculation. If the field does not exist it will be created. The calculation can include fields within the input value. The calculation is specified as a quoted string. See below for a detailed description of calculations. @@ -513,7 +513,7 @@ NS_ASSUME_NONNULL_BEGIN A condition is of the form:
-         pointer operator [constant/pointer]
+         pointer operator constant
          
Where pointer is a JSON pointer, operator is a relational @@ -524,7 +524,6 @@ NS_ASSUME_NONNULL_BEGIN
          /Age > 40
          /Name = 'Bill'
-         /Age > /RetirementAge
          /Manager eq true
          
diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h index a4d769f..54f156d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h index 5284f21..2cc7efc 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionPartialJSONUpdateConstraint; @class PTDiffusionSessionLock; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h index 4407569..ee4deb6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStream.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicCreationResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h new file mode 100644 index 0000000..3698253 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h @@ -0,0 +1,244 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionUpdateStream; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRecordV2UpdateStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream builder. + + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the update stream type. + + To create a new Update Stream Builder, please use {@link PTDiffusionTopicUpdateFeature: newUpdateStreamBuilder}. + + @since 6.9 + */ +@interface PTDiffusionUpdateStreamBuilder: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Specifies a {@link PTDiffusionTopicSpecification topic specification} for this + update stream. + + If a topic does not exist at the `path`, one will be created using the topic + specification, otherwise the operation will fail. + + Specification is `nil` by default. Calling this method with a `nil` parameter removes + the currently set topic specification from this builder. + + @param specification the required specification for the topic + + @return the builder + + @since 6.9 + */ +-(instancetype)topicSpecification:(PTDiffusionTopicSpecification *const _Nullable)specification; + + +/** + Constraints can be applied to the setting of a value and creation of an update stream. + Constraints describe a condition that must be satisfied for the operation to succeed. + The constraints are evaluated on the server. + The available constraints are: + - active session lock + - absence of a topic, + - current value of the topic being updated + - part of the current value of the topic being updated + + Constraint is `nil` by default. Calling this method with a `nil` parameter removes + the currently set update constraint from this builder. + + @param constraint the constraint that must be satisfied for the update stream + to be validated + + @return the builder + + @since 6.9 + */ +-(instancetype)updateConstraint:(PTDiffusionUpdateConstraint * const _Nullable)constraint; + + +/** + Resets the builder to its default parameters. + + @return the builder + + @since 6.9 + */ +-(instancetype)reset; + + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @since 6.9 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with RecordV2 + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h index 04ce4d5..d5579df 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionValueStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h index 61e9cdf..9ea1df9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Headers/PTDiffusionVersion.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Info.plist b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Info.plist index 8dc2368..eb1eaad 100644 Binary files a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Info.plist and b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/Info.plist differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/_CodeSignature/CodeResources b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..014f56d --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/_CodeSignature/CodeResources @@ -0,0 +1,2291 @@ + + + + + files + + Headers/Diffusion.h + + Mkqa2r0x+txy0cQmJIpxw2oeQP8= + + Headers/PTDiffusion.h + + etncixhbxbY9uNI3FgCEG5NZC1k= + + Headers/PTDiffusionAddTopicResult.h + + lf4tnUs6clyzlkWOZxif1brIZIg= + + Headers/PTDiffusionBasicHTTPProxyAuthentication.h + + EZ2o/hOmmA0wKR57fwDga0y2Cqo= + + Headers/PTDiffusionBinary.h + + Dp5oMgxGqG0AwopvhmD53929ZKg= + + Headers/PTDiffusionBinaryDelta.h + + 2QhceXcLnfQd/qzQK9ojEjnVz1c= + + Headers/PTDiffusionBinaryFetchResult.h + + nx3DoWNGWUI98o/h2rutlX9a/AM= + + Headers/PTDiffusionBinaryFetchTopicResult.h + + ZurLVW92masa5deJ9QudaTVWnOI= + + Headers/PTDiffusionBinaryRequestDelegate.h + + F/RIhkNPfD93JbOaX3mXAL1RkXw= + + Headers/PTDiffusionBinaryRequestStreamDelegate.h + + mo1R65pbBqwX2qOpEujsT7T4KFg= + + Headers/PTDiffusionBinarySessionResponseStreamDelegate.h + + uAPdv2I+wYK3uhq/84NkD7fgxeY= + + Headers/PTDiffusionBinaryTimeSeriesEvent.h + + YqSglP1Kdz2FhbKhxghcJixdnrA= + + Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h + + 6oo8LIKO/uZA4sNzdK+nlR/5FIY= + + Headers/PTDiffusionBinaryTimeSeriesQueryResult.h + + ixMN6gDnwxXAmajRPWrUaS5uIt4= + + Headers/PTDiffusionBinaryUpdateStream.h + + h+lm30nxzIbJgyeMQ0HtqYjsv4c= + + Headers/PTDiffusionBinaryValueStreamDelegate.h + + ljWMTJnpBwToLvbyN4kTsuJZQeA= + + Headers/PTDiffusionBranchMapping.h + + Labnm5AJG/nmPaP56htrzXh18Io= + + Headers/PTDiffusionBranchMappingTable.h + + X9M05JWp4TG3kfAM5x3EhPJW8v8= + + Headers/PTDiffusionBranchMappingTableBuilder.h + + tQydUcWofgYORzWn7JeAiBWLAq0= + + Headers/PTDiffusionBytes.h + + wAjXc7vWNjySYljVMRNsT+6+EZ8= + + Headers/PTDiffusionCancellable.h + + Gmm/d6N12EoRSVSUTymeFrhPaxk= + + Headers/PTDiffusionCheckRemoteServerResult.h + + CyId85zIwIFtp629m7KJ30//FM0= + + Headers/PTDiffusionClientControlFeature.h + + lGTUIsvZvsl99fF6vQ4Ze94HvKs= + + Headers/PTDiffusionClientQueueEventListener.h + + qbDOQMEQhhWLUBn+fkAANXOIEeU= + + Headers/PTDiffusionClientQueuePolicy.h + + o6Lr6PXPUNpRfOqUzOsPXPLUCBY= + + Headers/PTDiffusionCloseReason.h + + 8stcH0pJC4p3Pm/F+rfo4qcdNW4= + + Headers/PTDiffusionCreateRemoteServerResult.h + + fCPpDe9H/eNLUz+cLSrdmN15ZDU= + + Headers/PTDiffusionCredentials.h + + ChqQbKvOiDqqYl5Vwujv/MlzQdM= + + Headers/PTDiffusionDataType.h + + /o2coY2OXX8jiC8yEYzAjl+owWE= + + Headers/PTDiffusionDataTypes.h + + 241uaKNOvlRh22w5JYc6fjTjO08= + + Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h + + 0LEl+NBH3BN0llMo95e01zSaVBw= + + Headers/PTDiffusionDefaultStreamDelegate.h + + f4GfBFpNZwaBfR6lX2TDMrUCs2w= + + Headers/PTDiffusionDefaultSubscriberStreamDelegate.h + + 4CROni4tMaTuWKAjaey/Vc4jRjQ= + + Headers/PTDiffusionDefaultTopicNotificationListener.h + + oNNeBlqnhsu6vRGQM4QPqFUrfeE= + + Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h + + aIV07Bx9clK5bpnrK5tF3fZocsI= + + Headers/PTDiffusionEnumeration.h + + 1DMAvabFhr876grje6SCYFLrlBk= + + Headers/PTDiffusionError.h + + atYN8FDgttIKU3XnAuIU3vnKdew= + + Headers/PTDiffusionErrorListener.h + + EAHALG8d4scUoAwdnXOkEjbrP/c= + + Headers/PTDiffusionFeature.h + + dWawOs/ELfwVqjBE5ltRPT/71w4= + + Headers/PTDiffusionFetchRequest.h + + KkuMMRiUlzGH0JxWgZ9ylE++LWs= + + Headers/PTDiffusionFetchResult.h + + /T3ijCiWmmVZ1i2LHsHbHncSgdo= + + Headers/PTDiffusionFetchTopicResult.h + + /tVIkxz3JFU5J+sRgur1NDCnb74= + + Headers/PTDiffusionGetSessionPropertiesResult.h + + 87ak7jHiCkqpwa9eP9ohBI9A2JU= + + Headers/PTDiffusionGlobalPermission.h + + P7/nHG2hsIIjJbA0PaOX6lKuqQ8= + + Headers/PTDiffusionHTTPAuthentication.h + + oEX1Yg2hovbJq4PFIVm47qeqwMc= + + Headers/PTDiffusionHTTPAuthenticationChallenge.h + + Mzvzcyb4aicAxxaxfuxjnOon6S8= + + Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h + + b8i+YV5dgnprw+s3yakS2eBsSfc= + + Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h + + jLMSYOorAMy9jIu0Se3gQY17m6w= + + Headers/PTDiffusionHTTPProxyConfiguration.h + + ElKSmimXIcvqbqv8X31rnLgk9N0= + + Headers/PTDiffusionHTTPResponse.h + + AaRy8GBWXt2ysVS1xsR+WVtAGYc= + + Headers/PTDiffusionJSON.h + + UB3VCtbTX/hTJYSoYHRFaD0koOg= + + Headers/PTDiffusionJSONDelta.h + + llOmfyInCzKBu9gaoyyD2F0E8Eo= + + Headers/PTDiffusionJSONDeltaChangeMap.h + + pZD3sB7uVs1AlRUFdXkJWxR8Roo= + + Headers/PTDiffusionJSONFetchResult.h + + MMuebHUd6ghg/TdtPAoF8pa0M+4= + + Headers/PTDiffusionJSONFetchTopicResult.h + + IFLx59aTDLWXW+4aGz6VHuJknJM= + + Headers/PTDiffusionJSONPatchResult.h + + PrMdJIZyx/6c94gnZaj03sECMnY= + + Headers/PTDiffusionJSONRequestDelegate.h + + O2hwszRccrLaNmdhU+SibNYBIZw= + + Headers/PTDiffusionJSONRequestStreamDelegate.h + + u5XITvrPzLbNdvlxowF97dD6fkE= + + Headers/PTDiffusionJSONSessionResponseStreamDelegate.h + + HDlqDowcgloPplbbEYTG/yEdwls= + + Headers/PTDiffusionJSONTimeSeriesEvent.h + + RcHAcv5yP2wxO13ZIO0fDkRKNF0= + + Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h + + 6fZ63Zr32EoXExyTAak3KCkNmck= + + Headers/PTDiffusionJSONTimeSeriesQueryResult.h + + ZBkj1nFh4BjmQH9CfzqrWgFSYAo= + + Headers/PTDiffusionJSONUpdateStream.h + + Qyz7EFzJMMCcgkBwIeGG+BZ7n3g= + + Headers/PTDiffusionJSONValueStreamDelegate.h + + 3k1M7cqmg0NOHDAubOy36MrUj48= + + Headers/PTDiffusionLogging.h + + 3/Qic6EJSqNfIoY0DuWR1nnVTrk= + + Headers/PTDiffusionLoggingDestinationConfiguration.h + + opQqfIOqWB55P4kaFEXdMkCx23M= + + Headers/PTDiffusionLoggingLevel.h + + ttEQE3ONuRBTpBf3edmsJgf6V/s= + + Headers/PTDiffusionLoggingMessagePrinter.h + + CpwRxxTnxfY/1n9cg6oHVCUCwkA= + + Headers/PTDiffusionMessagingFeature.h + + DpAlGVFnhF0vEDIRAqJICKlqAzA= + + Headers/PTDiffusionMetricCollector.h + + ibw6woRQavBLN0ZWnt9jieDkFUI= + + Headers/PTDiffusionMetricCollectorBuilder.h + + 0302nzzc+tGrdKo+P/h8Fvx8p0M= + + Headers/PTDiffusionMetricsFeature.h + + 0STlq7UoYU6wbFu1+hRzN/xnghI= + + Headers/PTDiffusionMissingTopicHandler.h + + cFfLmfy9Qj228NY1gVKCKxKoHf0= + + Headers/PTDiffusionMissingTopicNotification.h + + V70fd8EArG5WI73eHtaMbqp0LOk= + + Headers/PTDiffusionMutableRecordV2Model.h + + RU7vmnvmmIRXhRo25AdtbBG7Dfo= + + Headers/PTDiffusionNumberFetchResult.h + + u25nPwb/XgcAqpA7LLfxydgjTok= + + Headers/PTDiffusionNumberFetchTopicResult.h + + WdD2IGt+yy9Uubxutw/IDveSO6Q= + + Headers/PTDiffusionNumberRequestDelegate.h + + SOo4ck/8vEtDax5Uqp5wYgQ1luU= + + Headers/PTDiffusionNumberRequestStreamDelegate.h + + k06j/mET0n+Gj2SWSw/1iw3g1eE= + + Headers/PTDiffusionNumberSessionResponseStreamDelegate.h + + GMy7jTkAq0n1FtUTYXwEcIDaeSk= + + Headers/PTDiffusionNumberTimeSeriesEvent.h + + tyRJotkHuz2MZZ3/h/fNt62gRW0= + + Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h + + Nh4um6YvEN9rCvvKbNXaSqpn+mU= + + Headers/PTDiffusionNumberTimeSeriesQueryResult.h + + kf1PArSbO8zrQ4bvmnUxOMVik00= + + Headers/PTDiffusionNumberUpdateStream.h + + jOgeSjTNY+SndUVqLqqknCqdNR8= + + Headers/PTDiffusionNumberValueStreamDelegate.h + + 59+6S2QqEtdRPyGyFAsaXHFRZSc= + + Headers/PTDiffusionPartialJSONUpdateConstraint.h + + RBsJCmnW52diE8J2WUVNyIxGznM= + + Headers/PTDiffusionPathPermission.h + + utHyQhw1oqLuc8CFm6wgSc3XNUQ= + + Headers/PTDiffusionPingDetails.h + + 0zGyogQffFVxgHMKzHV1z/AUYcE= + + Headers/PTDiffusionPingsFeature.h + + ILzEw2AWPERs0rA9Q1rHkPFokYs= + + Headers/PTDiffusionPrimitive.h + + 4pK+hfJ/5vRwvN+/R7IgWZry47g= + + Headers/PTDiffusionRecordV2.h + + 9jPG9mGsh6ywTSZQbrHk9vm14PU= + + Headers/PTDiffusionRecordV2Builder.h + + +R43bqNNNSrziRgr9JY3AKVfI1M= + + Headers/PTDiffusionRecordV2Delta.h + + MDvyEtKhWN1atexpVnfBzyRgOlE= + + Headers/PTDiffusionRecordV2DeltaChange.h + + YyCYYNE95yLCCU2wlol8RySHmrY= + + Headers/PTDiffusionRecordV2DeltaChangeType.h + + aKKRips1gmiC2VczkX1enW534S4= + + Headers/PTDiffusionRecordV2FetchResult.h + + DM2fmgSp+PEHlNH/quxAhMJSJNs= + + Headers/PTDiffusionRecordV2FetchTopicResult.h + + ajbj/1aV/KZOfOyG7L+jISluVjI= + + Headers/PTDiffusionRecordV2Model.h + + S3u5qsl0s67Gp5D/HEOcjC7Rpdg= + + Headers/PTDiffusionRecordV2RequestDelegate.h + + eMhaKyIE7AZ5WKIjUChHd/6ptqI= + + Headers/PTDiffusionRecordV2RequestStreamDelegate.h + + OQV1G21EDlLtYmdD2JdZbZU5uzQ= + + Headers/PTDiffusionRecordV2Schema.h + + 29Vd7ulnAtz3HlUx+gSWDLcU9pQ= + + Headers/PTDiffusionRecordV2SchemaBuilder.h + + 0NioSaGvZlbAcQrYvNbNAi4P+Ew= + + Headers/PTDiffusionRecordV2SchemaField.h + + nMOQYy88QfELJo93TvSRKq+n5UM= + + Headers/PTDiffusionRecordV2SchemaFieldType.h + + plUnzqdSf1ET25eO//O5+b+FlrI= + + Headers/PTDiffusionRecordV2SchemaNode.h + + uvWnpYK4e4ugcIxwblIJ0VvyJr8= + + Headers/PTDiffusionRecordV2SchemaRecord.h + + MswcVnsUm9m8lNaKMTy5MudMHvE= + + Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h + + kuVjEn/RpPcDmAE9odYMpa8aUVM= + + Headers/PTDiffusionRecordV2TimeSeriesEvent.h + + KLF3lvwxYGEMScZAy6MhstjAnBY= + + Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h + + tpMkvB8WAzevpM+ZZ9efhIbarSg= + + Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h + + eBeo9N3OngG7UGNtJmC7eDmMAX8= + + Headers/PTDiffusionRecordV2UpdateStream.h + + C8JxKjIkLqBcPQK450hyNh6zJuE= + + Headers/PTDiffusionRecordV2ValueStreamDelegate.h + + i9HX1prcRwwSTRkaCWO/+wYKdeo= + + Headers/PTDiffusionRegistration.h + + W3Vw9COYkUtYU97VH4XvScMmGRY= + + Headers/PTDiffusionRemoteServer.h + + 8Ww2pLGazyPtS2YmJ3r20BKAo8E= + + Headers/PTDiffusionRemoteServerBuilder.h + + SerfJWFqqmSIfKnxgUEiutQ2KHI= + + Headers/PTDiffusionRemoteServerConnectionOption.h + + MBysTsKBCSXf5PJJ3wpOojR6Jvk= + + Headers/PTDiffusionRemoteServerConnectionState.h + + mw/eKPYjOdkxSWidu7HGKppaAlM= + + Headers/PTDiffusionRemoteServersFeature.h + + yvk7aNi2t7cCSlBP5z9QlqOyyNk= + + Headers/PTDiffusionRequest.h + + xAxd3/9o9wfiPgSqxrfnpDpjDhc= + + Headers/PTDiffusionRequestContext.h + + xeKAZ+VuwggkHqxG1PWZ7bXMTqk= + + Headers/PTDiffusionRequestHandler.h + + WsyzCHLTmKlt/wcjcyBG/5jL08w= + + Headers/PTDiffusionRequestStream.h + + Zv7vMz3yeEEu9Z85344h42fKLeY= + + Headers/PTDiffusionResponder.h + + pt9o2ut9An0AMQkZPFU4V0cyutw= + + Headers/PTDiffusionResponse.h + + Q8sXEJDrJGa9Dd9HCeUtoWCTjOw= + + Headers/PTDiffusionRetryStrategy.h + + 1il8so4gUjqCCvg5TRzbyoaHwxE= + + Headers/PTDiffusionSecurityFeature.h + + o95Nwkx1BHa7tQo85JqcgUmRUuc= + + Headers/PTDiffusionSendDeliveryPriority.h + + w3hhJNuNqGID6gHCHRq13qT5Fk0= + + Headers/PTDiffusionSession.h + + dVbfcACrK5ViY9tsk0LfsGbM7EI= + + Headers/PTDiffusionSessionConfiguration.h + + TRJpxEF9TQxHUE3tAvljNId6/HQ= + + Headers/PTDiffusionSessionError.h + + /N2U2/H3sQahKWe+3OK4b5/sHYM= + + Headers/PTDiffusionSessionId.h + + bjAVhZZHsCDiQtXcWDg/Mt5Jqm8= + + Headers/PTDiffusionSessionLock.h + + pRjtpJ4OV8M7T1JrfRMcwCRzzX0= + + Headers/PTDiffusionSessionLockAttempt.h + + F9JjEhm/2O3Avmo2p7tQVNi2zOA= + + Headers/PTDiffusionSessionLockScope.h + + B+/qZhcMyw+RQI5MTzMR+SKqF8M= + + Headers/PTDiffusionSessionMetricCollector.h + + cGYuseLU/31kUdyyFprcCtW/Dd8= + + Headers/PTDiffusionSessionMetricCollectorBuilder.h + + xW4HZ1JSvpkqtdPSG7Ri4DTmUPU= + + Headers/PTDiffusionSessionPropertiesDelegate.h + + ZK+EIqsw0fi+s+xIWUlI4xRRAUw= + + Headers/PTDiffusionSessionPropertiesListenerRegistration.h + + bGcFnXPO8fnri5+bPx51Qmb16bY= + + Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h + + weUx7F/rNoca8WGeTcBg3XnC2w0= + + Headers/PTDiffusionSessionReconnectionAttempt.h + + +ToAswnfGNDF+2VHHi2IHXVpk8o= + + Headers/PTDiffusionSessionReconnectionStrategy.h + + q2hUzH5OXZl6gNbY5X/rfsuj/sk= + + Headers/PTDiffusionSessionResponseStream.h + + x6r/r6ta7dO0kOqzhRvleNnHyOs= + + Headers/PTDiffusionSessionResponseStreamDelegate.h + + 93B33j5xtR+chnEjypZWO0nvMRY= + + Headers/PTDiffusionSessionState.h + + ga0fsQLDN3YCtttCW1h8hx5u5k0= + + Headers/PTDiffusionSessionStateChange.h + + 261WITvQeq3j4wqi5fxkgh9g9Uk= + + Headers/PTDiffusionSessionStateChangeDelegate.h + + I13XUOrr5eJaf2jNke9oj2eMYeo= + + Headers/PTDiffusionSessionTreesFeature.h + + bd+wzHk3Vh7YZJiTTdK/T1znHfk= + + Headers/PTDiffusionSetSessionPropertiesResult.h + + syT4pk/CgzCeZ4Z0wKN8IBqthZM= + + Headers/PTDiffusionStream.h + + xKB7aLpvCs6El7QQL0jn86m4v/k= + + Headers/PTDiffusionStreamDelegate.h + + aLYAfnWKXf53AH5pJwenzQsUxYA= + + Headers/PTDiffusionStringFetchResult.h + + qx7Aja50Bb3mMs+84VoSWG5Xcjs= + + Headers/PTDiffusionStringFetchTopicResult.h + + 8khbWI6t+bSoHP83ppZUjiSVG7Y= + + Headers/PTDiffusionStringRequestDelegate.h + + eU+jin9xsc16Qgwpb1NunH777Y4= + + Headers/PTDiffusionStringRequestStreamDelegate.h + + g9Pi+bnkXFYc1qA+HXdO8vDp+XA= + + Headers/PTDiffusionStringSessionResponseStreamDelegate.h + + lO0zexieIeu7aBf3u3j+OtTfFcg= + + Headers/PTDiffusionStringTimeSeriesEvent.h + + 2LPFnC2Z7kiFBmxfsSn9Gu4Mk1Y= + + Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h + + yG3L23xjbzZHVgPaK2OCqeIVc6Q= + + Headers/PTDiffusionStringTimeSeriesQueryResult.h + + xKm7HGOoIIOAQ+zE6vt+ynMA97U= + + Headers/PTDiffusionStringUpdateStream.h + + Kg5qSOtTPiZxsKclUIsUEcRbJUE= + + Headers/PTDiffusionStringValueStreamDelegate.h + + X2t4SvNlud3O4AnH8n8KVFFDSfE= + + Headers/PTDiffusionSubscriberStreamDelegate.h + + Z51r+DtzgiRgOeC9fmpbaLpkSEI= + + Headers/PTDiffusionSubscriptionControlFeature.h + + iouD2u0n6IAl0Q2MkXy+tUwcQ4s= + + Headers/PTDiffusionSubscriptionRoutingRequest.h + + 62OSCfzi6qboLz2LJK8Cuwif5g4= + + Headers/PTDiffusionSubscriptionRoutingRequestHandler.h + + GDEB5ib3O9Qip8y3PyCTt2FJl50= + + Headers/PTDiffusionTimeSeriesEvent.h + + GwAwW6xQJU0YJq/BH2es6w8NYpc= + + Headers/PTDiffusionTimeSeriesEventMetadata.h + + CctV6GWN1e8atz4cmRvwkH3mEiM= + + Headers/PTDiffusionTimeSeriesFeature.h + + mMpxPsOdi4Ak1NmYNC0Ygep4k34= + + Headers/PTDiffusionTimeSeriesFetchResult.h + + 4Y0oITXaI4WyKJQkwzUwnvhkYQY= + + Headers/PTDiffusionTimeSeriesFetchTopicResult.h + + YfbC1jEisk8Rr6Q2rCdA6O4iidM= + + Headers/PTDiffusionTimeSeriesQueryResult.h + + QbFBLkm9EDCQ/Qrvy34niAjVq88= + + Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h + + uBt/o+HjAjBsqvJjufIF7fI0P3I= + + Headers/PTDiffusionTimeSeriesRangeQuery.h + + gXXiTD9FjLsoGC8SjKP8DCtXHdo= + + Headers/PTDiffusionTopicControlFeature.h + + /I9hx6ncXo/UxRNhvMzdOOZJ1yo= + + Headers/PTDiffusionTopicCreationResult.h + + tO5XyfLRAcf3Tzj+WU5dKQkSeY0= + + Headers/PTDiffusionTopicMetricCollector.h + + 9H9mm4on1w9dD6v2HbRADfXus4Y= + + Headers/PTDiffusionTopicMetricCollectorBuilder.h + + 49qM9t5OMNjFn1LMof2zgVBDuKs= + + Headers/PTDiffusionTopicNotificationListener.h + + z2SMFXq+mlnME/GtBTTR2k3ZeS8= + + Headers/PTDiffusionTopicNotificationRegistration.h + + +RujsaipGlw9TMJsc0kRAo4mLrA= + + Headers/PTDiffusionTopicNotificationType.h + + sgcAtoSV/Zobq8h7urx+km0rg18= + + Headers/PTDiffusionTopicNotificationsFeature.h + + IfvbLLWVYp877e9lDzSZHPulNY0= + + Headers/PTDiffusionTopicPermission.h + + ONiifzilkrxLuoFkSHPCcoZQIN4= + + Headers/PTDiffusionTopicRemovalResult.h + + 5C+wxG7ExLIEkdGuclMrU+MqfKI= + + Headers/PTDiffusionTopicSelector.h + + XJFtcUsutKIPNN7ZPRK5yGmkh30= + + Headers/PTDiffusionTopicSpecification.h + + HRmP7ibvQ8EyRPH+bUN02frOqbI= + + Headers/PTDiffusionTopicTreeRegistration.h + + +wRdByplLwLouKuQLLZOSkdTpOk= + + Headers/PTDiffusionTopicTreeRegistrationDelegate.h + + TsYnOXklqpYZKd1lOgeC1m4aWWg= + + Headers/PTDiffusionTopicType.h + + T87TNIiPTXScnwm3Wy4lCcjz+n4= + + Headers/PTDiffusionTopicUnsubscriptionReason.h + + JY7a1EVbbNOLPd1quQl2Eg/7yhc= + + Headers/PTDiffusionTopicUpdateFeature.h + + O2yWqZSV7Y92U4BhiRqeAG61Dpg= + + Headers/PTDiffusionTopicView.h + + OE07/KYnSJpcH45apBnrGvz+z2M= + + Headers/PTDiffusionTopicViewsFeature.h + + qJOimME3xrA8NdSmfQ37ClzjA6s= + + Headers/PTDiffusionTopicsFeature.h + + 2Cu3x5WWMeUfz0tlQ0gE1pSGqDU= + + Headers/PTDiffusionUpdateConstraint.h + + SCY6UA1rZzRQYHq9ybaBH0mwvRA= + + Headers/PTDiffusionUpdateStream.h + + i86I8izfeQSdiN9JrsAkhWyB2dE= + + Headers/PTDiffusionUpdateStreamBuilder.h + + N5Vuhvokeroi0V2zEdZArhemJa8= + + Headers/PTDiffusionValueStream.h + + LWC4mgeOR50XMz0MZh+Cx0Cn8sQ= + + Headers/PTDiffusionVersion.h + + FQiMU6V2P/Bdzp8wrGe4xS0FGy8= + + Info.plist + + ggIjuUYsi4QnCQCN6UyNS2Llv50= + + Modules/module.modulemap + + q330/OkSKLLkRwoC2kdB1e4qTEQ= + + error_descriptions.plist + + IgeTzRhVc7Ef0oI1M6pe3UYtDGI= + + + files2 + + Headers/Diffusion.h + + hash2 + + A1zwNtl0yfpty9+eqIwje1Ha+Cxu33jPe/AvbGJVykc= + + + Headers/PTDiffusion.h + + hash2 + + NJkvOe7sV9inX4lGI2vh6WglcdzakvOyWAZvlfqGPX0= + + + Headers/PTDiffusionAddTopicResult.h + + hash2 + + EKWKQQYimqytJpb6wN8t7zur8vJfV6t3purhOpwqcto= + + + Headers/PTDiffusionBasicHTTPProxyAuthentication.h + + hash2 + + lNqCwMmnEWV1lCFH63yQUDGQ/QB12Lfr3497TSPyYZ8= + + + Headers/PTDiffusionBinary.h + + hash2 + + pAtK+/vemHjXAdUhXY0+wdumrAFl8xi7AvEpM5NKKQI= + + + Headers/PTDiffusionBinaryDelta.h + + hash2 + + cAdg7jUyyUs3WBnGTxbH8Fp1ZgmzvwBgzDmzejaP02c= + + + Headers/PTDiffusionBinaryFetchResult.h + + hash2 + + i/6QE+uOhRxzksybPgBgkvMjwoQNwzCuk4CIUs/bUNA= + + + Headers/PTDiffusionBinaryFetchTopicResult.h + + hash2 + + kxcCorEeDXRQ2HToGHFLzd576/SgoMD1sK8EtgLMj6Y= + + + Headers/PTDiffusionBinaryRequestDelegate.h + + hash2 + + UrZpuer2fPFUeb+5fMFquhZmCF8vxRrVnPSwoxTaqb4= + + + Headers/PTDiffusionBinaryRequestStreamDelegate.h + + hash2 + + HRlzQsTwHd08PPHEVDdGhBSmeu01WZFHsBFV9cbXT7E= + + + Headers/PTDiffusionBinarySessionResponseStreamDelegate.h + + hash2 + + nxFGh44y4EEEAeZ1kRa41tz6ej95dNJXgybjC5XKFwE= + + + Headers/PTDiffusionBinaryTimeSeriesEvent.h + + hash2 + + C6b93rxmeLvZeqmBD+htM78o4fiy4L8k5uFeMhsj9RU= + + + Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h + + hash2 + + IYJwis0D+uFU4pTz9Ce6LrLfvBkCo/OFt+t7bo1dC3c= + + + Headers/PTDiffusionBinaryTimeSeriesQueryResult.h + + hash2 + + yU9zQRr75wkd9rwAE79NPJ1k8UM/gZ0ozbdohJZ3kTc= + + + Headers/PTDiffusionBinaryUpdateStream.h + + hash2 + + IS+ge2fuZOiRqsF/VVw9SogcM5ba+qaGtqRUVK2Y49s= + + + Headers/PTDiffusionBinaryValueStreamDelegate.h + + hash2 + + g61+exeX7oOSLyEl8XOePjMxSoariC3H6soITiqqGYI= + + + Headers/PTDiffusionBranchMapping.h + + hash2 + + goiBi1K1nyRy6w9cYVbGyeeEMx5PFHXWjqIF1f2iuM8= + + + Headers/PTDiffusionBranchMappingTable.h + + hash2 + + /F0HJRO5DykAz629aZwZ87a0wsBmKUKlH5YQI3bMT4Q= + + + Headers/PTDiffusionBranchMappingTableBuilder.h + + hash2 + + Ov5T/qu5/dNQ4tllnsPvaZ9A4d1OJBLiz76Aft00gpE= + + + Headers/PTDiffusionBytes.h + + hash2 + + noeJjt8j/FGQ6KRyHuNwOBMn7weyEERzf8DQDcEQpX0= + + + Headers/PTDiffusionCancellable.h + + hash2 + + vDcczDhZ5sEOLKkdZ+qh58A5glGLt6E9EKdn6kEyt/Y= + + + Headers/PTDiffusionCheckRemoteServerResult.h + + hash2 + + mve8V9bYg7x2qkFwzduWxk8wFIK+dmLVBUcmGwjMKdo= + + + Headers/PTDiffusionClientControlFeature.h + + hash2 + + CGsOGc9zQUYKMnP9mOStwqfJ/gjFzFK61yJtOWS3B5I= + + + Headers/PTDiffusionClientQueueEventListener.h + + hash2 + + YqNTgiT0i1aJRBUUhzryEKY2YYLQWASMJLSdFNF4Dh0= + + + Headers/PTDiffusionClientQueuePolicy.h + + hash2 + + MpKR2JR0lqht3ueV/XvEY2M2CLhb0rf40bVl8TzfBWY= + + + Headers/PTDiffusionCloseReason.h + + hash2 + + mcVgGqxDFQx9CL1kIA3q+cwqct8eocI7ayVXFlJuC8w= + + + Headers/PTDiffusionCreateRemoteServerResult.h + + hash2 + + ltZw8RDwqYhptUR0W538ThquYMgIYs6OveZnm+lnCv0= + + + Headers/PTDiffusionCredentials.h + + hash2 + + HVf7FwHHvz5drhP8M0SKLQgczz/zGzzhwfTxQfTN7Dk= + + + Headers/PTDiffusionDataType.h + + hash2 + + XWWuVPUovPcPfOxJu7IlNebl5Hvf+y3edyfDk+I773Q= + + + Headers/PTDiffusionDataTypes.h + + hash2 + + LsLy+f5mEXxYAA24hURlC47M2WxYSwrMIib1jLjFweU= + + + Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h + + hash2 + + Tx5en1POL1nuG2LWUIQQJAJUehyWu3eNcSJFxxz4CoQ= + + + Headers/PTDiffusionDefaultStreamDelegate.h + + hash2 + + iPFDLfw+vgecpwNnt/Q8VW6Fq1bENEf2WYV63TIsR+4= + + + Headers/PTDiffusionDefaultSubscriberStreamDelegate.h + + hash2 + + wUpvggq3lUb8yhP/luJHt+ND70yFaNxFpUwCcBiUjHk= + + + Headers/PTDiffusionDefaultTopicNotificationListener.h + + hash2 + + 2iAbixccndqGnyqe8nCOUm/hfJ4lHrUi8nqvTwNlcpI= + + + Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h + + hash2 + + lTy8jnBVIRPIV/iYHVS2lgmGtpdO+1oWNQ2dm70izOc= + + + Headers/PTDiffusionEnumeration.h + + hash2 + + 0d1hGNZqWcFSMH4f1c1VDYX0WIV17CWWDQpCkszafkI= + + + Headers/PTDiffusionError.h + + hash2 + + RSZV+RQNSj6glfsBd7n3QhwJqhYaKOas8Ho5rdS33bE= + + + Headers/PTDiffusionErrorListener.h + + hash2 + + wUhpMThJrWlCugKuimRmK0kbZ/6jWMYPk6caEo3qp5k= + + + Headers/PTDiffusionFeature.h + + hash2 + + Aqk7y7sqRwFIO73O/twnB9TG7BKB/PqxVUikbxkKitA= + + + Headers/PTDiffusionFetchRequest.h + + hash2 + + HilD4zCUclx4PshGXVes8cD3nXfke0WSzPq+9gsmAmU= + + + Headers/PTDiffusionFetchResult.h + + hash2 + + LVshrFDq2KG31A5gm6KlRT0ntNfGoMS016CX2eTF8p0= + + + Headers/PTDiffusionFetchTopicResult.h + + hash2 + + jaJ+Vpq2FWnzLW19B5kf9R+9XItJBOlEMSaSNuFjYCc= + + + Headers/PTDiffusionGetSessionPropertiesResult.h + + hash2 + + KS9IsH75bU0BMwO/VGHdqbuFlnGvGAHRtuKbzqAehhk= + + + Headers/PTDiffusionGlobalPermission.h + + hash2 + + ZeGTIRBhyWydKlQFXTufEiYAtPeI9stVn4s0roOd9ps= + + + Headers/PTDiffusionHTTPAuthentication.h + + hash2 + + +RNHLW/DegSpyx4qw/kjoVIIoFTxnENRAGmfPYZBsgU= + + + Headers/PTDiffusionHTTPAuthenticationChallenge.h + + hash2 + + 2LbRaWQViguwFTlDz+mPlfDFF53L6TZ1VX5ps9/yLK0= + + + Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h + + hash2 + + /kgkQDewUpO1Htwgm/2wTjAu8pMUg9/n2FB1OuJmBqY= + + + Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h + + hash2 + + NXTuGJPtTRB5+9aCkUJ3/vRaRROIUhh72VEs6LhpjPk= + + + Headers/PTDiffusionHTTPProxyConfiguration.h + + hash2 + + /cTb6wTMItyQmINsAp5wcPb2Rk1J3KYgZSCthmPjEcI= + + + Headers/PTDiffusionHTTPResponse.h + + hash2 + + 1o2Ga+oRHDw9J7CoyTX6Ny5ITgi+1AOjCvj5T2YNhcM= + + + Headers/PTDiffusionJSON.h + + hash2 + + KVeGiB1jiOLKW6LGOWrEkiYKrzBfBsQNeGLJ9L+uquw= + + + Headers/PTDiffusionJSONDelta.h + + hash2 + + HSFFw0p0Vjx1Wq5cCnBT5imYhwRp4lePX6qOUxJHO7c= + + + Headers/PTDiffusionJSONDeltaChangeMap.h + + hash2 + + AjKutPHJDIvXgSCGdhHvl3BHC9QpH9bwlVc6zfwches= + + + Headers/PTDiffusionJSONFetchResult.h + + hash2 + + dJ8E+5YMCp+ImeQ6EsiDjxR1f+7gxwI2Ezzh0pUY8gc= + + + Headers/PTDiffusionJSONFetchTopicResult.h + + hash2 + + n9dibxRGvPRIUJfhvuYFlge8huW7MhdYXhvc9w9bt+I= + + + Headers/PTDiffusionJSONPatchResult.h + + hash2 + + iLQkOP79QPRM6KYj7R1aDim0KlnmL2ls4ZFt3d9+2M8= + + + Headers/PTDiffusionJSONRequestDelegate.h + + hash2 + + yd2juwS8e/ytJq7zRRj6WtFifuOsuDTfDJGUzVu5a/8= + + + Headers/PTDiffusionJSONRequestStreamDelegate.h + + hash2 + + V5hV4r4oahxIiBHUDmY/uYZnxlssalQaYcPVg1JJwNY= + + + Headers/PTDiffusionJSONSessionResponseStreamDelegate.h + + hash2 + + PGWYZoa1NVp7ZYeuc07wQmpd+RGd2SZGUFHjNfTEIVo= + + + Headers/PTDiffusionJSONTimeSeriesEvent.h + + hash2 + + uSkpHJ35QCNfDb9i0jzJVXE37MQ1McPK3s6bgpsKp1Y= + + + Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h + + hash2 + + J3tGpr6NiDTgkzIvimuJMF/QYHRvcP5cjVPlkJyyEEk= + + + Headers/PTDiffusionJSONTimeSeriesQueryResult.h + + hash2 + + YPUQy8I9JLz/DLADhCOEr+V+8fZdPNMYDK/b34Fz85Y= + + + Headers/PTDiffusionJSONUpdateStream.h + + hash2 + + Cf+RhPVGELSJPVNwj3wXKutO06CnjAKXGm7FzOIUh1A= + + + Headers/PTDiffusionJSONValueStreamDelegate.h + + hash2 + + w8Qp38dEwbILAikQpwwT3ABHp5SzATppP/aE+yG/DT4= + + + Headers/PTDiffusionLogging.h + + hash2 + + ThkCoh6S71c2+ugUpmxHrw6KPAGYvmxfYmyQiBYnewQ= + + + Headers/PTDiffusionLoggingDestinationConfiguration.h + + hash2 + + e9rg3b8uHVVAtm6EgeUGF5DmygglLaseXRezI8GDFK0= + + + Headers/PTDiffusionLoggingLevel.h + + hash2 + + IMgmWb6Gac/ypapkMV7cwewBwIHc0G+YQreT12J5bcQ= + + + Headers/PTDiffusionLoggingMessagePrinter.h + + hash2 + + 9FVZ1A+guhhf3gqlsyeOsLQgL6p3DET0arHxsRaRae0= + + + Headers/PTDiffusionMessagingFeature.h + + hash2 + + qavtZ3Sov4MOzk9EhtqMZnmqzMlIu5MNHRHkJ+7A87g= + + + Headers/PTDiffusionMetricCollector.h + + hash2 + + at9MAzNfEAlkNyMYo+Vrj8zZc+oX/OUy1STHg2ODJG0= + + + Headers/PTDiffusionMetricCollectorBuilder.h + + hash2 + + jrPanMbMursCBYm/a9MLB2ZUrs33FOAh6GmWohpkVn4= + + + Headers/PTDiffusionMetricsFeature.h + + hash2 + + alYHcRjQQyGkaNLYcKEprHHqPRffTP5ohXFK664HBv4= + + + Headers/PTDiffusionMissingTopicHandler.h + + hash2 + + uKY6CZZtWD/Q4zd7jzpKOBBW9Ctcp5pGVWtq0BiXYpE= + + + Headers/PTDiffusionMissingTopicNotification.h + + hash2 + + p9DvZjlEiuMGCPFmQRmWPmeRgF/K4mXoeb9CiYUJ9Tc= + + + Headers/PTDiffusionMutableRecordV2Model.h + + hash2 + + eKCPCPAJOPw/EeCVLRs0+4MwNO+3dnzJFMFloj6iJxQ= + + + Headers/PTDiffusionNumberFetchResult.h + + hash2 + + ePnR6X9EQQCxk6Ml34BDOU3Z3wQr3NFjpTv5YJOu8sg= + + + Headers/PTDiffusionNumberFetchTopicResult.h + + hash2 + + MJkMq/VBNbwbliRdP7PQzzqaV2cpDgejdTCwRVlOhMI= + + + Headers/PTDiffusionNumberRequestDelegate.h + + hash2 + + l6d1NKLuIg/jkLs+dtO7fU0qGD9l2msTXvBR+OXJlfM= + + + Headers/PTDiffusionNumberRequestStreamDelegate.h + + hash2 + + g5hXaPHIFRxUL0ymBbdflCvGDADrysbD0RuFNNMvkvM= + + + Headers/PTDiffusionNumberSessionResponseStreamDelegate.h + + hash2 + + raiXClyo4QkZHwgNX9sxHMsifz+hOPIevS8r+BM2LYc= + + + Headers/PTDiffusionNumberTimeSeriesEvent.h + + hash2 + + buP5I0PdBX4HpfdNU7zAhtlqoFIC6Uk4255EZT+4ZeM= + + + Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h + + hash2 + + QzyVbrYahlkD7P3l6BBwuZTtq6gg909b+FWh/E8DycQ= + + + Headers/PTDiffusionNumberTimeSeriesQueryResult.h + + hash2 + + o0YnCbBaElVPGqVeixYvfJmLbIkeZqcc6cYStGKciPY= + + + Headers/PTDiffusionNumberUpdateStream.h + + hash2 + + XtOI5eXbcMoWswaxbPu2Sb/gcDcQH2Ba8ydT/jd1s6w= + + + Headers/PTDiffusionNumberValueStreamDelegate.h + + hash2 + + oqdIZ5ffSUdNhSFugNosZmFD5I4PB0YhlEvo/Ki48yA= + + + Headers/PTDiffusionPartialJSONUpdateConstraint.h + + hash2 + + Gx/KwGDJhT3MTsmouAcBa+h2sdc+pgmT5lOJ7Z0+WpM= + + + Headers/PTDiffusionPathPermission.h + + hash2 + + ztut6MW3+tIFlkaDGPfFqhEu18o34/PdheiuLMmlPs8= + + + Headers/PTDiffusionPingDetails.h + + hash2 + + P/sgqX583duAKsSN2Se+yLdYLg7yJfXgt1YxVAzUwzU= + + + Headers/PTDiffusionPingsFeature.h + + hash2 + + PbJAv2JR0fReNzMcqERZEBzv5qj/Qyk+wTM2pXNUhLM= + + + Headers/PTDiffusionPrimitive.h + + hash2 + + bIam3uhW5uzsP3cqi4S5ViKZxymJCHO0CWoshg1Wfss= + + + Headers/PTDiffusionRecordV2.h + + hash2 + + aSFO/taoHFK7narpCeO0qwgw8Gf7MahfZQgsF7Q1bmg= + + + Headers/PTDiffusionRecordV2Builder.h + + hash2 + + ylx/BznpVyZpmeK0baGNKlRIiHhsTn98Q1MviX1xOKQ= + + + Headers/PTDiffusionRecordV2Delta.h + + hash2 + + RtQw28FphjU93+/CQ+BkuIrvqXna86+ERPPii/ViFYA= + + + Headers/PTDiffusionRecordV2DeltaChange.h + + hash2 + + zw2jw2nh24u++nJ0yqnIR2ZHw/y9p8LBCgiTMyl1uSw= + + + Headers/PTDiffusionRecordV2DeltaChangeType.h + + hash2 + + nhZeQv+8V8F0T3yD0yEMRTHbuCSijA+ElrzJntbAmZw= + + + Headers/PTDiffusionRecordV2FetchResult.h + + hash2 + + diNYpNy3TVUtqHj+94PVRN8At3J3Q/pt1LDUCZSZe4k= + + + Headers/PTDiffusionRecordV2FetchTopicResult.h + + hash2 + + qbpi0nD2XE/HoYOxhJdlkKfnSe+M3oPNShttz7/+g+c= + + + Headers/PTDiffusionRecordV2Model.h + + hash2 + + az673ClIY13QToxNdg0k6eqR7Z4S/goLNRYpz3rY6KE= + + + Headers/PTDiffusionRecordV2RequestDelegate.h + + hash2 + + eDmg0zXrk3siHiyw54EJXP2LROZtW7l5oercgpPRyhM= + + + Headers/PTDiffusionRecordV2RequestStreamDelegate.h + + hash2 + + BKRQ3kSSSeUj4/sRB9hJwYIJGfFUR5w/JYiEScznJA0= + + + Headers/PTDiffusionRecordV2Schema.h + + hash2 + + 8ABqdXMSVQNoMU8L1+sCVqoTAVwvJi5sr0u7Y6f9gCY= + + + Headers/PTDiffusionRecordV2SchemaBuilder.h + + hash2 + + nZT4PPAuwhd81kmuDDjL/uPCfktlD5nw0hMKI7TgqDM= + + + Headers/PTDiffusionRecordV2SchemaField.h + + hash2 + + ez5vtOlO+1+LHixd3dXZmUgQhMmC/r+Dq4PagYcoSiM= + + + Headers/PTDiffusionRecordV2SchemaFieldType.h + + hash2 + + rjxh0i/TVcDOTc0/sqFzuyvtxsTpUEQ2Qx6E25wasAU= + + + Headers/PTDiffusionRecordV2SchemaNode.h + + hash2 + + cIkGHujgRHlv9TRNRbjHV0NypPgdDunXNA1c0NTK3QE= + + + Headers/PTDiffusionRecordV2SchemaRecord.h + + hash2 + + OaWvao2jABRf4RvNs1I/dt8zomyo554rjFmP2a4pup8= + + + Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h + + hash2 + + GltXf1PQU9F3u6iD3MhndXpDuxNbGU6cgqwyWFnesyU= + + + Headers/PTDiffusionRecordV2TimeSeriesEvent.h + + hash2 + + S1QB8+ULPUp2unzvvgj0XeX13mqDnUhkc/RguwqSkZU= + + + Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h + + hash2 + + 56eJs8aqJiQIWHm6ktcVHgH9qIN0dPbaKX7ugi82W+8= + + + Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h + + hash2 + + oSvxiNQA/o4xrZNIDnYVjdS0JhmfUErRdy5GPZH22G8= + + + Headers/PTDiffusionRecordV2UpdateStream.h + + hash2 + + XoaxmflJ8P6lFAy61BUszRGW2RCvVuNT2RYSLcO9m4A= + + + Headers/PTDiffusionRecordV2ValueStreamDelegate.h + + hash2 + + OBSkyOcPqobhjr+y8i3yPKSoITaKaC//yLmKPYNzoKM= + + + Headers/PTDiffusionRegistration.h + + hash2 + + AC+hSXzVgK55KdMemvMGgZlTU8gsJI0HGM2M/NHOIWc= + + + Headers/PTDiffusionRemoteServer.h + + hash2 + + Ipl+s0Ir/pp3eT/Vf26jTK5/0EeGNGiGca3CpJB0BHc= + + + Headers/PTDiffusionRemoteServerBuilder.h + + hash2 + + gaUUPE0U7WkpNQknazdOYoYUGA+KwwLf4yFEY7b7p6Y= + + + Headers/PTDiffusionRemoteServerConnectionOption.h + + hash2 + + WbaMZD+9MJLszFhmcrzVVgTV5aXg8J02HUSzi17YWro= + + + Headers/PTDiffusionRemoteServerConnectionState.h + + hash2 + + swlPqwPPRaULAyqedgBhRD7w8AeTXogdlYj0s9+XsR4= + + + Headers/PTDiffusionRemoteServersFeature.h + + hash2 + + y1JIOYUAYENRX00Q2zF18/ETQJB2u7Re0zFh/trDtGw= + + + Headers/PTDiffusionRequest.h + + hash2 + + s/Lfp8u/pzNHOKd7KCcxwAo965kFmnkS3Nttky9ew8k= + + + Headers/PTDiffusionRequestContext.h + + hash2 + + OzN0x0dcrwv87qN0XSlSv9wvadmAG6a3EAPIQAzFH1o= + + + Headers/PTDiffusionRequestHandler.h + + hash2 + + hHNsgq+E54KjW35ic5fMiX9hg+fy+Jp7w294MMZ5/VU= + + + Headers/PTDiffusionRequestStream.h + + hash2 + + i+fPGPXRnmNmFDIrIQsCd71kWzM8cLXjefPbv0RADko= + + + Headers/PTDiffusionResponder.h + + hash2 + + DdZ9X11CvjQXFliHm5mH6OFQIRqxn1+CG1dST6Fgs+I= + + + Headers/PTDiffusionResponse.h + + hash2 + + b+htxBGWuJdDzP/8in9NRYt7zJ1xlfqhtMYzjW6NdqI= + + + Headers/PTDiffusionRetryStrategy.h + + hash2 + + lL2ackpqfPu9o2BKp+iBdKHIe4dUCFXGir2cl/XHkus= + + + Headers/PTDiffusionSecurityFeature.h + + hash2 + + 5oF9U+VlTM5jHlNjiAYFybHqmtMD62sQ8520TCJQvGw= + + + Headers/PTDiffusionSendDeliveryPriority.h + + hash2 + + bdVgIqZ1mvNHklE4in6f4AxN6lwODQtF5YVXogMZZBo= + + + Headers/PTDiffusionSession.h + + hash2 + + aOJbvrzjp7w20LBbMFPr3qZdrdDIsV2LGlh0osphwzE= + + + Headers/PTDiffusionSessionConfiguration.h + + hash2 + + 7aUfnLdjsDDbA4/82urX+3vutpLpPy/xWlFa7lLmF8E= + + + Headers/PTDiffusionSessionError.h + + hash2 + + 19bGFW3lh3kbywHdtSeP7A1ptR3aGhwd5bJnTHSBJdk= + + + Headers/PTDiffusionSessionId.h + + hash2 + + b/pdRBwslaHtVtVZuKpi8dhStXVQfObJDdtIenPBrSI= + + + Headers/PTDiffusionSessionLock.h + + hash2 + + HPdjKoKoj/ccqAOaMUF8naebbfopaiBV2Dwvf51t0h0= + + + Headers/PTDiffusionSessionLockAttempt.h + + hash2 + + Oy4bs7+zLKvX06wSTJosCVqwgMJo8MaWn6jP26LULQY= + + + Headers/PTDiffusionSessionLockScope.h + + hash2 + + eqwbvTvGikz3/e4eogPGBJUXeGhNV8dQOmB6uWum7qw= + + + Headers/PTDiffusionSessionMetricCollector.h + + hash2 + + IozljUE1DL7DVqEfrmvrzMIBY58UR3Pes6siIjF0ueY= + + + Headers/PTDiffusionSessionMetricCollectorBuilder.h + + hash2 + + YvDv1NoWTEx24p9c++JGmfEPTztjsedlbKeJq3binMA= + + + Headers/PTDiffusionSessionPropertiesDelegate.h + + hash2 + + lpHxU340gS9s1pTZJh1uxc/NWwRVOOEfyDZZrCtXG8c= + + + Headers/PTDiffusionSessionPropertiesListenerRegistration.h + + hash2 + + ZuLNBjdclVDGgLU16qB120DnY8LqtClq9IaTCzLO5/Q= + + + Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h + + hash2 + + aLpsJ4rCC4TFj3icKAw4SwCUDZdSp0ObohPJHsHdwm4= + + + Headers/PTDiffusionSessionReconnectionAttempt.h + + hash2 + + FwCXyjswE7Hj5EBrSFNyNVz2oQPeumukE2QyFN1HAfs= + + + Headers/PTDiffusionSessionReconnectionStrategy.h + + hash2 + + NLqSWJnGyHtxnG50P1sSHBxi0zlfR5vAaroCavTecEk= + + + Headers/PTDiffusionSessionResponseStream.h + + hash2 + + qs973ob/v5F3fAsMKMRZqI0I0WE4/KmtBZNnE5RLKmM= + + + Headers/PTDiffusionSessionResponseStreamDelegate.h + + hash2 + + QRNr3Gse3PIgrHWR1VtdF+d9ii7ViNWEI64nGCGsO0s= + + + Headers/PTDiffusionSessionState.h + + hash2 + + bYxqFaSEGy2nLELcDV/7vH9XMaslTroU4F7oCbR+vg4= + + + Headers/PTDiffusionSessionStateChange.h + + hash2 + + M8/yWmdsYbCW9lX6pnhwnSfd90o1bVCft4s507oUoVE= + + + Headers/PTDiffusionSessionStateChangeDelegate.h + + hash2 + + am8jQ2utEtfiQO3dkpzlbQUNo58aKCH5RmxE2M8AuGQ= + + + Headers/PTDiffusionSessionTreesFeature.h + + hash2 + + 3Fw1/3L0ryyWtnHJC0mm0jnAegdY0NrSL0G2ubsZmE8= + + + Headers/PTDiffusionSetSessionPropertiesResult.h + + hash2 + + ZT4skgOofyOjtRCQdbFBFhUA7btBk41Au6JAgxDW7Mc= + + + Headers/PTDiffusionStream.h + + hash2 + + Z01BcLpUXyCkNl1UKzeDgsaGdh1Nmf+cQnTJRlIIjdc= + + + Headers/PTDiffusionStreamDelegate.h + + hash2 + + OKp/dnEU+OLBVLI8cKIobbewMTK66QNLgSRWn1EwbiE= + + + Headers/PTDiffusionStringFetchResult.h + + hash2 + + EZgkv0bTJ7vbx4q4lXOQ3uAE7FzR+50GbB6MpmRBuqQ= + + + Headers/PTDiffusionStringFetchTopicResult.h + + hash2 + + PryoSKA6X0dRT3nG38guKaVEs7hQTcOA+KnNa16A0Qg= + + + Headers/PTDiffusionStringRequestDelegate.h + + hash2 + + FoWCrvy+J4zEJgDnyd6ze70Ed4SxockWJgBaIfy3Uow= + + + Headers/PTDiffusionStringRequestStreamDelegate.h + + hash2 + + aRkqgLeibdHPAQ7vIGs2lt+b4/DYXeyt7cxD3dOVvQs= + + + Headers/PTDiffusionStringSessionResponseStreamDelegate.h + + hash2 + + k+E/xL+LibLAq3rTIKYfaQKDpX4qJnPV5K8pTdAbikA= + + + Headers/PTDiffusionStringTimeSeriesEvent.h + + hash2 + + U90vJc+4gDM/XBnh6A+OWV+oJjacZKxoeVDWBnSu6+s= + + + Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h + + hash2 + + WkxIsa0sxbn4Opqafg/DZGdkbgAqFKIl2RTGu9EfzUs= + + + Headers/PTDiffusionStringTimeSeriesQueryResult.h + + hash2 + + a+Aa8ogA/9JA8BEdQbZ1jrYbzxzn/l5m0T8RP3kkQt0= + + + Headers/PTDiffusionStringUpdateStream.h + + hash2 + + KLQPX2pO2fwi0d3ylQaXKx1UswHPw88y2gpnmU6SpGM= + + + Headers/PTDiffusionStringValueStreamDelegate.h + + hash2 + + j0aubzfnDFx/qCJExG0pCXfOE9j62guTMKIZBvl03AU= + + + Headers/PTDiffusionSubscriberStreamDelegate.h + + hash2 + + tXbsjZ/Fz4jHFGUL2oai9jkm6Ts9zdbqDbzzzSWiBFY= + + + Headers/PTDiffusionSubscriptionControlFeature.h + + hash2 + + 577CUsWVEXOH403zyribYpfeQT5CLxH4e3AnLOeNTxk= + + + Headers/PTDiffusionSubscriptionRoutingRequest.h + + hash2 + + 7WtOrCkqrBKfaFJvH7Twc/krOlfNrwvT5+Bvr/aQsWE= + + + Headers/PTDiffusionSubscriptionRoutingRequestHandler.h + + hash2 + + RJjJK3WCbo6On5aoF5Wl8nRUBNnrGBZqGk9TctyMvA8= + + + Headers/PTDiffusionTimeSeriesEvent.h + + hash2 + + 5VG95jJeM9H1vz5vUHuXlLbNdqEEZPQKSWmawxb5NDg= + + + Headers/PTDiffusionTimeSeriesEventMetadata.h + + hash2 + + gQQjIWKJiUPdnTnK8c3q3d5+zviWGHWCQhH6k6wafak= + + + Headers/PTDiffusionTimeSeriesFeature.h + + hash2 + + bJ14hUgeVsI7pmf0Gp7XPl15nwTclL6QbiWTNB/J6NQ= + + + Headers/PTDiffusionTimeSeriesFetchResult.h + + hash2 + + VQbww+bJHpKLZVw5ozGHGcJsJbzWDopMins1f4GoDCc= + + + Headers/PTDiffusionTimeSeriesFetchTopicResult.h + + hash2 + + 70ZAVjYK54fPbI/aBwmPLPqlGRp906FpeahTBArh8UM= + + + Headers/PTDiffusionTimeSeriesQueryResult.h + + hash2 + + DHFhF1le1yYZG7QB9XjEpuTNeQKnx+/nJ6IydZXbSro= + + + Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h + + hash2 + + bhUqJ6BsDyWGwCjInsDC4UBeq/gZB5u5bqsZbZdNq14= + + + Headers/PTDiffusionTimeSeriesRangeQuery.h + + hash2 + + 88wFqFx9xtfeGUzuGPNUyWy+HZ0w3J69Dmpgu8GF0WU= + + + Headers/PTDiffusionTopicControlFeature.h + + hash2 + + TNPv7A1Pc7kGI6am+cbLzrovDKOZdWOgnh51mpjr0FA= + + + Headers/PTDiffusionTopicCreationResult.h + + hash2 + + 0eFshVZ8h0pY9lKi20iOj7RfEPY+5T1l1pECdmLdFI0= + + + Headers/PTDiffusionTopicMetricCollector.h + + hash2 + + 2qs00SrBSzk8lUh8OVFMfQKkmmOe9/jAormyRZUzDCo= + + + Headers/PTDiffusionTopicMetricCollectorBuilder.h + + hash2 + + 6LinbFSYd4TEuw/bhnsx6e5vxZdq8lD1UVobF0qnVPI= + + + Headers/PTDiffusionTopicNotificationListener.h + + hash2 + + Yd65kVGGp6/jytaX0dO4N3/nyN5d2hX0hiPq19iNkbk= + + + Headers/PTDiffusionTopicNotificationRegistration.h + + hash2 + + /kZ4Jgw1b6/dFhaP0Bs37rKtyU4qg3cb3LlGkLIrZqY= + + + Headers/PTDiffusionTopicNotificationType.h + + hash2 + + R6Vv6W9PRLpJv55+h+fKVGJa/y3OlS36Kt5QJ3vuaPM= + + + Headers/PTDiffusionTopicNotificationsFeature.h + + hash2 + + 9nIAjTCyPklFkgqsz9XUCe4/VIoWvMTomyPUDVNnd6Y= + + + Headers/PTDiffusionTopicPermission.h + + hash2 + + iHfHjjZXfd7enFoS1PUR+q0wl+bOV/YvDqRAvTW92h8= + + + Headers/PTDiffusionTopicRemovalResult.h + + hash2 + + 4UPlfIx5Kp0DTFEBUoGxDPULjn9rWA68/6dYOgJ7XRM= + + + Headers/PTDiffusionTopicSelector.h + + hash2 + + 0/Gr4YiDdZa5EG6bKOeN8StjNShjC1AEsRpXJ+j8g+8= + + + Headers/PTDiffusionTopicSpecification.h + + hash2 + + 7l2YWBc8NotaGX/yG82SCQA60ne3Q+6SrQA2P7hx+j0= + + + Headers/PTDiffusionTopicTreeRegistration.h + + hash2 + + kQ3awGQo+b7tPgX2VMOYa+Bg41so8LMtV50t3B4JdQ0= + + + Headers/PTDiffusionTopicTreeRegistrationDelegate.h + + hash2 + + XjL0BeHNZXrK1Uh/p/IR/I7Gx+XZkdfMJBtksK6A2yg= + + + Headers/PTDiffusionTopicType.h + + hash2 + + Kxx6dzJsEyUOaMEUp3V2RRdXlFQFeyYtCGifEjWkIJ0= + + + Headers/PTDiffusionTopicUnsubscriptionReason.h + + hash2 + + zh3U7QP1cmfSJ7dSUHgTCvi0dP4HFP6dZg4k2nqlm2c= + + + Headers/PTDiffusionTopicUpdateFeature.h + + hash2 + + A4+YoizxM5TQQjgknubvhaNCLYmHrJ3FhqJKdRLdqaw= + + + Headers/PTDiffusionTopicView.h + + hash2 + + 8ArWfdJooTE+1YebNF7DbQBWQwg7WaAX0KL69fZWNSU= + + + Headers/PTDiffusionTopicViewsFeature.h + + hash2 + + 2/+vZqxCDMUYv6fY2x1lVuviabAtyFNliwS3ihLLOQU= + + + Headers/PTDiffusionTopicsFeature.h + + hash2 + + O/N4e3K4VGNsXRkcH+HRfPkayqJaHunzpinEW7gICeU= + + + Headers/PTDiffusionUpdateConstraint.h + + hash2 + + 7Zk0Kppo3shbAB5ANtfw5q13LdXwfOr9egJHcpZZmJo= + + + Headers/PTDiffusionUpdateStream.h + + hash2 + + FmGglpmZL0KdJMlw9r41qQY/BpdALvuiiAclQ961WQw= + + + Headers/PTDiffusionUpdateStreamBuilder.h + + hash2 + + SnJKtvSveD1LG7lOtN+js9VlM0+nG1JUGHq8pPDlJ1c= + + + Headers/PTDiffusionValueStream.h + + hash2 + + jltRdIfQ1M/rbV03jANn+F5kMjLxg8e17DeBMKCzggE= + + + Headers/PTDiffusionVersion.h + + hash2 + + REiwYO8DNVoVvpIWKjCPxN05ivkRw2uLsCAe/fjcTr0= + + + Modules/module.modulemap + + hash2 + + IOdf2zvMpEjPRyI0O/jRrRe4UhkqYb+0eyRNsRwyyZE= + + + error_descriptions.plist + + hash2 + + L6RBSUl8uDGQwDq+499ouBNekHDnpS9jh5pj8lFJe3U= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/error_descriptions.plist b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/error_descriptions.plist index 0855770..6dc5928 100644 Binary files a/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/error_descriptions.plist and b/Sources/Diffusion.xcframework/tvos-arm64/Diffusion.framework/error_descriptions.plist differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist b/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist index 83c8924..8ad5404 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist +++ b/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleIdentifier - com.apple.xcode.dsym.com.pushtechnology.Diffusion + com.apple.xcode.dsym.- CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -13,8 +13,8 @@ CFBundleSignature ???? CFBundleShortVersionString - 6.8.0 + 1.0 CFBundleVersion - 6.8.0 + 1 diff --git a/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion b/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion index f1c3a96..6d7fcc8 100644 Binary files a/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion and b/Sources/Diffusion.xcframework/tvos-arm64/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Diffusion b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Diffusion index c50cf69..9751450 100755 Binary files a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Diffusion and b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Diffusion differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h index 675946c..4a29369 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/Diffusion.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2015, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -16,7 +16,7 @@ Framework umbrella header file. */ -@import Foundation; +#import #import #import @@ -68,6 +68,8 @@ #import #import #import +#import +#import #import #import #import @@ -138,6 +140,7 @@ #import #import #import +#import #import #import #import @@ -158,6 +161,7 @@ #import #import #import +#import #import #import #import @@ -206,5 +210,6 @@ #import #import #import +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h index 27dfff5..c1be496 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusion.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h index 738baf5..e084fef 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionAddTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h index 6fbf6e3..10308a5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBasicHTTPProxyAuthentication.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h index 9e16384..1c06044 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinary.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h index 567dd0b..ddd2be4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryDelta.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h index 190d691..61cc708 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h index 1a8d760..42e3874 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h index 02b00df..f6ee77f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h index 8ec00d2..7cd0178 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h index 67c6393..a5d0a93 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinarySessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h index e32a8ce..cad83e5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h index bd71fad..f3ea38b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h index 1394647..ffd4a0d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinaryTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h index 3d207c0..40fdcb4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h index 7ff6e28..9294dcd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBinaryValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBinary; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h index 406a862..a45cf1a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMapping.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h index 3f3135e..33cea73 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTable.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionBranchMapping; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h index ac7d9e9..06c913c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBranchMappingTableBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionBranchMappingTable; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h index feafd5b..9b0b121 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionBytes.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h index 527527e..d11a077 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCancellable.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h index e948368..77cb3a3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCheckRemoteServerResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServer; @class PTDiffusionRemoteServerConnectionState; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h index 3b85b3d..824016f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @protocol PTDiffusionSessionPropertiesDelegate; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h index 241997f..91135ca 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueueEventListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRegistration; @class PTDiffusionClientQueuePolicy; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h index 176762c..05e9a08 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionClientQueuePolicy.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h index 0b40936..0cde947 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCloseReason.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h index 70a70ad..ae4e164 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCreateRemoteServerResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServer; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h index c8448d9..365608d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionCredentials.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h index a82451c..a1af9f6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h index c3709e0..8821a4f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDataTypes.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionDataType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h index 888f576..9b8d5e5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h index 5c0b787..d246a84 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h index ac5f160..a9f9a99 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultSubscriberStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h index 4705af9..04a802a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicNotificationListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h index 07b78b1..cc32f47 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h index b9c0b4a..8513903 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionEnumeration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h index fa3029f..fb285ca 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionError.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -1147,6 +1147,36 @@ typedef NS_ENUM(NSInteger, PTDiffusionError) { */ PTDiffusionError_KeyNotFoundInDictionary = 20155, + /** + * Update Stream recovery buffer limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamBuffer = 20156, + + /** + * Update Stream recovery attempt limit has been reached. + * @since 6.9 + */ + PTDiffusionError_UpdateStreamRecoveryLimit = 20157, + + /** + * Failed to serialise value. + @since 6.9 + */ + PTDiffusionError_ValueSerialisation = 20158, + + /** + * Invalid Protocol Version. + * @since 6.9 + */ + PTDiffusionError_ClientVersionDowngrade = 20159, + + /** + * Invalid argument for the method. + * @since 6.9 + */ + PTDiffusionError_InvalidArgument = 20160, + }; NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h index 58d3cc9..a5b575b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionErrorListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h index c93f962..38f926d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSession; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h index b086393..5bb54e9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionFetchResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h index 1fd16cf..b28c2bd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h index a13ac71..ba25ffd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h index 5597758..68585a2 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGetSessionPropertiesResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h index 4d85fa4..b82cebc 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionGlobalPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h index b8d54a2..d82908f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthentication.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionHTTPAuthenticationChallengeHandler; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h index ff4d980..74c30b3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallenge.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionHTTPAuthenticationChallengeStatus; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h index e773f48..f2125a6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionHTTPAuthenticationChallenge; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h index 139476b..97ef12d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h index 966605d..d17e32d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPProxyConfiguration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionHTTPAuthentication; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h index 28b1664..a702e5a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionHTTPResponse.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h index 2a6daf1..2eadd76 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSON.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2016, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2016 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import @@ -48,10 +48,10 @@ NS_ASSUME_NONNULL_BEGIN /** @brief An immutable JSON value with support for both binary and JSON deltas. - + JSON is "JavaScript Object Notation", a lightweight data-interchange format. See [www.json.org](http://www.json.org). - + Internally the value is stored and transmitted not as a JSON string, but in CBOR format to reduce memory and network overhead. CBOR (Concise Binary Object Representation) is a standardized format for binary representation of @@ -69,24 +69,24 @@ NS_ASSUME_NONNULL_BEGIN /** Return a JSON object initialized with the given object. - + Object hierarchies passed to this method must be constructed from Foundation objects which can be logically encoded with CBOR. This provides flexibility above and beyond the basic capabilities of a 'pure JSON' encoding as well as being less restrictive than the capabilities of NSJSONSerialization. - + This means: - All objects are instances of `NSString`, `NSData`, `NSNumber`, `NSArray`, `NSDictionary` or `NSNull`. - Dictionary keys may be instances of any supported type. - The top level object may be of any supported type. - + Being more permissive than NSJSONSerialization in that: - `NSData` instances may be used. - Dictionary keys are not restricted to instances of `NSString`. - The top level object is not restricted to being a container (`NSArray` or `NSDictionary`). - + Applications may take advantage of the more permissive nature of the underlying CBOR encoding by using these capabilities, assuming: 1. Encoding to JSON string is not required. @@ -95,7 +95,7 @@ NS_ASSUME_NONNULL_BEGIN @param object The object to be serialized to CBOR and stored internally to represent the receiver. - + @param error If this method returns `nil` to indicate that an error occurred then this will be populated with the reason for that failure. @@ -111,11 +111,11 @@ NS_ASSUME_NONNULL_BEGIN /** Convenience wrapper around initWithObject:error: that first uses NSJSONSerialization to generate the object to be serialized. - + @param jsonData A data object containing JSON data. See Apple's NSJSONSerialization documentation for detailed information regarding supported encodings. - + @param error If this method returns `nil` to indicate that an error occurred then this will be populated with the reason for that failure. @@ -149,13 +149,13 @@ NS_ASSUME_NONNULL_BEGIN /** Compare the receiver's JSON value with another (e.g. an earlier version) to create a binary delta. - + @param json The original to which the delta should be able to be applied in order to generate the value represented by the receiver. - + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - + @return A delta representing the difference between json and the receiver, or `nil` if there was an error (e.g. either the original or the receiver don't represent a valid JSON value). @@ -169,16 +169,16 @@ NS_ASSUME_NONNULL_BEGIN /** Apply a binary delta to the receiver's JSON value to create a new value. - + @param delta The delta describing the changes to be applied to the receiver's value in order to create the value to be returned. - + @param error If an error occurs, upon return contains an `NSError` object that describes the problem. - + @return The new JSON value, or `nil` if there was an error (e.g. the receiver does not represent a valid JSON value). - + @exception NSInvalidArgumentException Raised if the delta argument is `nil`. @since 5.9 @@ -221,7 +221,7 @@ NS_ASSUME_NONNULL_BEGIN @return A data object containing JSON, or `nil` if there was an error (e.g. the receive doesn't represent a valid JSON value or cannot be converted to pure JSON). - + @since 5.9 */ -(nullable NSData*)JSONDataWithError:(NSError **)error; @@ -291,15 +291,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving JSON requests for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. - + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -359,14 +359,14 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support for responding to requests using JSON values. - + @since 6.0 */ @interface PTDiffusionResponder (PTDiffusionJSON) /** Dispatch a response to a request. - + @param json The value to send in response. @exception NSInvalidArgumentException Raised if the json argument is `nil`. @@ -387,14 +387,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a JSON response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -439,20 +439,20 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support to the Time Series feature for appending and editing events using JSON values. - + @since 6.0 */ @interface PTDiffusionTimeSeriesFeature (PTDiffusionJSON) /** Update a time series topic by appending a new JSON value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -504,13 +504,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -535,9 +535,9 @@ NS_ASSUME_NONNULL_BEGIN Evaluate a query for a time series topic where events have JSON values. @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -731,9 +731,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If path is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with JSON values @@ -757,10 +759,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If either argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -785,10 +789,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#json. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -816,11 +822,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#json. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); @end diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDelta.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDelta.h new file mode 100644 index 0000000..81a2962 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDelta.h @@ -0,0 +1,68 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; +@class PTDiffusionJSONDeltaChangeMap; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable structural delta describing the differences between two + JSON values. + + Unlike a binary delta, a structural delta can be queried to determine its + effect. + + JSON deltas are useful for identifying small changes to complex JSON values. + + @see PTDiffusionJSON + + @since 6.3 + */ +@interface PTDiffusionJSONDelta : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The parts of the first JSON value not found in the second JSON value. + + @note The pointer references used for the change map keys are relative to the + first JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* removed; + +/** + The parts of the second JSON value not found in the first JSON value. + + @note The pointer references used for the change map keys are relative to the + second JSON value. + + @since 6.3 + */ +@property(nonatomic, readonly) PTDiffusionJSONDeltaChangeMap* inserted; + +/** + Whether the two JSON values used to create this instance are different. + + @since 6.3 + */ +@property(nonatomic, readonly, getter=hasChanges) BOOL changes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h new file mode 100644 index 0000000..d09763e --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONDeltaChangeMap.h @@ -0,0 +1,86 @@ +// Diffusion Client Library for iOS, OS X and tvOS +// +// Copyright (c) 2019, 2020 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionJSON; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An immutable map describing the changes to a JSON value. + + The map contains an entry for each change, as follows: + + - The key is a [JSON Pointer](https://tools.ietf.org/html/rfc6901) syntax + reference locating the change in the complete value. Since a JSON value is a + list of zero or more data items, the reference always begins with an array + index. For example, the first part is identified by the JSON Pointer `/0`. + - The value is part of the complete value. It is returned as a JSON object that + can be parsed independently as a unit, or converted to a Foundation object or + JSON string. + + @since 6.3 + */ +@interface PTDiffusionJSONDeltaChangeMap : NSObject + ++(instancetype)new NS_UNAVAILABLE; + +-(instancetype)init NS_UNAVAILABLE; + +/** + The entries forming the change map. + */ +@property(nonatomic, readonly) NSDictionary* map; + +/** + Returns a view of the portion of this map whose keys are descendants of + `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the descendants of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)descendantsOfPointer:(NSString *)pointer + error:(NSError **)error; + +/** + Returns a view of the portion of this map whose keys are descendants or parents + of `pointer`. If `pointer` is contained in this map, it will be included in the + result. + + This method can be used to determine whether a structural delta affects a + particular part of a JSON value. + + @param pointer JSON pointer + + @param error Location to store a reason in case of failure. May be `nil`. + + @return JSON delta change map containing the intersection of given pointer. + + @exception NSInvalidArgumentException If `pointer` is `nil`. + + @since 6.3 + */ +-(nullable PTDiffusionJSONDeltaChangeMap *)intersectionOfPointer:(NSString *)pointer + error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h index 5f16be3..7c5533e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h index 787a14f..0450807 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h index 7564651..ca6c7ad 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONPatchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h index 1b2499d..5a8bd92 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h index acdbb12..3b737e9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h index 04576c9..e51bb2c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h index 9ee409b..e0edc20 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h index ef818ea..fdf131e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h index 696bf4e..bca18ac 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSONTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h index ab37a71..5389c12 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h index 930dd93..bcb1b11 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionJSONValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionJSON; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h index 3e0b6e8..f835e7e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLogging.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionLoggingDestinationConfiguration; @class PTDiffusionLoggingLevel; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h index a779a35..89407c2 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingDestinationConfiguration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h index a993729..556f664 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingLevel.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h index d98a267..d15d48b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionLoggingMessagePrinter.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h index 4544b00..15e6912 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMessagingFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBytes; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h index fc66026..7a99879 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h index def2453..3b99f77 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricCollectorBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -40,7 +40,7 @@ NS_ASSUME_NONNULL_BEGIN @return the builder */ --(instancetype)exportToPrometheus:(BOOL)export; +-(instancetype)exportToPrometheus:(BOOL)exportToPrometheus; /** diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h index 2a189a4..df615f3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMetricsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionMetricCollector; @@ -93,7 +93,7 @@ NS_ASSUME_NONNULL_BEGIN PTDiffusionMetricsFeature *const metrics = session.metrics; - @author Push Technology Limited + @author DiffusionData Limited @since 6.7 */ diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h index 6d29125..5b87b0b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionMissingTopicNotification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h index f356365..f35483e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMissingTopicNotification.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h index f0d1233..d25abaf 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionMutableRecordV2Model.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h index 6872693..c05250c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h index 237a929..5a3f194 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h index 287674f..ae0ba41 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRequestContext; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h index c31c0fc..5b784bd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionResponder; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h index 177da2c..49030b4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h index a62f940..ba41d8d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h index 6cdc4cf..03082c0 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h index 85d578f..ba80576 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionNumberTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h index 3e88e19..fcf8324 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h index f95c95d..ca73355 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionNumberValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h index e16e776..e999346 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPartialJSONUpdateConstraint.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h index de3e036..bef37ec 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPathPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h index 537326e..6d4d4f3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingDetails.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h index 0cbeeb1..7371089 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPingsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionPingDetails; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h index 2fd050d..22b31b5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionPrimitive.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import @@ -71,7 +71,7 @@ NS_ASSUME_NONNULL_BEGIN receiver of values using the Topics feature. @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionTopicsFeature @since 6.0 @@ -167,15 +167,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving double-precision floating point numeric requests (Eight-byte IEEE 754) for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -185,15 +185,15 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request handler capable of receiving 64-bit integer requests for a handler registered at the server. - + @param delegate The object which will handle the incoming requests. A weak reference is maintained to this object by the returned handler. - + @return An object reliant on the supplied delegate that can be registered at the server using the Messaging feature. - + @exception NSInvalidArgumentException Raised if the delegate argument is `nil`. - + @see PTDiffusionMessagingFeature @since 6.0 @@ -327,7 +327,7 @@ NS_ASSUME_NONNULL_BEGIN /** Creates a request that can be used to send the given double-precision floating point (Eight-byte IEEE 754) value using messaging. - + @param value The value to send as the request. @return The new request, or `nil` on failure. @@ -605,7 +605,7 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support for responding to requests using primitive values. - + @since 6.0 */ @interface PTDiffusionResponder (PTDiffusionPrimitive) @@ -613,9 +613,9 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a request. - + @param value The value to send in response. - + @since 6.0 */ -(void)respondWithDouble:(double)value; @@ -623,13 +623,13 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a double-precision floating point (Eight-byte IEEE 754) response to a request. - + @param number The value to send in response. This may be `nil` in order to send a 'null' response. - + @param error Location to store a reason if this method returns `NO` to indicate failure. - + @return `YES` if a response was queued for dispatch or `NO` if the supplied number could not be encoded using this data type. @@ -640,22 +640,22 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a 64-bit integer response to a request. - + @param value The value to send in response. - + @since 6.0 */ -(void)respondWithLongLong:(long long)value; /** Dispatch a 64-bit integer response to a request. - + @param number The value to send in response. This may be `nil` in order to send a 'null' response. - + @param error Location to store a reason if this method returns `NO` to indicate failure. - + @return `YES` if a response was queued for dispatch or `NO` if the supplied number could not be encoded using this data type. @@ -666,7 +666,7 @@ NS_ASSUME_NONNULL_BEGIN /** Dispatch a string response to a request. - + @param string The value to send in response. This may be `nil` in order to send a 'null' response. @@ -693,14 +693,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a string response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -717,14 +717,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a double-precision floating point (Eight-byte IEEE 754) response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -740,14 +740,14 @@ NS_ASSUME_NONNULL_BEGIN /** Send a request for which a 64-bit integer response is expected. - + The message will be routed to an appropriately registered control handler for the given path. @param request The request to send. - + @param path The path to send the request to. - + @param 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`. The completion handler will be called asynchronously on @@ -839,20 +839,20 @@ NS_ASSUME_NONNULL_BEGIN /** @brief Extension adding support to the Time Series feature for appending and editing events using primitive values. - + @since 6.0 */ @interface PTDiffusionTimeSeriesFeature (PTDiffusionPrimitive) /** Update a time series topic by appending a new string value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -900,13 +900,13 @@ NS_ASSUME_NONNULL_BEGIN /** Update a time series topic by appending a new double-precision floating point (Eight-byte IEEE 754) value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -953,13 +953,13 @@ NS_ASSUME_NONNULL_BEGIN /** Update a time series topic by appending a new 64-bit integer value. - + The server will add an event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. - + @param topicPath The path of the time series topic to update. - + @param value The event value. @param completionHandler Block to be called asynchronously on success or @@ -1010,13 +1010,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1043,13 +1043,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1076,13 +1076,13 @@ NS_ASSUME_NONNULL_BEGIN The existing event is identified by its sequence number and must be an original event. - + The server will add an edit event to the end of the time series based on the supplied value, with a new sequence number, timestamp, and the author set to the authenticated principal of the session. @param topicPath The path of the time series topic to update. - + @param originalSequence The sequence number of the original event to edit. @param value The event value. @@ -1105,11 +1105,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have string values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1126,11 +1126,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have double-precision floating point (Eight-byte IEEE 754) values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1147,11 +1147,11 @@ NS_ASSUME_NONNULL_BEGIN /** Evaluate a query for a time series topic where events have 64-bit integer values. - + @param query The configured query. - + @param topicPath The path of the time series topic to query. - + @param 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`. The completion handler will be called asynchronously on @@ -1963,9 +1963,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with @@ -1986,9 +1988,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with 64-bit @@ -2009,9 +2013,11 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ --(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with string @@ -2035,10 +2041,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with @@ -2063,10 +2071,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for updating a specific topic with 64-bit @@ -2090,10 +2100,12 @@ NS_ASSUME_NONNULL_BEGIN @exception NSInvalidArgumentException If any argument is `nil`. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2118,10 +2130,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#string. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2146,10 +2160,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#doubleFloat. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2174,10 +2190,12 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#int64. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path - specification:(PTDiffusionTopicSpecification *)specification; + specification:(PTDiffusionTopicSpecification *)specification __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2205,11 +2223,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#string. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2238,11 +2258,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#doubleFloat. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); /** Creates an update stream to use for creating and updating a specific topic with @@ -2270,11 +2292,13 @@ NS_ASSUME_NONNULL_BEGIN type defined in the specification is incompatible with PTDiffusionDataTypes#int64. + @deprecated since 6.9. Use {@link PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder} instead + @since 6.3 */ -(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path specification:(PTDiffusionTopicSpecification *)specification - constraint:(PTDiffusionUpdateConstraint *)constraint; + constraint:(PTDiffusionUpdateConstraint *)constraint __deprecated_msg("Will be removed in a future release."); @end diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h index 4760b44..8e03dfd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h index feabd27..3150322 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Builder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h index a466731..0b42ba3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Delta.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2DeltaChange; @class PTDiffusionRecordV2Schema; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h index 242bdcb..c98bb5d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChange.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2DeltaChangeType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h index 764b033..35b3210 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2DeltaChangeType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h index f4fcca1..ce9ae6e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2FetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h index 3d2d57d..a3808c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2FetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h index 53f84c0..407076f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Model.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h index e97cfda..f840fb6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h index 0c309ea..9902618 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2RequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h index 0a3ed64..9eb1c8b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2Schema.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionMutableRecordV2Model; @class PTDiffusionRecordV2SchemaRecord; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h index 5612c5d..c709608 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRecordV2Schema; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h index 3db6034..18e6233 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaField.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2SchemaFieldType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h index 1528f70..9370ef7 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaFieldType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h index 467e591..6e796e9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaNode.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h index 5faf861..2cf810e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SchemaRecord.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2SchemaField; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h index 2c8d181..a122db1 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h index b684558..c6c096b 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h index fbeb15d..1baa01e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2TimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h index 9eb6d39..4b532e6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2TimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h index c1276ee..9d92497 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2UpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h index f4a23cd..0a94cc5 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRecordV2ValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRecordV2; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h index 14b8d3d..ca77e51 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h index 991ffb8..de32eb6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServer.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRemoteServerConnectionOption; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h index 61737b8..4251fa9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionRemoteServerConnectionOption; @class PTDiffusionRemoteServer; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h index 2cae572..45be376 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionOption.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h index 7c8ec46..ed52d78 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServerConnectionState.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h index 17f5dbf..cedcce6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRemoteServersFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionCredentials; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h index 5eeafe1..c1c1ce8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h index 6c99e05..7bd3717 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestContext.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h index 9900629..89599c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h index a03f935..d546be8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRequestStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h index 940983a..58d4204 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionResponse; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h index 9828470..2dbb969 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionResponse.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h new file mode 100644 index 0000000..068bed3 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionRetryStrategy.h @@ -0,0 +1,91 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief Defines a retry strategy. + + A retry strategy will be applied when an initial to attempt to open a session + fails with a SessionEstablishmentTransientException + + The strategy is defined in terms of the number of milliseconds between retries and + the maximum number of retries to attempt. + + @since 6.9 + */ +@interface PTDiffusionRetryStrategy : NSObject + +/** + The retry strategy that indicates that no retry is to be attempted. + */ ++(instancetype)NO_RETRY; + +/** + Creates a new retry strategy object. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + @param attempts the number of retry attempts + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval andAttempts:(const NSInteger) attempts; + + +/** + Creates a new retry strategy that will retry indefinitely at the + specified interval. + + @param interval the number of milliseconds before the first retry and between + subsequent retries + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)initWithInterval:(const NSUInteger) interval; + + +/** + No retry constructor + + @return the new retry strategy + + @since 6.9 + */ +-(instancetype)init; + + +/** + The number of milliseconds between retries + + @since 6.9 + */ +@property(nonatomic, readonly) NSUInteger interval; + + +/** + The maximum number of retries to attempt + + @since 6.9 + */ +@property(nonatomic, readonly) NSInteger attempts; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h index abd9c58..5d8212d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSecurityFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionCredentials; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h index e71c65d..58b20c8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSendDeliveryPriority.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** Delivery priority for a sent message. diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h index dad91b1..d11fd1f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSession.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionClientControlFeature; @class PTDiffusionMessagingFeature; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h index 2211ad9..01639df 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionConfiguration.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2015, 2020 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2015 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,26 +10,31 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionCredentials; @class PTDiffusionHTTPProxyConfiguration; +@class PTDiffusionRetryStrategy; @protocol PTDiffusionSessionReconnectionStrategy; +@protocol PTDiffusionSessionStateChangeDelegate; extern const NSTimeInterval PTDiffusionSessionDefaultReconnectionTimeout; + NS_ASSUME_NONNULL_BEGIN + /** @brief A session configuration defines behavior and policies to use when connecting to Diffusion. - + @see PTDiffusionSession @since 5.6 */ @interface PTDiffusionSessionConfiguration : NSObject + /** Returns a session configuration object initialized with the given principal and credentials. @@ -47,9 +52,10 @@ NS_ASSUME_NONNULL_BEGIN -(instancetype)initWithPrincipal:(nullable NSString *)principal credentials:(nullable PTDiffusionCredentials *)credentials; + /** The security principal to use when opening the session. - + A value of `nil` dictates that no principal name will be associated with the session, indicating anonymous authentication. @@ -57,29 +63,32 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSString *principal; + /** The security credentials to use when opening the session. - + A value of `nil` dictates that no credentials will be used when authenticating the session. @since 5.6 */ @property(nonatomic, nullable, readonly, copy) PTDiffusionCredentials *credentials; + /** The reconnection timeout in seconds that will be used on connection failure. - + The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval. - + A value of `nil` or a negative boxed value both dictate that reconnection will be disabled. @since 5.6 */ @property(nonatomic, nullable, readonly) NSNumber* reconnectionTimeout; + /** The reconnection strategy that will be used on connection failure. - + A value of `nil` when a valid reconnectionTimeout has been set dictates that the default reconnection strategy will be employed. @@ -87,11 +96,25 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly) id reconnectionStrategy; + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) PTDiffusionRetryStrategy* initialRetryStrategy; + + /** The default recovery buffer size in messages. @return Number representing the default recovery buffer size in messages. - + @see recoveryBufferSize @since 6.0 @@ -100,41 +123,44 @@ NS_ASSUME_NONNULL_BEGIN /** The recovery buffer size in messages; can be zero. - + If the server is configured to support reconnection, a session established with a non-zero reconnection time retains a buffer of sent messages. If the session disconnects and reconnects, this buffer is used to re-send messages that the server has not received. - + Higher values increase the chance of successful reconnection, but increase the per-session memory footprint. @see defaultRecoveryBufferSize - + @since 6.0 */ @property(nonatomic, readonly) NSUInteger recoveryBufferSize; + /** The default connection timeout (2 seconds). @return Time interval representing the default connection timeout. - + @since 5.7 */ +(NSTimeInterval)defaultConnectionTimeout; + /** The lowest value that the maximum message size can be set to in bytes. @return Number representing the lowest value in bytes that the maximum message size can be set to. @see maximumMessageSize - + @since 6.0 */ +(NSUInteger)maximumMessageSizeMinimum; + /** The default maximum message size in bytes. @@ -145,11 +171,12 @@ NS_ASSUME_NONNULL_BEGIN @return Number representing the default maximum message size in bytes. @see maximumMessageSize - + @since 6.0 */ +(NSUInteger)defaultMaximumMessageSize; + /** The default maximum outbound queue size in messages. @@ -161,6 +188,7 @@ NS_ASSUME_NONNULL_BEGIN */ +(NSUInteger)defaultMaximumQueueSize; + /** The maximum message size in bytes. @@ -175,6 +203,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSUInteger maximumMessageSize; + /** The maximum size of the outbound message queue for the connection. @@ -196,9 +225,10 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSUInteger maximumQueueSize; + /** The connection timeout. - + This constrains the time taken to establish an initial connection to the server. The server is responsible for limiting the overall time taken to complete a connection once it has received the request. @@ -207,20 +237,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readonly) NSTimeInterval connectionTimeout; + /** Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections. - + A value of `nil` or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied. Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - + For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely: - + configuration.sslOptions = [NSDictionary dictionaryWithObject:kCFBooleanFalse forKey:kCFStreamSSLValidatesCertificateChain]; @@ -229,6 +260,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSDictionary* sslOptions; + /** User-defined @ref md_session_properties "session properties". @@ -243,18 +275,28 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readonly, copy) NSDictionary* properties; + /** Configuration of the HTTP Proxy that should be used to make connections to the server. - + This allows connection to a server using HTTP CONNECT tunneling through the specified proxy. - + A value of `nil` dictates that a proxy is not used. This is the default. @since 6.0 */ @property(nonatomic, nullable, readonly, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readonly) id sessionStateListener; + + /** Compares the receiver to the given session configuration. @@ -266,8 +308,12 @@ NS_ASSUME_NONNULL_BEGIN */ -(BOOL)isEqualToSessionConfiguration:(nullable PTDiffusionSessionConfiguration *)sessionConfiguration; + @end + + + /** @brief A mutable session configuration can be modified prior to being used to define behaviour and policies to use when connecting to Diffusion. @@ -286,6 +332,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) NSString *principal; + /** The security credentials to use when opening the session. @@ -295,6 +342,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) PTDiffusionCredentials *credentials; + /** The reconnection timeout in seconds that will be used on connection failure. @@ -316,6 +364,20 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite) id reconnectionStrategy; + +/** + The initial retry strategy. + + The strategy will determine whether a failure to open a session due to a SessionEstablishmentTransientException + should be retried and if so, at what interval and for how many attempts. + + If no initial retry strategy is set, there will be no attempt to retry after such failure. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) PTDiffusionRetryStrategy* initialRetryStrategy; + + /** The recovery buffer size in messages; can be zero. @@ -333,13 +395,14 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger recoveryBufferSize; + /** The maximum message size in bytes. This constrains the size of messages that may be received from the server and thus the size of any content that can be received. The limit protects against unexpectedly large messages. - + @exception NSInvalidArgumentException On writing to this property if the given size is below the allowable minimum. @@ -350,6 +413,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger maximumMessageSize; + /** The maximum size of the outbound message queue for the connection. @@ -371,6 +435,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSUInteger maximumQueueSize; + /** The connection timeout. @@ -379,7 +444,7 @@ NS_ASSUME_NONNULL_BEGIN once it has received the request. If not explicitly set, defaultConnectionTimeout will be assumed. - + @note If this exceeds one hour (3,600 seconds) a warning will be logged and the connection timeout will be constrained to one hour. @@ -387,20 +452,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, readwrite) NSTimeInterval connectionTimeout; + /** Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections. - + A value of `nil` or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied. - + Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation [CFStream Reference](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFStreamConstants/#//apple_ref/doc/constant_group/CFStream_Property_SSL_Settings_Constants). - + For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely: - + configuration.sslOptions = [NSDictionary dictionaryWithObject:kCFBooleanFalse forKey:kCFStreamSSLValidatesCertificateChain]; @@ -409,6 +475,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) NSDictionary* sslOptions; + /** User-defined @ref md_session_properties "session properties". @@ -435,6 +502,16 @@ NS_ASSUME_NONNULL_BEGIN */ @property(nonatomic, nullable, readwrite, copy) PTDiffusionHTTPProxyConfiguration* httpProxyConfiguration; + +/** + The optional listener interface for a session which may be used to receive state notifications. + + @since 6.9 + */ +@property(nonatomic, nullable, readwrite) id sessionStateListener; + + @end + NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h index 398b49e..f65cc34 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionError.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2017, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2017 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN @@ -51,7 +51,7 @@ typedef NS_ENUM(NSInteger, PTDiffusionSessionErrorCode) { @since 6.0 - @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_Establishment instead. instead. + @deprecated since 6.7, use @deprecated since 6.7, use PTDiffusionError_ClosedByClient instead. instead. */ PTDiffusionSessionErrorCode_ClosedByClient __deprecated_enum_msg("Use PTDiffusionError_ClosedByClient instead.") = 3, diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h index c960865..f21d301 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionId.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h index 9de38c1..f7f2264 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLock.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionLockScope; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h index 7d870c5..9a8588a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionLockAttempt.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionLock; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h index 22c03cf..b642626 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h index faf8565..c73e9da 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionMetricCollectorBuilder.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionMetricCollector; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h index 5b76343..9ca6e01 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h index 7a0cb20..b39b8dd 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h index 3b31c14..e788596 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionPropertiesListenerRegistration; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h index 476ebe2..8adf4c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionAttempt.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h index d221776..174d5b8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionReconnectionStrategy.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSession; @class PTDiffusionSessionReconnectionAttempt; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h index ada35b0..8910630 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h index 6259851..0df709f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h index 844aa43..3aa6ec9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionState.h @@ -10,18 +10,18 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN /** @brief Session state represents the condition a session has in respect of connectivity to a Diffusion server. - + A session state object is immutable. @see PTDiffusionSessionStateChange - + @since 5.6 */ @interface PTDiffusionSessionState : NSObject @@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN /** `YES` if the session is closed, otherwise `NO`. - + This might mean that the session lost its connection to the server and could not be recovered. @@ -58,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN /** If the session is closed then this property will be `nil` if the closure was normal and expected, otherwise it will contain the failure reason. - + @note This property is to be considered as an auxiliary, informational attachment to this session state instance. As such it is not incorporated within the result of the hash method and is not checked on calls to isEqual: @@ -79,6 +79,57 @@ NS_ASSUME_NONNULL_BEGIN */ -(BOOL)isEqualToSessionState:(nullable PTDiffusionSessionState *)sessionState; + + +/** + The session has been closed by the client. + + @since 6.9 + */ ++(instancetype)ClosedByClient; + + +/** + The session has been closed (or rejected) by the server. + + @since 6.9 + */ ++(instancetype)ClosedByServer; + + +/** + The session has lost its connection to a server and could not be recovered. + + @since 6.9 + */ ++(instancetype)ClosedFailed; + + +/** + An active connection with the server has been established. + + @since 6.9 + */ ++(instancetype)ConnectedActive; + + +/** + The session is establishing its initial connection. + + @since 6.9 + */ ++(instancetype)Connecting; + + +/** + Connection with a server has been lost and the session is attempting reconnection. + + @since 6.9 + */ ++(instancetype)RecoveringReconnect; + + @end + NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h index e11b54c..8a4712f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChange.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionState; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h new file mode 100644 index 0000000..8b2e30a --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionStateChangeDelegate.h @@ -0,0 +1,46 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2023 DiffusionData Ltd., All Rights Reserved. +// +// Use is subject to licence terms. +// +// NOTICE: All information contained herein is, and remains the +// property of DiffusionData. The intellectual and technical +// concepts contained herein are proprietary to DiffusionData and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionSession; +@class PTDiffusionSessionState; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief The optional delegate for a session which may be used to receive state notifications. + + By default a session will not have a listener. + + @since 6.9 + */ +@protocol PTDiffusionSessionStateChangeDelegate + + +/** + Called whenever the state of a session changes. + + @param session the session + @param previousState the previous state + @param state the current state + + @since 6.9 + */ +-(void)onSession:(PTDiffusionSession *)session + stateChangeFrom:(PTDiffusionSessionState *)previousState + to:(PTDiffusionSessionState *)state; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h index 3d1d139..e896078 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSessionTreesFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionBranchMappingTable; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h index 5b16c46..eb6e203 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSetSessionPropertiesResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h index 18a71d0..9c98d34 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @protocol PTDiffusionStreamDelegate; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h index af12c1c..a37190a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionStream; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h index a2a378f..0626764 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h index bda7a97..1a4192e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h index db83bdd..65cc52e 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRequestContext; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h index 266e8ab..0884b2a 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringRequestStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionResponder; @@ -42,6 +42,7 @@ NS_ASSUME_NONNULL_BEGIN didReceiveRequestWithString:(nullable NSString *)string responder:(PTDiffusionResponder *)responder; + @end NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h index 7fdc28e..34fc4da 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringSessionResponseStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h index 51fc3c0..afe53c8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h index 22c4859..e408ef9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h index af93739..b6b6e9c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStringTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h index 32983b0..30c1e89 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringUpdateStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h index fe42f3a..47e8ceb 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionStringValueStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicSpecification; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h index 4fed397..fda020c 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriberStreamDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h index b6ef0a2..34fd1ea 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionRegistration; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h index fc872e7..80ed457 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequest.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionSessionId; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h index d7bae1a..c68e149 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionSubscriptionRoutingRequestHandler.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionSubscriptionRoutingRequest; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h index 6231157..6e286ba 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEvent.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h index b994743..60d5f9d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesEventMetadata.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h index 50f5705..56bc5cc 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h index 14aaf1f..297f104 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTimeSeriesFetchTopicResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h index 7f3ff85..be9aa93 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesFetchTopicResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTimeSeriesEvent; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h index 89f595f..5ec45d8 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTimeSeriesEvent; @class PTDiffusionTimeSeriesQueryResultEventArrayStructure; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h index 82a403d..53a9893 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h index 9c97336..89d9a86 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTimeSeriesRangeQuery.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h index 64be027..a82f04f 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicControlFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h index 4a92cda..fc7efb3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicCreationResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h index dfcf998..55fee76 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollector.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN @@ -46,6 +46,14 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, readonly) BOOL groupsByTopicType; +/** + Indicates whether the collector groups by topic view. + + @since 6.9 + */ +@property(nonatomic, readonly) BOOL groupsByTopicView; + + /** @brief The number of leading parts of the topic path to group by. @@ -57,6 +65,9 @@ NS_ASSUME_NONNULL_BEGIN @property(nonatomic, readonly) NSInteger groupByPathPrefixParts; + + + @end NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h index 1bda0f7..a9e0981 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicMetricCollectorBuilder.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2021 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicMetricCollector; @@ -41,6 +41,22 @@ NS_ASSUME_NONNULL_BEGIN -(instancetype)groupByTopicType:(BOOL)groupByTopicType; +/** + Specifies whether the metric collector should group by topic + view. + + By default, a topic metric collector does not group by topic view. + + @param groupByTopicView true to indicate that the collector + should group by topic view + + @return the builder + + @since 6.9 + */ +-(instancetype)groupByTopicView:(BOOL)groupByTopicView; + + /** Specified the number of leading parts of the topic path the metric collector should use to group results. diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h index 8968a6f..a6c312d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationListener.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicNotificationType; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h index e3b3341..7564c27 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h index c2a0ced..c334ab3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h index 91ce757..233d371 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicNotificationsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionStream; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h index 336f2c0..10eb122 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicPermission.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h index 90779f5..0bbce27 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicRemovalResult.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h index 5e1c546..7cff311 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSelector.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h index a2ee381..a1199b7 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicSpecification.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h index ade6b7f..ab70bae 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistration.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h index a7a2d47..05da049 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicTreeRegistrationDelegate.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicTreeRegistration; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h index 3573b01..a5352ea 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicType.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** @file PTDiffusionTopicType.h diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h index 0ed9a4c..20b9b86 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUnsubscriptionReason.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import /** @file PTDiffusionTopicUnsubscriptionReason.h diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h index 2d6a694..8115aa6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicUpdateFeature.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,10 +10,11 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import #import +#import NS_ASSUME_NONNULL_BEGIN @@ -27,11 +28,12 @@ NS_ASSUME_NONNULL_BEGIN ### Update streams - An update stream is created for a specific topic. The type of the topic must - match the type of values passed to the update stream. An update stream can be - used to send any number of updates. It sends a sequence of updates for a - specific topic to the server. If supported by the data type, updates will be - sent to the server as a stream of binary deltas. + An update stream is created for a specific topic. An update stream builder + can be obtained using the PTDiffusionTopicUpdateFeature#newUpdateStreamBuilder + method. The type of the topic must match the type of values passed to the + update stream. An update stream can be used to send any number of updates. + It sends a sequence of updates for a specific topic to the server. If supported + by the data type, updates will be sent to the server as a stream of binary deltas. Update streams have additional ways of failing compared to stateless set operations but when used repeatedly have lower overheads. This is because @@ -46,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN performed by the update stream will complete with an 'invalid update stream' error. - Applications can chose to use collaborative locking to coordinate exclusive + Applications can choose to use collaborative locking to coordinate exclusive access to a topic. To follow this pattern acquire a PTDiffusionSessionLock and use it with a PTDiffusionUpdateConstraint#lockedWithLock: constraint. The application is responsible for designing a locking scheme which determines @@ -55,18 +57,6 @@ NS_ASSUME_NONNULL_BEGIN constraints and an application locking scheme can also ensure a sequence of set operations has exclusive access to the topic. - ### Constraints - - Constraints can be applied to the setting of a value and creation of an update - stream. Constraints describe a condition that must be satisfied for the - operation to succeed. The constraints are evaluated on the server. The - available constraints are: - - - an active session lock - - the absence of a topic - - the current value of the topic being updated - - a part of the current value of the topic being updated - ### Removing values When a PTDiffusionTopicType_String, PTDiffusionTopicType_Int64 or @@ -109,6 +99,18 @@ NS_ASSUME_NONNULL_BEGIN @interface PTDiffusionTopicUpdateFeature : PTDiffusionFeature + +/** + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the type of the created update stream. + + @since 6.9 + */ +- (PTDiffusionUpdateStreamBuilder *)newUpdateStreamBuilder; + + /** Applies a JSON Patch to a JSON topic. diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h index 3f35cf8..601f0e4 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicView.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h index d07441a..eda82c3 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicViewsFeature.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019, 2022 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019, 2023 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import @class PTDiffusionTopicView; @@ -386,7 +386,7 @@ NS_ASSUME_NONNULL_BEGIN Sets the field indicated by the JSON pointer to a value which is the - result of the specified calculation. If the field does not exist it + result of the specified calculation. If the field does not exist it will be created. The calculation can include fields within the input value. The calculation is specified as a quoted string. See below for a detailed description of calculations. @@ -513,7 +513,7 @@ NS_ASSUME_NONNULL_BEGIN A condition is of the form:
-         pointer operator [constant/pointer]
+         pointer operator constant
          
Where pointer is a JSON pointer, operator is a relational @@ -524,7 +524,6 @@ NS_ASSUME_NONNULL_BEGIN
          /Age > 40
          /Name = 'Bill'
-         /Age > /RetirementAge
          /Manager eq true
          
diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h index a4d769f..54f156d 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionTopicsFeature.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import #import diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h index 5284f21..2cc7efc 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateConstraint.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionPartialJSONUpdateConstraint; @class PTDiffusionSessionLock; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h index 4407569..ee4deb6 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStream.h @@ -1,6 +1,6 @@ // Diffusion Client Library for iOS, tvOS and OS X / macOS // -// Copyright (c) 2019, 2021 Push Technology Ltd., All Rights Reserved. +// Copyright (c) 2019 - 2022 Push Technology Ltd., All Rights Reserved. // // Use is subject to license terms. // @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import @class PTDiffusionTopicCreationResult; diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h new file mode 100644 index 0000000..3698253 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionUpdateStreamBuilder.h @@ -0,0 +1,244 @@ +// Diffusion Client Library for iOS, tvOS and OS X / macOS +// +// Copyright (c) 2022 Push Technology Ltd., All Rights Reserved. +// +// Use is subject to license terms. +// +// NOTICE: All information contained herein is, and remains the +// property of Push Technology. The intellectual and technical +// concepts contained herein are proprietary to Push Technology and +// may be covered by U.S. and Foreign Patents, patents in process, and +// are protected by trade secret or copyright law. + +#import + +@class PTDiffusionUpdateStream; +@class PTDiffusionTopicSpecification; +@class PTDiffusionUpdateConstraint; +@class PTDiffusionStringUpdateStream; +@class PTDiffusionNumberUpdateStream; +@class PTDiffusionBinaryUpdateStream; +@class PTDiffusionJSONUpdateStream; +@class PTDiffusionRecordV2UpdateStream; + +NS_ASSUME_NONNULL_BEGIN + +/** + @brief An update stream builder. + + Builder for {@link PTDiffusionUpdateStream update stream} to use for updating a + specific topic. + + The type of the topic being updated must match the update stream type. + + To create a new Update Stream Builder, please use {@link PTDiffusionTopicUpdateFeature: newUpdateStreamBuilder}. + + @since 6.9 + */ +@interface PTDiffusionUpdateStreamBuilder: NSObject + + ++(instancetype)new NS_UNAVAILABLE; + + +-(instancetype)init NS_UNAVAILABLE; + + +/** + Specifies a {@link PTDiffusionTopicSpecification topic specification} for this + update stream. + + If a topic does not exist at the `path`, one will be created using the topic + specification, otherwise the operation will fail. + + Specification is `nil` by default. Calling this method with a `nil` parameter removes + the currently set topic specification from this builder. + + @param specification the required specification for the topic + + @return the builder + + @since 6.9 + */ +-(instancetype)topicSpecification:(PTDiffusionTopicSpecification *const _Nullable)specification; + + +/** + Constraints can be applied to the setting of a value and creation of an update stream. + Constraints describe a condition that must be satisfied for the operation to succeed. + The constraints are evaluated on the server. + The available constraints are: + - active session lock + - absence of a topic, + - current value of the topic being updated + - part of the current value of the topic being updated + + Constraint is `nil` by default. Calling this method with a `nil` parameter removes + the currently set update constraint from this builder. + + @param constraint the constraint that must be satisfied for the update stream + to be validated + + @return the builder + + @since 6.9 + */ +-(instancetype)updateConstraint:(PTDiffusionUpdateConstraint * const _Nullable)constraint; + + +/** + Resets the builder to its default parameters. + + @return the builder + + @since 6.9 + */ +-(instancetype)reset; + + +/** + Creates an update stream to use for updating a specific topic with string + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionStringUpdateStream *)stringUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with + double-precision floating point (Eight-byte IEEE 754) values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)doubleFloatNumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with 64-bit + integer values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionNumberUpdateStream *)int64NumberUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with binary + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.3 + */ +-(PTDiffusionBinaryUpdateStream *)binaryUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with JSON values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If path is `nil`. + + @since 6.9 + */ +-(PTDiffusionJSONUpdateStream *)jsonUpdateStreamWithPath:(NSString *)path; + + +/** + Creates an update stream to use for updating a specific topic with RecordV2 + values. + + Update streams send a sequence of updates for a specific topic. The updates may + be delivered to the server as binary deltas. They do not provide exclusive + access to the topic. If exclusive access is required update streams should be + used with session locks as constraints. + + Streams are validated lazily when the first 'set' or 'validate' operation is + completed. Once validated a stream can be invalidated, after which it rejects + future updates. + + @param path The path of the topic. + + @return An update stream. + + @exception NSInvalidArgumentException If any argument is `nil`. + + @since 6.9 + */ +-(PTDiffusionRecordV2UpdateStream *)recordUpdateStreamWithPath:(NSString *)path; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h index 04ce4d5..d5579df 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionValueStream.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h index 61e9cdf..9ea1df9 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Headers/PTDiffusionVersion.h @@ -10,7 +10,7 @@ // may be covered by U.S. and Foreign Patents, patents in process, and // are protected by trade secret or copyright law. -@import Foundation; +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Info.plist b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Info.plist index 45c9eae..6597fbc 100644 Binary files a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Info.plist and b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/Info.plist differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources index 3523494..53c9887 100644 --- a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/_CodeSignature/CodeResources @@ -6,523 +6,535 @@ Headers/Diffusion.h - bom0cUqvhp3IOAr0GNRfdJja1Uk= + Mkqa2r0x+txy0cQmJIpxw2oeQP8= Headers/PTDiffusion.h - XnD3E9+NbghWDiChKuryYDmAHiY= + etncixhbxbY9uNI3FgCEG5NZC1k= Headers/PTDiffusionAddTopicResult.h - gHVMjofviSaatFXSyW9JNlQWXp8= + lf4tnUs6clyzlkWOZxif1brIZIg= Headers/PTDiffusionBasicHTTPProxyAuthentication.h - tfRpT3SJrwnlUAWKk1zE5yStHPw= + EZ2o/hOmmA0wKR57fwDga0y2Cqo= Headers/PTDiffusionBinary.h - IRp9KLtwcW8Tpll50vOlqTnr5EE= + Dp5oMgxGqG0AwopvhmD53929ZKg= Headers/PTDiffusionBinaryDelta.h - eOisvnXJ+75WXktyVQV47X7+rss= + 2QhceXcLnfQd/qzQK9ojEjnVz1c= Headers/PTDiffusionBinaryFetchResult.h - wvBjyhM/oqwxn/TtgbMe0EG2/ZI= + nx3DoWNGWUI98o/h2rutlX9a/AM= Headers/PTDiffusionBinaryFetchTopicResult.h - IvwIFegt3H60YtYjfDWclLgvXNs= + ZurLVW92masa5deJ9QudaTVWnOI= Headers/PTDiffusionBinaryRequestDelegate.h - HEW8gUfkpyJv9fIR56v7vBuyyew= + F/RIhkNPfD93JbOaX3mXAL1RkXw= Headers/PTDiffusionBinaryRequestStreamDelegate.h - KwS77VkO7OynPdkPDICIvXVs7D0= + mo1R65pbBqwX2qOpEujsT7T4KFg= Headers/PTDiffusionBinarySessionResponseStreamDelegate.h - k5Zben7VlzUyq1GbXRavPpnHbqo= + uAPdv2I+wYK3uhq/84NkD7fgxeY= Headers/PTDiffusionBinaryTimeSeriesEvent.h - EQnUyyyh28i//lipgxgs018ju94= + YqSglP1Kdz2FhbKhxghcJixdnrA= Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h - O3juN1/1h3CDQQ4OLiur7pBnGpU= + 6oo8LIKO/uZA4sNzdK+nlR/5FIY= Headers/PTDiffusionBinaryTimeSeriesQueryResult.h - koRVjwmJQXlw2dF2tu9WkNbU+H4= + ixMN6gDnwxXAmajRPWrUaS5uIt4= Headers/PTDiffusionBinaryUpdateStream.h - 9gicGD1inPa6gTSXRqAjVdK8Jkg= + h+lm30nxzIbJgyeMQ0HtqYjsv4c= Headers/PTDiffusionBinaryValueStreamDelegate.h - 8mXPY4qvKFwhC7seYe+krz0h3lM= + ljWMTJnpBwToLvbyN4kTsuJZQeA= Headers/PTDiffusionBranchMapping.h - ZDKqttc6M9zzHagsXFo9g8XB820= + Labnm5AJG/nmPaP56htrzXh18Io= Headers/PTDiffusionBranchMappingTable.h - w3tE+yV1eJmplAlpTXlnSgatTEQ= + X9M05JWp4TG3kfAM5x3EhPJW8v8= Headers/PTDiffusionBranchMappingTableBuilder.h - Bo0UbPi3YEKdi8QrRkzv5/jXyAg= + tQydUcWofgYORzWn7JeAiBWLAq0= Headers/PTDiffusionBytes.h - M1Jnfw1hNGcI0Ib53U9zcbb1OjQ= + wAjXc7vWNjySYljVMRNsT+6+EZ8= Headers/PTDiffusionCancellable.h - K1St0I86KSn20CSR1hF9y/kj9Nw= + Gmm/d6N12EoRSVSUTymeFrhPaxk= Headers/PTDiffusionCheckRemoteServerResult.h - rgJFAn1BZaXsAcy5G5KJrEnMUWw= + CyId85zIwIFtp629m7KJ30//FM0= Headers/PTDiffusionClientControlFeature.h - 9bpwdrS7GGm74lz179pVIo/lbK0= + lGTUIsvZvsl99fF6vQ4Ze94HvKs= Headers/PTDiffusionClientQueueEventListener.h - TX7hq5YhAOlQWhLeXuuYjnymdnw= + qbDOQMEQhhWLUBn+fkAANXOIEeU= Headers/PTDiffusionClientQueuePolicy.h - XSlTBmdUr8g3vzk6IaTa9rfkSxE= + o6Lr6PXPUNpRfOqUzOsPXPLUCBY= Headers/PTDiffusionCloseReason.h - 4NP8EBJYodc7qbJuW1aIdBB79zk= + 8stcH0pJC4p3Pm/F+rfo4qcdNW4= Headers/PTDiffusionCreateRemoteServerResult.h - lXIiFvo6+6+zkanzQdwlxRq9r30= + fCPpDe9H/eNLUz+cLSrdmN15ZDU= Headers/PTDiffusionCredentials.h - Yswe6ZeE8pV1UWc47mhDM/vERCw= + ChqQbKvOiDqqYl5Vwujv/MlzQdM= Headers/PTDiffusionDataType.h - X0jXK7KstA98ANZQNPxIX8PTYn8= + /o2coY2OXX8jiC8yEYzAjl+owWE= Headers/PTDiffusionDataTypes.h - 59TS6+k/8iOzzVAsZvaljsHGQvM= + 241uaKNOvlRh22w5JYc6fjTjO08= Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h - MQj3IR5A8XwhAVxD6odEfwVSUYE= + 0LEl+NBH3BN0llMo95e01zSaVBw= Headers/PTDiffusionDefaultStreamDelegate.h - kn2OYFoVYgbQZU8Z9uK0waIA+O0= + f4GfBFpNZwaBfR6lX2TDMrUCs2w= Headers/PTDiffusionDefaultSubscriberStreamDelegate.h - rL2HohjRlnrEkzhB0HaNM8/m3AU= + 4CROni4tMaTuWKAjaey/Vc4jRjQ= Headers/PTDiffusionDefaultTopicNotificationListener.h - pWqPn+PFv+aw8bXUBM/23Gd/2D0= + oNNeBlqnhsu6vRGQM4QPqFUrfeE= Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h - +BkpBsYRzZxyPMpOsvLENEOWqoU= + aIV07Bx9clK5bpnrK5tF3fZocsI= Headers/PTDiffusionEnumeration.h - 7IATJXBFV7kyC63oqJ92RUpXNDo= + 1DMAvabFhr876grje6SCYFLrlBk= Headers/PTDiffusionError.h - cECQ51CSMTZKw7m9wrI0PDkK0t8= + atYN8FDgttIKU3XnAuIU3vnKdew= Headers/PTDiffusionErrorListener.h - wcUQ12PknR5uodl6vDNDQ72DwOI= + EAHALG8d4scUoAwdnXOkEjbrP/c= Headers/PTDiffusionFeature.h - l318/UIdPwcCgnimVAGGubfOgrM= + dWawOs/ELfwVqjBE5ltRPT/71w4= Headers/PTDiffusionFetchRequest.h - EWXDvEo6JtGvPODJtVfziNCRgmM= + KkuMMRiUlzGH0JxWgZ9ylE++LWs= Headers/PTDiffusionFetchResult.h - 7besz8A6wioK/QNMWjwJlaVctIc= + /T3ijCiWmmVZ1i2LHsHbHncSgdo= Headers/PTDiffusionFetchTopicResult.h - n1swAjpJpvWNa7kigXb5lFG7qqM= + /tVIkxz3JFU5J+sRgur1NDCnb74= Headers/PTDiffusionGetSessionPropertiesResult.h - wf69YysbIJf2k3TljvR8nLnhguQ= + 87ak7jHiCkqpwa9eP9ohBI9A2JU= Headers/PTDiffusionGlobalPermission.h - hycq2LpFRepTNes5tWImHbyE+ug= + P7/nHG2hsIIjJbA0PaOX6lKuqQ8= Headers/PTDiffusionHTTPAuthentication.h - 04TrwbzPbN2tf29o6t+4QEOrt0Y= + oEX1Yg2hovbJq4PFIVm47qeqwMc= Headers/PTDiffusionHTTPAuthenticationChallenge.h - xPb2ms4PfUEgQGe0TT84xAVC26Q= + Mzvzcyb4aicAxxaxfuxjnOon6S8= Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h - q2tRtdUcvNI3qGrT1PCxPtRvru4= + b8i+YV5dgnprw+s3yakS2eBsSfc= Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h - womdRtmMruef+Qhl4fW6XdlikHg= + jLMSYOorAMy9jIu0Se3gQY17m6w= Headers/PTDiffusionHTTPProxyConfiguration.h - X9Chg+yCwug1lN6YBajyxKDfDc0= + ElKSmimXIcvqbqv8X31rnLgk9N0= Headers/PTDiffusionHTTPResponse.h - APmuxxekiZOjirHbaSvuA3xFNfs= + AaRy8GBWXt2ysVS1xsR+WVtAGYc= Headers/PTDiffusionJSON.h - 13qELluVvXtpq/W5SEZTqXq2ZzE= + UB3VCtbTX/hTJYSoYHRFaD0koOg= + + Headers/PTDiffusionJSONDelta.h + + llOmfyInCzKBu9gaoyyD2F0E8Eo= + + Headers/PTDiffusionJSONDeltaChangeMap.h + + pZD3sB7uVs1AlRUFdXkJWxR8Roo= Headers/PTDiffusionJSONFetchResult.h - /cK6X7hkNZboxNKluxhEUjRWIwQ= + MMuebHUd6ghg/TdtPAoF8pa0M+4= Headers/PTDiffusionJSONFetchTopicResult.h - 5ZJnZTT2CH/QDZpKk0ONXpKcW2w= + IFLx59aTDLWXW+4aGz6VHuJknJM= Headers/PTDiffusionJSONPatchResult.h - tINXQYyErrFXqwh3cnlfh3pO/9U= + PrMdJIZyx/6c94gnZaj03sECMnY= Headers/PTDiffusionJSONRequestDelegate.h - PCVS7kwCps6n8WFRAo43sC639gc= + O2hwszRccrLaNmdhU+SibNYBIZw= Headers/PTDiffusionJSONRequestStreamDelegate.h - h8fH9WCeCRvKmRZpgN4PoxGwXcM= + u5XITvrPzLbNdvlxowF97dD6fkE= Headers/PTDiffusionJSONSessionResponseStreamDelegate.h - 1NWVlpE/WCiY0Evzq9gaEeQDPxk= + HDlqDowcgloPplbbEYTG/yEdwls= Headers/PTDiffusionJSONTimeSeriesEvent.h - KqcX5DaBkiIwDyh5T1naEDsI+0U= + RcHAcv5yP2wxO13ZIO0fDkRKNF0= Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h - jaxYR2fpU2LZj60PBUkGoxLj5tg= + 6fZ63Zr32EoXExyTAak3KCkNmck= Headers/PTDiffusionJSONTimeSeriesQueryResult.h - PiW4Sb/HeTzzBAj1znEyS16e7ns= + ZBkj1nFh4BjmQH9CfzqrWgFSYAo= Headers/PTDiffusionJSONUpdateStream.h - j+kgT9TmBDSeeUhqvss6orxl+AE= + Qyz7EFzJMMCcgkBwIeGG+BZ7n3g= Headers/PTDiffusionJSONValueStreamDelegate.h - f4o0O4ha63u/IckPbxgF2hi8ARM= + 3k1M7cqmg0NOHDAubOy36MrUj48= Headers/PTDiffusionLogging.h - rFCKP77Z13fl1Lqhyl8lr6PcRMs= + 3/Qic6EJSqNfIoY0DuWR1nnVTrk= Headers/PTDiffusionLoggingDestinationConfiguration.h - 4axnkOhVG9/3OVR3yw3cr1owtyY= + opQqfIOqWB55P4kaFEXdMkCx23M= Headers/PTDiffusionLoggingLevel.h - m0qdaXuRy1UIh4w9lBaMnB3kIU4= + ttEQE3ONuRBTpBf3edmsJgf6V/s= Headers/PTDiffusionLoggingMessagePrinter.h - spLTiRckY9p4svdpQ9fnqNIKW9g= + CpwRxxTnxfY/1n9cg6oHVCUCwkA= Headers/PTDiffusionMessagingFeature.h - TTsgX8TESXQMEA7KRqHoSCIfjUM= + DpAlGVFnhF0vEDIRAqJICKlqAzA= Headers/PTDiffusionMetricCollector.h - Q0hI/n0EHo+6+kg2ZMhq9zm9TxU= + ibw6woRQavBLN0ZWnt9jieDkFUI= Headers/PTDiffusionMetricCollectorBuilder.h - yQmzqI6Di3RfWUoGBKz4RvnEedE= + 0302nzzc+tGrdKo+P/h8Fvx8p0M= Headers/PTDiffusionMetricsFeature.h - ulonYz17A9TEyp+Wdbeg2UTFN4A= + 0STlq7UoYU6wbFu1+hRzN/xnghI= Headers/PTDiffusionMissingTopicHandler.h - jJ9PsG+P1IDcxXLERBJYcolAZEw= + cFfLmfy9Qj228NY1gVKCKxKoHf0= Headers/PTDiffusionMissingTopicNotification.h - f+zhLyj+cKWNZWfwqYAIPYMXn9M= + V70fd8EArG5WI73eHtaMbqp0LOk= Headers/PTDiffusionMutableRecordV2Model.h - rX77Q+p6Z24SD2B1WwDJaVT7OFk= + RU7vmnvmmIRXhRo25AdtbBG7Dfo= Headers/PTDiffusionNumberFetchResult.h - vkpfm8kei5FeQJjA8TvBzF1NJ70= + u25nPwb/XgcAqpA7LLfxydgjTok= Headers/PTDiffusionNumberFetchTopicResult.h - 9juTPAfvGmI/eSDqGWc9Pe2k9FY= + WdD2IGt+yy9Uubxutw/IDveSO6Q= Headers/PTDiffusionNumberRequestDelegate.h - MaDH0rclSd1xFLM9nY2nAH2LzBY= + SOo4ck/8vEtDax5Uqp5wYgQ1luU= Headers/PTDiffusionNumberRequestStreamDelegate.h - DHwutv+bacmUxpxcu7owxikDewQ= + k06j/mET0n+Gj2SWSw/1iw3g1eE= Headers/PTDiffusionNumberSessionResponseStreamDelegate.h - UFwJKoii3V/0nunrBQGderRkUFc= + GMy7jTkAq0n1FtUTYXwEcIDaeSk= Headers/PTDiffusionNumberTimeSeriesEvent.h - 0qbeP+41+bMjUTgdEC0cGT9P01o= + tyRJotkHuz2MZZ3/h/fNt62gRW0= Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h - u/s/wzNKMdkxsmzwoAhjiE33lPo= + Nh4um6YvEN9rCvvKbNXaSqpn+mU= Headers/PTDiffusionNumberTimeSeriesQueryResult.h - FJhjeCt9g0rbkhCvc19H+cu2D9o= + kf1PArSbO8zrQ4bvmnUxOMVik00= Headers/PTDiffusionNumberUpdateStream.h - xMiLZqNEjNcJlieyWRVOp6wHijk= + jOgeSjTNY+SndUVqLqqknCqdNR8= Headers/PTDiffusionNumberValueStreamDelegate.h - UFSzUpxbZElKE3zzbkkG7LpoigI= + 59+6S2QqEtdRPyGyFAsaXHFRZSc= Headers/PTDiffusionPartialJSONUpdateConstraint.h - 4Kg285/tvd0sddVplu8XznOumGM= + RBsJCmnW52diE8J2WUVNyIxGznM= Headers/PTDiffusionPathPermission.h - YduEOO1T2Kmw+7Vv7VGa0EtFmSg= + utHyQhw1oqLuc8CFm6wgSc3XNUQ= Headers/PTDiffusionPingDetails.h - s/YUpu02id3IaJL0naBecz13Ndk= + 0zGyogQffFVxgHMKzHV1z/AUYcE= Headers/PTDiffusionPingsFeature.h - ToR+BKQy2x1CjT7TWkSqkE7OxK0= + ILzEw2AWPERs0rA9Q1rHkPFokYs= Headers/PTDiffusionPrimitive.h - nqrWaohoh0ja6D8iSB5EogVkhZ8= + 4pK+hfJ/5vRwvN+/R7IgWZry47g= Headers/PTDiffusionRecordV2.h - rCmHMFagwu8wmS3Mg+Q8gNX42tc= + 9jPG9mGsh6ywTSZQbrHk9vm14PU= Headers/PTDiffusionRecordV2Builder.h - QEgiu1leq3oUSasXj9rVYB+ezcU= + +R43bqNNNSrziRgr9JY3AKVfI1M= Headers/PTDiffusionRecordV2Delta.h - Z2XlkG872AlE7BF2yN1gK6KJYGY= + MDvyEtKhWN1atexpVnfBzyRgOlE= Headers/PTDiffusionRecordV2DeltaChange.h - amKMt7zzKuisiAGSS4o/dO/gfiU= + YyCYYNE95yLCCU2wlol8RySHmrY= Headers/PTDiffusionRecordV2DeltaChangeType.h - OsT1NCWxWtKjjBpy4r1q0B3F1Bw= + aKKRips1gmiC2VczkX1enW534S4= Headers/PTDiffusionRecordV2FetchResult.h - INjNAOczxQqEx4cy41iwA7LWpZI= + DM2fmgSp+PEHlNH/quxAhMJSJNs= Headers/PTDiffusionRecordV2FetchTopicResult.h - TMD9NYUqaJtfxtXYpEUiQ8ABwtw= + ajbj/1aV/KZOfOyG7L+jISluVjI= Headers/PTDiffusionRecordV2Model.h - YqTtIkx9UL9qI3MgaOYdE1Pqw1A= + S3u5qsl0s67Gp5D/HEOcjC7Rpdg= Headers/PTDiffusionRecordV2RequestDelegate.h - 5tja6Pl/xjl/EMBW0e7uHg9d8CE= + eMhaKyIE7AZ5WKIjUChHd/6ptqI= Headers/PTDiffusionRecordV2RequestStreamDelegate.h - V/Jv9xOUHnVpx96N1WiFfvG4gTk= + OQV1G21EDlLtYmdD2JdZbZU5uzQ= Headers/PTDiffusionRecordV2Schema.h - cp/B01S2/f9tf7igoMi6A+0O/Tc= + 29Vd7ulnAtz3HlUx+gSWDLcU9pQ= Headers/PTDiffusionRecordV2SchemaBuilder.h - ZhIcXpXr8oL0a1OLwiwrrTcYjlA= + 0NioSaGvZlbAcQrYvNbNAi4P+Ew= Headers/PTDiffusionRecordV2SchemaField.h - /jeQVC5riz+T4TfX5uvh46LwDDw= + nMOQYy88QfELJo93TvSRKq+n5UM= Headers/PTDiffusionRecordV2SchemaFieldType.h - rUb1lnPxYyaoGiVc0+kXFJ7Y7Tw= + plUnzqdSf1ET25eO//O5+b+FlrI= Headers/PTDiffusionRecordV2SchemaNode.h - QRe83a+5IaaOgHgPRNl/i6vwXnU= + uvWnpYK4e4ugcIxwblIJ0VvyJr8= Headers/PTDiffusionRecordV2SchemaRecord.h - TnFwYILZgo+/FVeim2AOace5hCw= + MswcVnsUm9m8lNaKMTy5MudMHvE= Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h - wHWllniW8bHydKIMRghh+B9pBNc= + kuVjEn/RpPcDmAE9odYMpa8aUVM= Headers/PTDiffusionRecordV2TimeSeriesEvent.h - 8nW8wilb7VSbwoirdb8YXPUoXwc= + KLF3lvwxYGEMScZAy6MhstjAnBY= Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h - 5eqp6nK4/+8/p3Iaq6RYs2A67ac= + tpMkvB8WAzevpM+ZZ9efhIbarSg= Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h - Pmj2xpyYBWs4WOlPNMtQDKFt1po= + eBeo9N3OngG7UGNtJmC7eDmMAX8= Headers/PTDiffusionRecordV2UpdateStream.h - Y0a4Rv+Rjy+bPGlHY4MaiXDvzgE= + C8JxKjIkLqBcPQK450hyNh6zJuE= Headers/PTDiffusionRecordV2ValueStreamDelegate.h - QVYIHzmU7JnguRZStV2xfYFe+SM= + i9HX1prcRwwSTRkaCWO/+wYKdeo= Headers/PTDiffusionRegistration.h - LGwiK+YsT6bBbaxQbi07AVArkms= + W3Vw9COYkUtYU97VH4XvScMmGRY= Headers/PTDiffusionRemoteServer.h - tP1e8puvRCc3D98M2wIel8k9sms= + 8Ww2pLGazyPtS2YmJ3r20BKAo8E= Headers/PTDiffusionRemoteServerBuilder.h - dGgKIOzLscYH0Kd+q0Efp8IjDpc= + SerfJWFqqmSIfKnxgUEiutQ2KHI= Headers/PTDiffusionRemoteServerConnectionOption.h - ITjyZnacokkituioSBE8DhLXd8Q= + MBysTsKBCSXf5PJJ3wpOojR6Jvk= Headers/PTDiffusionRemoteServerConnectionState.h - YKFO+vf7p2q4zct1FRpSTINM89c= + mw/eKPYjOdkxSWidu7HGKppaAlM= Headers/PTDiffusionRemoteServersFeature.h - 3Prda4oNHqXUzM+2U22Vo3u2sRM= + yvk7aNi2t7cCSlBP5z9QlqOyyNk= Headers/PTDiffusionRequest.h - iBXHk0CN0V4H9TfvFlQgi/TXa6I= + xAxd3/9o9wfiPgSqxrfnpDpjDhc= Headers/PTDiffusionRequestContext.h - qxw2kG8mwhMOqbAw9ZcSwMgE6/k= + xeKAZ+VuwggkHqxG1PWZ7bXMTqk= Headers/PTDiffusionRequestHandler.h - XmYRoiMjYnjmqFsrRj+Ocq9rZdU= + WsyzCHLTmKlt/wcjcyBG/5jL08w= Headers/PTDiffusionRequestStream.h - qm5369ZeGnWQIKkO1xGqW93f0zM= + Zv7vMz3yeEEu9Z85344h42fKLeY= Headers/PTDiffusionResponder.h - SQPU0jg5rEhY53sQfJBDoMRLoeQ= + pt9o2ut9An0AMQkZPFU4V0cyutw= Headers/PTDiffusionResponse.h - UhIeKy+CRs4T2zTGFphGm1OzMQU= + Q8sXEJDrJGa9Dd9HCeUtoWCTjOw= + + Headers/PTDiffusionRetryStrategy.h + + 1il8so4gUjqCCvg5TRzbyoaHwxE= Headers/PTDiffusionSecurityFeature.h - r3/W67iYxvPHeteE6OMX+4ROxLU= + o95Nwkx1BHa7tQo85JqcgUmRUuc= Headers/PTDiffusionSendDeliveryPriority.h - 5verWwhZ36ChGa7vv+1M8PP8Rt8= + w3hhJNuNqGID6gHCHRq13qT5Fk0= Headers/PTDiffusionSession.h - K4ufrMdrBR/6eUlFVBsL4YNlpkw= + dVbfcACrK5ViY9tsk0LfsGbM7EI= Headers/PTDiffusionSessionConfiguration.h - cjTtORO4pfSJOpVygL/iuUmTLfE= + TRJpxEF9TQxHUE3tAvljNId6/HQ= Headers/PTDiffusionSessionError.h - /sDYNWbyKXRgx2xjLLXdtDk8uMw= + /N2U2/H3sQahKWe+3OK4b5/sHYM= Headers/PTDiffusionSessionId.h - oyP1ZP8tiqVh+RtjUsOFCD36SbM= + bjAVhZZHsCDiQtXcWDg/Mt5Jqm8= Headers/PTDiffusionSessionLock.h - +pRVtSlOo4nwFJAxLx7rRQ1bFBE= + pRjtpJ4OV8M7T1JrfRMcwCRzzX0= Headers/PTDiffusionSessionLockAttempt.h - zDG2rmmh4HQqat13XIARd2gpyp4= + F9JjEhm/2O3Avmo2p7tQVNi2zOA= Headers/PTDiffusionSessionLockScope.h @@ -530,251 +542,259 @@ Headers/PTDiffusionSessionMetricCollector.h - r/Zt7XdN0mfHzv6oKpiC0OXqrxw= + cGYuseLU/31kUdyyFprcCtW/Dd8= Headers/PTDiffusionSessionMetricCollectorBuilder.h - talQ04uHilmK6CHOlES9BepGWkk= + xW4HZ1JSvpkqtdPSG7Ri4DTmUPU= Headers/PTDiffusionSessionPropertiesDelegate.h - Zmm4SJs443B/Ed0GSpRps6zTviA= + ZK+EIqsw0fi+s+xIWUlI4xRRAUw= Headers/PTDiffusionSessionPropertiesListenerRegistration.h - T5YzTXQWyd4mNDDwbkWXSNh9tQg= + bGcFnXPO8fnri5+bPx51Qmb16bY= Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h - DG9AN818s/C+5ehY39mIwXSvCNk= + weUx7F/rNoca8WGeTcBg3XnC2w0= Headers/PTDiffusionSessionReconnectionAttempt.h - R91QcHqYATJhv8hKoDoQbWbdMDo= + +ToAswnfGNDF+2VHHi2IHXVpk8o= Headers/PTDiffusionSessionReconnectionStrategy.h - PrgSLAcm+88cWPctmusCFsADB8M= + q2hUzH5OXZl6gNbY5X/rfsuj/sk= Headers/PTDiffusionSessionResponseStream.h - TFbOIDOggRw+LezkWA7RLjZNDRA= + x6r/r6ta7dO0kOqzhRvleNnHyOs= Headers/PTDiffusionSessionResponseStreamDelegate.h - fl2RAQgYo+kqHlgIUD5JDuzX/VA= + 93B33j5xtR+chnEjypZWO0nvMRY= Headers/PTDiffusionSessionState.h - D7PBX4cf+PMCbTETtIfiwDZdUs4= + ga0fsQLDN3YCtttCW1h8hx5u5k0= Headers/PTDiffusionSessionStateChange.h - kH2ACmvz/J2676PpkVCDrOmYXoM= + 261WITvQeq3j4wqi5fxkgh9g9Uk= + + Headers/PTDiffusionSessionStateChangeDelegate.h + + I13XUOrr5eJaf2jNke9oj2eMYeo= Headers/PTDiffusionSessionTreesFeature.h - yLxcurXzmLYnoF40EUkeQ1Wjdn8= + bd+wzHk3Vh7YZJiTTdK/T1znHfk= Headers/PTDiffusionSetSessionPropertiesResult.h - AOCaIej6BlQ6Lk/b3gQguGFo7vE= + syT4pk/CgzCeZ4Z0wKN8IBqthZM= Headers/PTDiffusionStream.h - rDmcy+gFQLG4u371AOzTrt8fnZc= + xKB7aLpvCs6El7QQL0jn86m4v/k= Headers/PTDiffusionStreamDelegate.h - ePW4fuh5cMZxSyFRc3beuTOlpxg= + aLYAfnWKXf53AH5pJwenzQsUxYA= Headers/PTDiffusionStringFetchResult.h - GIweI8KVClgVTBpcOBGKqU2Q8OA= + qx7Aja50Bb3mMs+84VoSWG5Xcjs= Headers/PTDiffusionStringFetchTopicResult.h - 7qisXZm9jhg0Y5fMDyVWzx65oy0= + 8khbWI6t+bSoHP83ppZUjiSVG7Y= Headers/PTDiffusionStringRequestDelegate.h - EN/WRMBYCSI21ohKnQzSsENswas= + eU+jin9xsc16Qgwpb1NunH777Y4= Headers/PTDiffusionStringRequestStreamDelegate.h - Sbfe0TtEgYds3b3MYM6tqQaNhXg= + g9Pi+bnkXFYc1qA+HXdO8vDp+XA= Headers/PTDiffusionStringSessionResponseStreamDelegate.h - 74IsG6YvQIagZxhmwxZyKJGxw4w= + lO0zexieIeu7aBf3u3j+OtTfFcg= Headers/PTDiffusionStringTimeSeriesEvent.h - 1NQ2QsLa1qI8t2LXjuem4yF+llQ= + 2LPFnC2Z7kiFBmxfsSn9Gu4Mk1Y= Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h - 4qsI0k8nCf4N+Nz/FMynawnaygM= + yG3L23xjbzZHVgPaK2OCqeIVc6Q= Headers/PTDiffusionStringTimeSeriesQueryResult.h - zumPNOhfHhpy4bsA5zSFE71XvJQ= + xKm7HGOoIIOAQ+zE6vt+ynMA97U= Headers/PTDiffusionStringUpdateStream.h - s7gAMaCr5wMoDUpdrY4/YQ1yaJM= + Kg5qSOtTPiZxsKclUIsUEcRbJUE= Headers/PTDiffusionStringValueStreamDelegate.h - a7UMtigs/ys7HE/CZ8/KHEyHWsQ= + X2t4SvNlud3O4AnH8n8KVFFDSfE= Headers/PTDiffusionSubscriberStreamDelegate.h - wDl6dH5JGxIwojmEV1M/8prrOgU= + Z51r+DtzgiRgOeC9fmpbaLpkSEI= Headers/PTDiffusionSubscriptionControlFeature.h - coLOg32pomsy6EhJOOH505Qv8NA= + iouD2u0n6IAl0Q2MkXy+tUwcQ4s= Headers/PTDiffusionSubscriptionRoutingRequest.h - bh6oZPo6Q9ckwiOGwLtgxhRJf1c= + 62OSCfzi6qboLz2LJK8Cuwif5g4= Headers/PTDiffusionSubscriptionRoutingRequestHandler.h - 9jnRMtx9K8HdPuXG+znth3M0aGE= + GDEB5ib3O9Qip8y3PyCTt2FJl50= Headers/PTDiffusionTimeSeriesEvent.h - EUo8rlUN7L4Vb0ApCRQc0QvyDKI= + GwAwW6xQJU0YJq/BH2es6w8NYpc= Headers/PTDiffusionTimeSeriesEventMetadata.h - K3z4tHb6R+DJ5TS7Zn7KTSuV3aQ= + CctV6GWN1e8atz4cmRvwkH3mEiM= Headers/PTDiffusionTimeSeriesFeature.h - kRQvWpGJ5/+mq+wKgZn1UFU+aEc= + mMpxPsOdi4Ak1NmYNC0Ygep4k34= Headers/PTDiffusionTimeSeriesFetchResult.h - MvAjs5LXtdh3OO3tOuSA04LMM1k= + 4Y0oITXaI4WyKJQkwzUwnvhkYQY= Headers/PTDiffusionTimeSeriesFetchTopicResult.h - yp6pe18HJ/EGJmpbh+6s7NLZ7pU= + YfbC1jEisk8Rr6Q2rCdA6O4iidM= Headers/PTDiffusionTimeSeriesQueryResult.h - gG4FAopvIEIBP0fMvPbOLS83u98= + QbFBLkm9EDCQ/Qrvy34niAjVq88= Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h - DvpP6DS6eAyk+aCqkqWb3iigDxs= + uBt/o+HjAjBsqvJjufIF7fI0P3I= Headers/PTDiffusionTimeSeriesRangeQuery.h - W/tKg/AWIskigFCtEjJRnm+TmXc= + gXXiTD9FjLsoGC8SjKP8DCtXHdo= Headers/PTDiffusionTopicControlFeature.h - WtrzrcDtqjI42rwsqH/19Vd1VCk= + /I9hx6ncXo/UxRNhvMzdOOZJ1yo= Headers/PTDiffusionTopicCreationResult.h - HSAGnfPszx9efRtpwwVWOIoTd/o= + tO5XyfLRAcf3Tzj+WU5dKQkSeY0= Headers/PTDiffusionTopicMetricCollector.h - kPmr2niRnxmnK+WEyGTHpQSy94I= + 9H9mm4on1w9dD6v2HbRADfXus4Y= Headers/PTDiffusionTopicMetricCollectorBuilder.h - sHHk1WUF3Z4/PJSf1bOsvhKM25w= + 49qM9t5OMNjFn1LMof2zgVBDuKs= Headers/PTDiffusionTopicNotificationListener.h - hZTc6cym7qmNF9lVtC5R8cw4FMI= + z2SMFXq+mlnME/GtBTTR2k3ZeS8= Headers/PTDiffusionTopicNotificationRegistration.h - +z4j7niWHEOMtD8Q+7iljLXUHkU= + +RujsaipGlw9TMJsc0kRAo4mLrA= Headers/PTDiffusionTopicNotificationType.h - P/gSFu8kqdKZP1GErdycrZWxe8Y= + sgcAtoSV/Zobq8h7urx+km0rg18= Headers/PTDiffusionTopicNotificationsFeature.h - cOpzyzMcUYS9Rswys88ul8VxKtc= + IfvbLLWVYp877e9lDzSZHPulNY0= Headers/PTDiffusionTopicPermission.h - ToIfuMW32GNijiIbh7HZyDC4MBg= + ONiifzilkrxLuoFkSHPCcoZQIN4= Headers/PTDiffusionTopicRemovalResult.h - OGJ85IHK6RKAeL3lQBmxgeRms9E= + 5C+wxG7ExLIEkdGuclMrU+MqfKI= Headers/PTDiffusionTopicSelector.h - PvLuO6ABp5SdMAkZALFuqj6FPk0= + XJFtcUsutKIPNN7ZPRK5yGmkh30= Headers/PTDiffusionTopicSpecification.h - 6T6nTGbvX3owIJsYdwSEQeIz6KI= + HRmP7ibvQ8EyRPH+bUN02frOqbI= Headers/PTDiffusionTopicTreeRegistration.h - geRzJEq1yPFwf5jz0mNoxXMtLok= + +wRdByplLwLouKuQLLZOSkdTpOk= Headers/PTDiffusionTopicTreeRegistrationDelegate.h - bJmglUQThguySqQY/0RZIdSn758= + TsYnOXklqpYZKd1lOgeC1m4aWWg= Headers/PTDiffusionTopicType.h - mY6IRMiXMRWQq+a/0cO8jlp/wPw= + T87TNIiPTXScnwm3Wy4lCcjz+n4= Headers/PTDiffusionTopicUnsubscriptionReason.h - X5fsyCzYm1au3UTJLOJV547sfT8= + JY7a1EVbbNOLPd1quQl2Eg/7yhc= Headers/PTDiffusionTopicUpdateFeature.h - fGaZOiKa69O1PnrUxN+BIKtHCwY= + O2yWqZSV7Y92U4BhiRqeAG61Dpg= Headers/PTDiffusionTopicView.h - RNHKeU6rwo7Y8caMk40vHJ9WOl4= + OE07/KYnSJpcH45apBnrGvz+z2M= Headers/PTDiffusionTopicViewsFeature.h - 1jM2LY+xS60EBqCGtHhC4WxQdv4= + qJOimME3xrA8NdSmfQ37ClzjA6s= Headers/PTDiffusionTopicsFeature.h - oucx5fp8VB3Ck/BuDgoSHj59a4g= + 2Cu3x5WWMeUfz0tlQ0gE1pSGqDU= Headers/PTDiffusionUpdateConstraint.h - WgubOT3cRcshVldoHPR5oATeZbk= + SCY6UA1rZzRQYHq9ybaBH0mwvRA= Headers/PTDiffusionUpdateStream.h - Q51eU6LsCptV2OMM0Oc1kbntKmc= + i86I8izfeQSdiN9JrsAkhWyB2dE= + + Headers/PTDiffusionUpdateStreamBuilder.h + + N5Vuhvokeroi0V2zEdZArhemJa8= Headers/PTDiffusionValueStream.h - vmLkEfveOrPcHBpupS8osA0+OAI= + LWC4mgeOR50XMz0MZh+Cx0Cn8sQ= Headers/PTDiffusionVersion.h - B7GoZ+3T6mv21Fy27HaP3q0r3FY= + FQiMU6V2P/Bdzp8wrGe4xS0FGy8= Info.plist - 28ot6AJrTEgDwfzxn6cLRxMNvvM= + 8CoVo4a70+80nqWt7xJCHdv1aRo= Modules/module.modulemap @@ -782,1447 +802,944 @@ error_descriptions.plist - 1QALYuZesU81TxtP94AljMMQUoQ= + IgeTzRhVc7Ef0oI1M6pe3UYtDGI= files2 Headers/Diffusion.h - hash - - bom0cUqvhp3IOAr0GNRfdJja1Uk= - hash2 - 1l7CRDgO0XTzqQnx3wXIvwD15oMKhCI7Hck7ZqbZ0RE= + A1zwNtl0yfpty9+eqIwje1Ha+Cxu33jPe/AvbGJVykc= Headers/PTDiffusion.h - hash - - XnD3E9+NbghWDiChKuryYDmAHiY= - hash2 - WT4amhWtg7n7RJGHwb1VxCTQG00Oez5nvTXcTcMjwQU= + NJkvOe7sV9inX4lGI2vh6WglcdzakvOyWAZvlfqGPX0= Headers/PTDiffusionAddTopicResult.h - hash - - gHVMjofviSaatFXSyW9JNlQWXp8= - hash2 - TS5sw/m1fnDF4YSLpyOGfCHtwqBh+iR/Q2gCOQhPNtk= + EKWKQQYimqytJpb6wN8t7zur8vJfV6t3purhOpwqcto= Headers/PTDiffusionBasicHTTPProxyAuthentication.h - hash - - tfRpT3SJrwnlUAWKk1zE5yStHPw= - hash2 - 9B2jRkMEMwVLYmX1JfaVKvnT0hJvMwtFQbymZA9GISM= + lNqCwMmnEWV1lCFH63yQUDGQ/QB12Lfr3497TSPyYZ8= Headers/PTDiffusionBinary.h - hash - - IRp9KLtwcW8Tpll50vOlqTnr5EE= - hash2 - 8awOvRGu2s1S2dUAQkbL2Nt69RPYztoHJuK0mGIRCgs= + pAtK+/vemHjXAdUhXY0+wdumrAFl8xi7AvEpM5NKKQI= Headers/PTDiffusionBinaryDelta.h - hash - - eOisvnXJ+75WXktyVQV47X7+rss= - hash2 - Oe/2TNcVqxdtSucgkdz2vKCacrppBczFbLQlZiAhHbo= + cAdg7jUyyUs3WBnGTxbH8Fp1ZgmzvwBgzDmzejaP02c= Headers/PTDiffusionBinaryFetchResult.h - hash - - wvBjyhM/oqwxn/TtgbMe0EG2/ZI= - hash2 - Fnq0zEK+ahTZSZ6vC2YxZCXg8MM2lAuvN7RWDvbCKpc= + i/6QE+uOhRxzksybPgBgkvMjwoQNwzCuk4CIUs/bUNA= Headers/PTDiffusionBinaryFetchTopicResult.h - hash - - IvwIFegt3H60YtYjfDWclLgvXNs= - hash2 - yJIAGkF6/Npi40M9T+Jttberc+ji8NYq49viqRGsaeg= + kxcCorEeDXRQ2HToGHFLzd576/SgoMD1sK8EtgLMj6Y= Headers/PTDiffusionBinaryRequestDelegate.h - hash - - HEW8gUfkpyJv9fIR56v7vBuyyew= - hash2 - mhf/B7Bv8xhRcVbDxRR2qthwvCO1wzYQ2KTXnMYQXwA= + UrZpuer2fPFUeb+5fMFquhZmCF8vxRrVnPSwoxTaqb4= Headers/PTDiffusionBinaryRequestStreamDelegate.h - hash - - KwS77VkO7OynPdkPDICIvXVs7D0= - hash2 - uSLY8OoKHNV6to7SI8StYOvwwdVzffgDX9+pDiT3js8= + HRlzQsTwHd08PPHEVDdGhBSmeu01WZFHsBFV9cbXT7E= Headers/PTDiffusionBinarySessionResponseStreamDelegate.h - hash - - k5Zben7VlzUyq1GbXRavPpnHbqo= - hash2 - A9oRfiGtK5Tl96csmgZwB/aq4BPzW3nrHPe0wWYQkTo= + nxFGh44y4EEEAeZ1kRa41tz6ej95dNJXgybjC5XKFwE= Headers/PTDiffusionBinaryTimeSeriesEvent.h - hash - - EQnUyyyh28i//lipgxgs018ju94= - hash2 - fcIW0UlvV394kM5GZt+R31MbLOCbU8Ur8HfkfS3vssQ= + C6b93rxmeLvZeqmBD+htM78o4fiy4L8k5uFeMhsj9RU= Headers/PTDiffusionBinaryTimeSeriesEventValueStreamDelegate.h - hash - - O3juN1/1h3CDQQ4OLiur7pBnGpU= - hash2 - yWbQzwQ+EZUScYLb8zco5JIEsF/EwPcnjvX+dynEU0w= + IYJwis0D+uFU4pTz9Ce6LrLfvBkCo/OFt+t7bo1dC3c= Headers/PTDiffusionBinaryTimeSeriesQueryResult.h - hash - - koRVjwmJQXlw2dF2tu9WkNbU+H4= - hash2 - xVeLbB8dLyyPTf7RENK1FBaZrqjq+wR7FaaLnDDNdP4= + yU9zQRr75wkd9rwAE79NPJ1k8UM/gZ0ozbdohJZ3kTc= Headers/PTDiffusionBinaryUpdateStream.h - hash - - 9gicGD1inPa6gTSXRqAjVdK8Jkg= - hash2 - kAC4IkG6w74cHgJqp5NSpm7osm8+pPS4mcLHK8YBDRY= + IS+ge2fuZOiRqsF/VVw9SogcM5ba+qaGtqRUVK2Y49s= Headers/PTDiffusionBinaryValueStreamDelegate.h - hash - - 8mXPY4qvKFwhC7seYe+krz0h3lM= - hash2 - zmm70JtWLjDAfGrW+Hg+1hdhZTUYzgOy163pfqKHToo= + g61+exeX7oOSLyEl8XOePjMxSoariC3H6soITiqqGYI= Headers/PTDiffusionBranchMapping.h - hash - - ZDKqttc6M9zzHagsXFo9g8XB820= - hash2 - kCE6/whwc0QlZKme0bnUatRXjbZlYAMZAYjUI6Slurg= + goiBi1K1nyRy6w9cYVbGyeeEMx5PFHXWjqIF1f2iuM8= Headers/PTDiffusionBranchMappingTable.h - hash - - w3tE+yV1eJmplAlpTXlnSgatTEQ= - hash2 - BNyVMROryypq0QDf2VPM7yoA8fhseG3FfRuQRQISUYQ= + /F0HJRO5DykAz629aZwZ87a0wsBmKUKlH5YQI3bMT4Q= Headers/PTDiffusionBranchMappingTableBuilder.h - hash - - Bo0UbPi3YEKdi8QrRkzv5/jXyAg= - hash2 - S3DKwptXZm4O3wzugFvZztZ8s+8GmOVrqzUbAenQp6I= + Ov5T/qu5/dNQ4tllnsPvaZ9A4d1OJBLiz76Aft00gpE= Headers/PTDiffusionBytes.h - hash - - M1Jnfw1hNGcI0Ib53U9zcbb1OjQ= - hash2 - uXUkViHfJ4TdmJd28rornnFO7HREe/TNquxr8z1o8XE= + noeJjt8j/FGQ6KRyHuNwOBMn7weyEERzf8DQDcEQpX0= Headers/PTDiffusionCancellable.h - hash - - K1St0I86KSn20CSR1hF9y/kj9Nw= - hash2 - d+V0C1Ywc/dbT2BW8XSXOH/JyobjUkZJtRz329DzsNU= + vDcczDhZ5sEOLKkdZ+qh58A5glGLt6E9EKdn6kEyt/Y= Headers/PTDiffusionCheckRemoteServerResult.h - hash - - rgJFAn1BZaXsAcy5G5KJrEnMUWw= - hash2 - 8CDz/xIThztVIkkXTLF4m/mH31DOSSOS8f1W00plYaQ= + mve8V9bYg7x2qkFwzduWxk8wFIK+dmLVBUcmGwjMKdo= Headers/PTDiffusionClientControlFeature.h - hash - - 9bpwdrS7GGm74lz179pVIo/lbK0= - hash2 - /Ky2QFEiPxLKSAIwRNerEWf2BJ9UZJanVVpUgQYmKLQ= + CGsOGc9zQUYKMnP9mOStwqfJ/gjFzFK61yJtOWS3B5I= Headers/PTDiffusionClientQueueEventListener.h - hash - - TX7hq5YhAOlQWhLeXuuYjnymdnw= - hash2 - ByiZ14wNPeGYdu7zTlKQNK5ipVf7h0UaRZJtbbvmvvU= + YqNTgiT0i1aJRBUUhzryEKY2YYLQWASMJLSdFNF4Dh0= Headers/PTDiffusionClientQueuePolicy.h - hash - - XSlTBmdUr8g3vzk6IaTa9rfkSxE= - hash2 - aSaInkVfQwhPGDiaA8z9PzKF9UCVwDerV0u5bBKx1DA= + MpKR2JR0lqht3ueV/XvEY2M2CLhb0rf40bVl8TzfBWY= Headers/PTDiffusionCloseReason.h - hash - - 4NP8EBJYodc7qbJuW1aIdBB79zk= - hash2 - wnNeQfWyv7HNJEYbO/Jr6GGSHYtaAvgy5k2KPa6a/p0= + mcVgGqxDFQx9CL1kIA3q+cwqct8eocI7ayVXFlJuC8w= Headers/PTDiffusionCreateRemoteServerResult.h - hash - - lXIiFvo6+6+zkanzQdwlxRq9r30= - hash2 - QTiXTocmAFD5q2gcVYtefoO/ENMZyspjeVkHV5/Dhu0= + ltZw8RDwqYhptUR0W538ThquYMgIYs6OveZnm+lnCv0= Headers/PTDiffusionCredentials.h - hash - - Yswe6ZeE8pV1UWc47mhDM/vERCw= - hash2 - oRtpJ0w2P7n2wlu/BUrsLqY6koj4uoAr4N+zn5V4FaI= + HVf7FwHHvz5drhP8M0SKLQgczz/zGzzhwfTxQfTN7Dk= Headers/PTDiffusionDataType.h - hash - - X0jXK7KstA98ANZQNPxIX8PTYn8= - hash2 - t567SJPAIgfXGeZNBQLIPPvELrVta2jdn4lMG6/BplQ= + XWWuVPUovPcPfOxJu7IlNebl5Hvf+y3edyfDk+I773Q= Headers/PTDiffusionDataTypes.h - hash - - 59TS6+k/8iOzzVAsZvaljsHGQvM= - hash2 - WS2v6ksJjFJb+hzJOEUWRuuSLl+Ui9fyTSEhOpnrJsc= + LsLy+f5mEXxYAA24hURlC47M2WxYSwrMIib1jLjFweU= Headers/PTDiffusionDefaultSessionResponseStreamDelegate.h - hash - - MQj3IR5A8XwhAVxD6odEfwVSUYE= - hash2 - yedGEJHDqdz3nTuh/xkwiJM5lBHuxKkCopw1x51MpPk= + Tx5en1POL1nuG2LWUIQQJAJUehyWu3eNcSJFxxz4CoQ= Headers/PTDiffusionDefaultStreamDelegate.h - hash - - kn2OYFoVYgbQZU8Z9uK0waIA+O0= - hash2 - rzKPbC0g4rhpTU1Ft1ANOf0yj2alrEltJy2WTY1XMqg= + iPFDLfw+vgecpwNnt/Q8VW6Fq1bENEf2WYV63TIsR+4= Headers/PTDiffusionDefaultSubscriberStreamDelegate.h - hash - - rL2HohjRlnrEkzhB0HaNM8/m3AU= - hash2 - 0jG4Grx7lrOjYgpM0LcHQzWM4zD3QFEQuXkkd2MOPTE= + wUpvggq3lUb8yhP/luJHt+ND70yFaNxFpUwCcBiUjHk= Headers/PTDiffusionDefaultTopicNotificationListener.h - hash - - pWqPn+PFv+aw8bXUBM/23Gd/2D0= - hash2 - ziBTBJTzYQsJT0Htj89e6GGUiyPGBnXZb2nuggtd8E4= + 2iAbixccndqGnyqe8nCOUm/hfJ4lHrUi8nqvTwNlcpI= Headers/PTDiffusionDefaultTopicTreeRegistrationDelegate.h - hash - - +BkpBsYRzZxyPMpOsvLENEOWqoU= - hash2 - v0vFV8PG661Ft2pJno0Y0TNG3M11QBLLNE+QmwmenIQ= + lTy8jnBVIRPIV/iYHVS2lgmGtpdO+1oWNQ2dm70izOc= Headers/PTDiffusionEnumeration.h - hash - - 7IATJXBFV7kyC63oqJ92RUpXNDo= - hash2 - wKnksBhl0WY7q9XrtAtdaPLtnjrZjoxEDgcfNZW1/NI= + 0d1hGNZqWcFSMH4f1c1VDYX0WIV17CWWDQpCkszafkI= Headers/PTDiffusionError.h - hash - - cECQ51CSMTZKw7m9wrI0PDkK0t8= - hash2 - TldcwDX43pUHimigwITWA3iT83Jtwl5kybXmaHghdt0= + RSZV+RQNSj6glfsBd7n3QhwJqhYaKOas8Ho5rdS33bE= Headers/PTDiffusionErrorListener.h - hash - - wcUQ12PknR5uodl6vDNDQ72DwOI= - hash2 - WNfLulQNPuiLWXFN5gpJJXVCsHYbhgbg7cr7ObJ0xew= + wUhpMThJrWlCugKuimRmK0kbZ/6jWMYPk6caEo3qp5k= Headers/PTDiffusionFeature.h - hash - - l318/UIdPwcCgnimVAGGubfOgrM= - hash2 - dmtnuuax0hIwWwR+r9IyJzwSmWNeSeUINUgtIH1NdBE= + Aqk7y7sqRwFIO73O/twnB9TG7BKB/PqxVUikbxkKitA= Headers/PTDiffusionFetchRequest.h - hash - - EWXDvEo6JtGvPODJtVfziNCRgmM= - hash2 - SJwtCuVPugCVJzR+TkrnaQH5HfSy4ki27I2HZRO5Bq8= + HilD4zCUclx4PshGXVes8cD3nXfke0WSzPq+9gsmAmU= Headers/PTDiffusionFetchResult.h - hash - - 7besz8A6wioK/QNMWjwJlaVctIc= - hash2 - nGeJO+icrmvf+QpOmw8U99hl54nPEBK6u368XtkdLF8= + LVshrFDq2KG31A5gm6KlRT0ntNfGoMS016CX2eTF8p0= Headers/PTDiffusionFetchTopicResult.h - hash - - n1swAjpJpvWNa7kigXb5lFG7qqM= - hash2 - /JmwyMyZ/id+Vgu5ilP1z8slyW31LDZRc4HLC9np9ZI= + jaJ+Vpq2FWnzLW19B5kf9R+9XItJBOlEMSaSNuFjYCc= Headers/PTDiffusionGetSessionPropertiesResult.h - hash - - wf69YysbIJf2k3TljvR8nLnhguQ= - hash2 - fQacIcFj7MDgJWjbg8h05QKkjFsnShWofV2qYc6g2TQ= + KS9IsH75bU0BMwO/VGHdqbuFlnGvGAHRtuKbzqAehhk= Headers/PTDiffusionGlobalPermission.h - hash - - hycq2LpFRepTNes5tWImHbyE+ug= - hash2 - YiGp6liFgtYsRc2ATGkl8EP/NNwolCHz2d8LK7D/l0I= + ZeGTIRBhyWydKlQFXTufEiYAtPeI9stVn4s0roOd9ps= Headers/PTDiffusionHTTPAuthentication.h - hash - - 04TrwbzPbN2tf29o6t+4QEOrt0Y= - hash2 - B9ooR2bWvmGoUefpEpnbb6aD8DUnkAatB5kZ361Biz4= + +RNHLW/DegSpyx4qw/kjoVIIoFTxnENRAGmfPYZBsgU= Headers/PTDiffusionHTTPAuthenticationChallenge.h - hash - - xPb2ms4PfUEgQGe0TT84xAVC26Q= - hash2 - /Ofoff52yZxji2wWL5fTxkvPkLoAbkvGLCfl/sj5ZQs= + 2LbRaWQViguwFTlDz+mPlfDFF53L6TZ1VX5ps9/yLK0= Headers/PTDiffusionHTTPAuthenticationChallengeHandler.h - hash - - q2tRtdUcvNI3qGrT1PCxPtRvru4= - hash2 - 3ktKbse4NFRW4JHGq+yL8WLHf8HzD03k9VHRGVMZ2Ag= + /kgkQDewUpO1Htwgm/2wTjAu8pMUg9/n2FB1OuJmBqY= Headers/PTDiffusionHTTPAuthenticationChallengeStatus.h - hash - - womdRtmMruef+Qhl4fW6XdlikHg= - hash2 - 7AAYwPITp1pGRIyDUzaldAFSBlvHfp8oF78WQpTj8qo= + NXTuGJPtTRB5+9aCkUJ3/vRaRROIUhh72VEs6LhpjPk= Headers/PTDiffusionHTTPProxyConfiguration.h - hash - - X9Chg+yCwug1lN6YBajyxKDfDc0= - hash2 - Ydmd+v48fyYfLn7FaMIvaS4a4IPNfIvaKhVRQa/k+Y0= + /cTb6wTMItyQmINsAp5wcPb2Rk1J3KYgZSCthmPjEcI= Headers/PTDiffusionHTTPResponse.h - hash - - APmuxxekiZOjirHbaSvuA3xFNfs= - hash2 - Y/52CRFO3UILqmbFrQkX2NCtD0fd1+7Q+iHQlGbImWY= + 1o2Ga+oRHDw9J7CoyTX6Ny5ITgi+1AOjCvj5T2YNhcM= Headers/PTDiffusionJSON.h - hash + hash2 - 13qELluVvXtpq/W5SEZTqXq2ZzE= + KVeGiB1jiOLKW6LGOWrEkiYKrzBfBsQNeGLJ9L+uquw= + + Headers/PTDiffusionJSONDelta.h + hash2 - P0Rdt9tjYqoTqukwq7T722xH7Vf9eWFobNMwXtCbqfM= + HSFFw0p0Vjx1Wq5cCnBT5imYhwRp4lePX6qOUxJHO7c= - Headers/PTDiffusionJSONFetchResult.h + Headers/PTDiffusionJSONDeltaChangeMap.h - hash + hash2 - /cK6X7hkNZboxNKluxhEUjRWIwQ= + AjKutPHJDIvXgSCGdhHvl3BHC9QpH9bwlVc6zfwches= + + Headers/PTDiffusionJSONFetchResult.h + hash2 - d8e4/qMsgGiwas2RcQMOqWzLJ44bvUXJFNwV66PclK0= + dJ8E+5YMCp+ImeQ6EsiDjxR1f+7gxwI2Ezzh0pUY8gc= Headers/PTDiffusionJSONFetchTopicResult.h - hash - - 5ZJnZTT2CH/QDZpKk0ONXpKcW2w= - hash2 - jvun989ZWLrFghxhCfACDWBq0HYAlh9Yl/3EyrupbWc= + n9dibxRGvPRIUJfhvuYFlge8huW7MhdYXhvc9w9bt+I= Headers/PTDiffusionJSONPatchResult.h - hash - - tINXQYyErrFXqwh3cnlfh3pO/9U= - hash2 - d8KtvIWpd5ixyviEX7ULyqICTlfjcNCD+wE0bk40fJc= + iLQkOP79QPRM6KYj7R1aDim0KlnmL2ls4ZFt3d9+2M8= Headers/PTDiffusionJSONRequestDelegate.h - hash - - PCVS7kwCps6n8WFRAo43sC639gc= - hash2 - qiXUcRdgS7mCTR0z9K7TTHzd8kvS9xiI8T7omS8vLy0= + yd2juwS8e/ytJq7zRRj6WtFifuOsuDTfDJGUzVu5a/8= Headers/PTDiffusionJSONRequestStreamDelegate.h - hash - - h8fH9WCeCRvKmRZpgN4PoxGwXcM= - hash2 - dbHy1dWRaSnNVa1eDMQosdXVHcd8Hipl167boprO0Sc= + V5hV4r4oahxIiBHUDmY/uYZnxlssalQaYcPVg1JJwNY= Headers/PTDiffusionJSONSessionResponseStreamDelegate.h - hash - - 1NWVlpE/WCiY0Evzq9gaEeQDPxk= - hash2 - gF2agnkqc8b09dL5JKVq/Kl6PtJ+NaYFebt68QQMpRQ= + PGWYZoa1NVp7ZYeuc07wQmpd+RGd2SZGUFHjNfTEIVo= Headers/PTDiffusionJSONTimeSeriesEvent.h - hash - - KqcX5DaBkiIwDyh5T1naEDsI+0U= - hash2 - f026jl/9mdUMn103LxtZNjSQaRCGSpxNTd7bro5cxmw= + uSkpHJ35QCNfDb9i0jzJVXE37MQ1McPK3s6bgpsKp1Y= Headers/PTDiffusionJSONTimeSeriesEventValueStreamDelegate.h - hash - - jaxYR2fpU2LZj60PBUkGoxLj5tg= - hash2 - UKewzLh6o80REgtjqPdtlM5A8pgAohYaIN5ktKea9As= + J3tGpr6NiDTgkzIvimuJMF/QYHRvcP5cjVPlkJyyEEk= Headers/PTDiffusionJSONTimeSeriesQueryResult.h - hash - - PiW4Sb/HeTzzBAj1znEyS16e7ns= - hash2 - JwUbmrzo7gI7yIRgdiLLhNk928jEoqI1c7CJZ8vF/TU= + YPUQy8I9JLz/DLADhCOEr+V+8fZdPNMYDK/b34Fz85Y= Headers/PTDiffusionJSONUpdateStream.h - hash - - j+kgT9TmBDSeeUhqvss6orxl+AE= - hash2 - 3Acr5+Yc80p0yEi8xDBAJVmFnL9RyTZLJ2vGAE2nvEk= + Cf+RhPVGELSJPVNwj3wXKutO06CnjAKXGm7FzOIUh1A= Headers/PTDiffusionJSONValueStreamDelegate.h - hash - - f4o0O4ha63u/IckPbxgF2hi8ARM= - hash2 - M604wVcVo0BMNjlAbNHev3CN6AWVqCyvvEC9VX5zOcw= + w8Qp38dEwbILAikQpwwT3ABHp5SzATppP/aE+yG/DT4= Headers/PTDiffusionLogging.h - hash - - rFCKP77Z13fl1Lqhyl8lr6PcRMs= - hash2 - Iky6l6bITC/5VR+ildPxe3mxDv6Rzs4kegA0v2hfHwQ= + ThkCoh6S71c2+ugUpmxHrw6KPAGYvmxfYmyQiBYnewQ= Headers/PTDiffusionLoggingDestinationConfiguration.h - hash - - 4axnkOhVG9/3OVR3yw3cr1owtyY= - hash2 - YhPj8YSVacrCVfYKLtS4UsBdWqXFp1dHVzB/J+rwGV0= + e9rg3b8uHVVAtm6EgeUGF5DmygglLaseXRezI8GDFK0= Headers/PTDiffusionLoggingLevel.h - hash - - m0qdaXuRy1UIh4w9lBaMnB3kIU4= - hash2 - zsDV39ITI2hMqCOrSkGCNnComSTQ1ejnXiHP/P8ToZw= + IMgmWb6Gac/ypapkMV7cwewBwIHc0G+YQreT12J5bcQ= Headers/PTDiffusionLoggingMessagePrinter.h - hash - - spLTiRckY9p4svdpQ9fnqNIKW9g= - hash2 - KmsToaUAqvQZFz7vG5ihCvBlkEgvdZ4e2h41jk0NCP4= + 9FVZ1A+guhhf3gqlsyeOsLQgL6p3DET0arHxsRaRae0= Headers/PTDiffusionMessagingFeature.h - hash - - TTsgX8TESXQMEA7KRqHoSCIfjUM= - hash2 - 9/QU1E19rNmjExft85HLvIaCZw2JqbpNgDfP2Ak1SPo= + qavtZ3Sov4MOzk9EhtqMZnmqzMlIu5MNHRHkJ+7A87g= Headers/PTDiffusionMetricCollector.h - hash - - Q0hI/n0EHo+6+kg2ZMhq9zm9TxU= - hash2 - yjnIq+jiTS0KByV1wOQx7C9FTrrpS6Qoi3BDmEMSArc= + at9MAzNfEAlkNyMYo+Vrj8zZc+oX/OUy1STHg2ODJG0= Headers/PTDiffusionMetricCollectorBuilder.h - hash - - yQmzqI6Di3RfWUoGBKz4RvnEedE= - hash2 - ITjrz7XUnCELYwMCkInz99crKJ1M6JvisFwZzJZd0WY= + jrPanMbMursCBYm/a9MLB2ZUrs33FOAh6GmWohpkVn4= Headers/PTDiffusionMetricsFeature.h - hash - - ulonYz17A9TEyp+Wdbeg2UTFN4A= - hash2 - 0TiUrWOPBvksneZ5pF5efoyKniVlFINOSiojkFPCekA= + alYHcRjQQyGkaNLYcKEprHHqPRffTP5ohXFK664HBv4= Headers/PTDiffusionMissingTopicHandler.h - hash - - jJ9PsG+P1IDcxXLERBJYcolAZEw= - hash2 - z7MsEv+goIXU9e0bQ8PInmS8lEO9cg3ir8ZN4r6JVcQ= + uKY6CZZtWD/Q4zd7jzpKOBBW9Ctcp5pGVWtq0BiXYpE= Headers/PTDiffusionMissingTopicNotification.h - hash - - f+zhLyj+cKWNZWfwqYAIPYMXn9M= - hash2 - X02QdNUXH7P8LUOUFyPpXQLE1QIjd9w267lvAHDEuQo= + p9DvZjlEiuMGCPFmQRmWPmeRgF/K4mXoeb9CiYUJ9Tc= Headers/PTDiffusionMutableRecordV2Model.h - hash - - rX77Q+p6Z24SD2B1WwDJaVT7OFk= - hash2 - Mp7TJN4Tbpg+yiWGTrtrmrmGQKPoPUURWlZ0BAvRNeQ= + eKCPCPAJOPw/EeCVLRs0+4MwNO+3dnzJFMFloj6iJxQ= Headers/PTDiffusionNumberFetchResult.h - hash - - vkpfm8kei5FeQJjA8TvBzF1NJ70= - hash2 - F+JSs70HK7RVrn3vk37zTYx35LlQce1sHP8yY38SqIA= + ePnR6X9EQQCxk6Ml34BDOU3Z3wQr3NFjpTv5YJOu8sg= Headers/PTDiffusionNumberFetchTopicResult.h - hash - - 9juTPAfvGmI/eSDqGWc9Pe2k9FY= - hash2 - ryELDJSZgI4kWmcZTOFGn6ldwfeIG+yCSfOEXPK8NG0= + MJkMq/VBNbwbliRdP7PQzzqaV2cpDgejdTCwRVlOhMI= Headers/PTDiffusionNumberRequestDelegate.h - hash - - MaDH0rclSd1xFLM9nY2nAH2LzBY= - hash2 - 2fNFFT1Bu39ILrHNkzlkYcP3s5x8rrrV7l0UNqQ32SM= + l6d1NKLuIg/jkLs+dtO7fU0qGD9l2msTXvBR+OXJlfM= Headers/PTDiffusionNumberRequestStreamDelegate.h - hash - - DHwutv+bacmUxpxcu7owxikDewQ= - hash2 - uw+qq0fUmnqEpfcnKjPwQFId3k1u1SVujVOmbE5OC6I= + g5hXaPHIFRxUL0ymBbdflCvGDADrysbD0RuFNNMvkvM= Headers/PTDiffusionNumberSessionResponseStreamDelegate.h - hash - - UFwJKoii3V/0nunrBQGderRkUFc= - hash2 - G1aJVh+sBazHyHqgrCGzgi5aoy0ej9ceey9OMkMtAoE= + raiXClyo4QkZHwgNX9sxHMsifz+hOPIevS8r+BM2LYc= Headers/PTDiffusionNumberTimeSeriesEvent.h - hash - - 0qbeP+41+bMjUTgdEC0cGT9P01o= - hash2 - ntYgIg8cExcfFBFowEyO+RzYSJ4L6h1fEgHZB2fC7wc= + buP5I0PdBX4HpfdNU7zAhtlqoFIC6Uk4255EZT+4ZeM= Headers/PTDiffusionNumberTimeSeriesEventValueStreamDelegate.h - hash - - u/s/wzNKMdkxsmzwoAhjiE33lPo= - hash2 - t5ih4v+6zF7dLNPNyptkXumB901ymB+rIq5ooMpNuzk= + QzyVbrYahlkD7P3l6BBwuZTtq6gg909b+FWh/E8DycQ= Headers/PTDiffusionNumberTimeSeriesQueryResult.h - hash - - FJhjeCt9g0rbkhCvc19H+cu2D9o= - hash2 - oVPqdCcXySKbsRe4cwFQuljafdag8G6QYsehgOMQkqg= + o0YnCbBaElVPGqVeixYvfJmLbIkeZqcc6cYStGKciPY= Headers/PTDiffusionNumberUpdateStream.h - hash - - xMiLZqNEjNcJlieyWRVOp6wHijk= - hash2 - RcYHynYIxmymcU8SOZo+79tVdjxNFILYYEUeNlhYs+c= + XtOI5eXbcMoWswaxbPu2Sb/gcDcQH2Ba8ydT/jd1s6w= Headers/PTDiffusionNumberValueStreamDelegate.h - hash - - UFSzUpxbZElKE3zzbkkG7LpoigI= - hash2 - iWpj4aoRfuwWOYX+87DF1zRQG+5aGepikxUd8BMf7Gw= + oqdIZ5ffSUdNhSFugNosZmFD5I4PB0YhlEvo/Ki48yA= Headers/PTDiffusionPartialJSONUpdateConstraint.h - hash - - 4Kg285/tvd0sddVplu8XznOumGM= - hash2 - XvTW0FeO0ZMA+y0hnyr9czEI6A2l9Mtc9p66H1a3nz4= + Gx/KwGDJhT3MTsmouAcBa+h2sdc+pgmT5lOJ7Z0+WpM= Headers/PTDiffusionPathPermission.h - hash - - YduEOO1T2Kmw+7Vv7VGa0EtFmSg= - hash2 - DTE49P341kYFb4XdSkbVCWZlkZFLHAPtz2wYHjHMx9c= + ztut6MW3+tIFlkaDGPfFqhEu18o34/PdheiuLMmlPs8= Headers/PTDiffusionPingDetails.h - hash - - s/YUpu02id3IaJL0naBecz13Ndk= - hash2 - 9h1WRqMX/WLmLopcGjRYGsdcI40MMGXNSRVClRKQWHE= + P/sgqX583duAKsSN2Se+yLdYLg7yJfXgt1YxVAzUwzU= Headers/PTDiffusionPingsFeature.h - hash - - ToR+BKQy2x1CjT7TWkSqkE7OxK0= - hash2 - KlNB3eR29yLgjbfeZxGPhT7PH8TzrEfv/qJAEHGn5WY= + PbJAv2JR0fReNzMcqERZEBzv5qj/Qyk+wTM2pXNUhLM= Headers/PTDiffusionPrimitive.h - hash - - nqrWaohoh0ja6D8iSB5EogVkhZ8= - hash2 - RDOFmSyUPfDSo7HfjnKXX4q14tRbZh3LfZT5iGSRBK4= + bIam3uhW5uzsP3cqi4S5ViKZxymJCHO0CWoshg1Wfss= Headers/PTDiffusionRecordV2.h - hash - - rCmHMFagwu8wmS3Mg+Q8gNX42tc= - hash2 - McJ3u2/bLoILUu1hW6LoALw0XXbX0OPaMYBMpvTtNb0= + aSFO/taoHFK7narpCeO0qwgw8Gf7MahfZQgsF7Q1bmg= Headers/PTDiffusionRecordV2Builder.h - hash - - QEgiu1leq3oUSasXj9rVYB+ezcU= - hash2 - kbqO0aFLALM2TPc/a2N8U/8+yS+vJTr+vwpRFJt7+PI= + ylx/BznpVyZpmeK0baGNKlRIiHhsTn98Q1MviX1xOKQ= Headers/PTDiffusionRecordV2Delta.h - hash - - Z2XlkG872AlE7BF2yN1gK6KJYGY= - hash2 - L7guOOpPIRzjgyJyBgCAt9xpBokenaaWAcwKZAl8D+0= + RtQw28FphjU93+/CQ+BkuIrvqXna86+ERPPii/ViFYA= Headers/PTDiffusionRecordV2DeltaChange.h - hash - - amKMt7zzKuisiAGSS4o/dO/gfiU= - hash2 - Z59mhojsI4dH4L+JBXi4lXrBoo7T2jnMdWwY231V2n8= + zw2jw2nh24u++nJ0yqnIR2ZHw/y9p8LBCgiTMyl1uSw= Headers/PTDiffusionRecordV2DeltaChangeType.h - hash - - OsT1NCWxWtKjjBpy4r1q0B3F1Bw= - hash2 - oge3Z5lBEvPBMTottPwGbY8PxT1lN41wyWLJu0zT7CQ= + nhZeQv+8V8F0T3yD0yEMRTHbuCSijA+ElrzJntbAmZw= Headers/PTDiffusionRecordV2FetchResult.h - hash - - INjNAOczxQqEx4cy41iwA7LWpZI= - hash2 - lO1DT9Vw+l7o0xmjf2r+jLp7zca4eNfThh6Z/89xI3M= + diNYpNy3TVUtqHj+94PVRN8At3J3Q/pt1LDUCZSZe4k= Headers/PTDiffusionRecordV2FetchTopicResult.h - hash - - TMD9NYUqaJtfxtXYpEUiQ8ABwtw= - hash2 - 1YAhsVu5OkFmpdc4k+Vj+TmuItfYGUXvcVTqKnKmmbU= + qbpi0nD2XE/HoYOxhJdlkKfnSe+M3oPNShttz7/+g+c= Headers/PTDiffusionRecordV2Model.h - hash - - YqTtIkx9UL9qI3MgaOYdE1Pqw1A= - hash2 - bLtqQ/gSGKmNuoXNIavImap4bRfH3X2CsPMraQAYW8Y= + az673ClIY13QToxNdg0k6eqR7Z4S/goLNRYpz3rY6KE= Headers/PTDiffusionRecordV2RequestDelegate.h - hash - - 5tja6Pl/xjl/EMBW0e7uHg9d8CE= - hash2 - OSRQjy/uO+BV9b8/q0WWORAzeFWd0NMEe+OQazPQf6I= + eDmg0zXrk3siHiyw54EJXP2LROZtW7l5oercgpPRyhM= Headers/PTDiffusionRecordV2RequestStreamDelegate.h - hash - - V/Jv9xOUHnVpx96N1WiFfvG4gTk= - hash2 - A+d/1S63fEq+qUrxLvTkl6kWAoDqbMmx8m4R90iRyg8= + BKRQ3kSSSeUj4/sRB9hJwYIJGfFUR5w/JYiEScznJA0= Headers/PTDiffusionRecordV2Schema.h - hash - - cp/B01S2/f9tf7igoMi6A+0O/Tc= - hash2 - LeHNYAN0jUEsWAzXShrkmLzK7nihrbZWTvhHwIiYV6I= + 8ABqdXMSVQNoMU8L1+sCVqoTAVwvJi5sr0u7Y6f9gCY= Headers/PTDiffusionRecordV2SchemaBuilder.h - hash - - ZhIcXpXr8oL0a1OLwiwrrTcYjlA= - hash2 - B/O3kRZU2nSBNiNRBfvT/Ck722xsTpGpyW8LCZ0JQ48= + nZT4PPAuwhd81kmuDDjL/uPCfktlD5nw0hMKI7TgqDM= Headers/PTDiffusionRecordV2SchemaField.h - hash - - /jeQVC5riz+T4TfX5uvh46LwDDw= - hash2 - PQFKoZ9EWYYbMUPczmRdgR7VYQOWgfxJ5H44kPqragU= + ez5vtOlO+1+LHixd3dXZmUgQhMmC/r+Dq4PagYcoSiM= Headers/PTDiffusionRecordV2SchemaFieldType.h - hash - - rUb1lnPxYyaoGiVc0+kXFJ7Y7Tw= - hash2 - BgqzEJ9b+COw4NHnBcrF3U2kmdSEfFso8djLgYBdV8I= + rjxh0i/TVcDOTc0/sqFzuyvtxsTpUEQ2Qx6E25wasAU= Headers/PTDiffusionRecordV2SchemaNode.h - hash - - QRe83a+5IaaOgHgPRNl/i6vwXnU= - hash2 - rNKswsjiWBWhSKrTBc0AvalqNc2R9/+GGYTkqnnTccw= + cIkGHujgRHlv9TRNRbjHV0NypPgdDunXNA1c0NTK3QE= Headers/PTDiffusionRecordV2SchemaRecord.h - hash - - TnFwYILZgo+/FVeim2AOace5hCw= - hash2 - 1QPnGg0QUxjNFo6nfayD5yrhYqQWFW12jy2AOez9DQw= + OaWvao2jABRf4RvNs1I/dt8zomyo554rjFmP2a4pup8= Headers/PTDiffusionRecordV2SessionResponseStreamDelegate.h - hash - - wHWllniW8bHydKIMRghh+B9pBNc= - hash2 - UZEKnK9sZLeJnNnfOiddEbHpfT7InkXTXb8IoKCfB34= + GltXf1PQU9F3u6iD3MhndXpDuxNbGU6cgqwyWFnesyU= Headers/PTDiffusionRecordV2TimeSeriesEvent.h - hash - - 8nW8wilb7VSbwoirdb8YXPUoXwc= - hash2 - C0gL/TPg1RM04ZSZZcwO+5RzfB/6rLCGfHiKELYhWEw= + S1QB8+ULPUp2unzvvgj0XeX13mqDnUhkc/RguwqSkZU= Headers/PTDiffusionRecordV2TimeSeriesEventValueStreamDelegate.h - hash - - 5eqp6nK4/+8/p3Iaq6RYs2A67ac= - hash2 - IOqyrhBj5e27RGZv2/zPLFfPzLOa92HhtnJSL2LizYQ= + 56eJs8aqJiQIWHm6ktcVHgH9qIN0dPbaKX7ugi82W+8= Headers/PTDiffusionRecordV2TimeSeriesQueryResult.h - hash - - Pmj2xpyYBWs4WOlPNMtQDKFt1po= - hash2 - ihMZz6aqPagWix2ilZhrNixtPBVz1J5gFUSx/6fHGec= + oSvxiNQA/o4xrZNIDnYVjdS0JhmfUErRdy5GPZH22G8= Headers/PTDiffusionRecordV2UpdateStream.h - hash - - Y0a4Rv+Rjy+bPGlHY4MaiXDvzgE= - hash2 - kN0sogJm8z97fIOzzywjVeLouSGRSnj3QIqt0beQMzg= + XoaxmflJ8P6lFAy61BUszRGW2RCvVuNT2RYSLcO9m4A= Headers/PTDiffusionRecordV2ValueStreamDelegate.h - hash - - QVYIHzmU7JnguRZStV2xfYFe+SM= - hash2 - sx3eyoG8xnGpUB69imBnY+qiAg9JfVw0ggYzzkgDbcw= + OBSkyOcPqobhjr+y8i3yPKSoITaKaC//yLmKPYNzoKM= Headers/PTDiffusionRegistration.h - hash - - LGwiK+YsT6bBbaxQbi07AVArkms= - hash2 - /fw7FyAdyzmugjU4+5/vS7TnapryqyZAyYK1/lyI908= + AC+hSXzVgK55KdMemvMGgZlTU8gsJI0HGM2M/NHOIWc= Headers/PTDiffusionRemoteServer.h - hash - - tP1e8puvRCc3D98M2wIel8k9sms= - hash2 - puIFVIDvNoaDo929UvzfQPhRzHZTtWkqN/WGZLy6fB0= + Ipl+s0Ir/pp3eT/Vf26jTK5/0EeGNGiGca3CpJB0BHc= Headers/PTDiffusionRemoteServerBuilder.h - hash - - dGgKIOzLscYH0Kd+q0Efp8IjDpc= - hash2 - pUszGkxP+a/JbCZefTpZSGIot0KsA9enBe/25WdmYcY= + gaUUPE0U7WkpNQknazdOYoYUGA+KwwLf4yFEY7b7p6Y= Headers/PTDiffusionRemoteServerConnectionOption.h - hash - - ITjyZnacokkituioSBE8DhLXd8Q= - hash2 - NLenmJCy6U1pZoVxiYN2Km9JjN4PorWO5axqXSQYPws= + WbaMZD+9MJLszFhmcrzVVgTV5aXg8J02HUSzi17YWro= Headers/PTDiffusionRemoteServerConnectionState.h - hash - - YKFO+vf7p2q4zct1FRpSTINM89c= - hash2 - XqnhvAqC9NYx0svsYXd4rPjtfOzsWTethpkUgb6Wgk0= + swlPqwPPRaULAyqedgBhRD7w8AeTXogdlYj0s9+XsR4= Headers/PTDiffusionRemoteServersFeature.h - hash - - 3Prda4oNHqXUzM+2U22Vo3u2sRM= - hash2 - jJEqREhxVAGRZkUUJbXwi5q6iFNaUmUVffrMPWcWcec= + y1JIOYUAYENRX00Q2zF18/ETQJB2u7Re0zFh/trDtGw= Headers/PTDiffusionRequest.h - hash - - iBXHk0CN0V4H9TfvFlQgi/TXa6I= - hash2 - 1D1r3iVYAShdtGkw6SdHcTsXrHIsGXNBzcwzx4FHMHM= + s/Lfp8u/pzNHOKd7KCcxwAo965kFmnkS3Nttky9ew8k= Headers/PTDiffusionRequestContext.h - hash - - qxw2kG8mwhMOqbAw9ZcSwMgE6/k= - hash2 - PZ+PEV2ygYNQAcIvjDt2UmELSBOpW4/IbwN5PBxrhPo= + OzN0x0dcrwv87qN0XSlSv9wvadmAG6a3EAPIQAzFH1o= Headers/PTDiffusionRequestHandler.h - hash - - XmYRoiMjYnjmqFsrRj+Ocq9rZdU= - hash2 - rgOHp1VCSIkXw0SrmaPmxjlkBTRbWS/L4/1JRW8Jaac= + hHNsgq+E54KjW35ic5fMiX9hg+fy+Jp7w294MMZ5/VU= Headers/PTDiffusionRequestStream.h - hash - - qm5369ZeGnWQIKkO1xGqW93f0zM= - hash2 - NuRPmImge3Vf3x+Xl8pIGvRCmpdCMzk7vPxtX2upPDY= + i+fPGPXRnmNmFDIrIQsCd71kWzM8cLXjefPbv0RADko= Headers/PTDiffusionResponder.h - hash - - SQPU0jg5rEhY53sQfJBDoMRLoeQ= - hash2 - riQyM5q6dLJHwPJuh7jIr/aM+P5biTeOhQPYxV7sHy8= + DdZ9X11CvjQXFliHm5mH6OFQIRqxn1+CG1dST6Fgs+I= Headers/PTDiffusionResponse.h - hash + hash2 - UhIeKy+CRs4T2zTGFphGm1OzMQU= + b+htxBGWuJdDzP/8in9NRYt7zJ1xlfqhtMYzjW6NdqI= + + Headers/PTDiffusionRetryStrategy.h + hash2 - YNRB/Q0hMT4CGHdtVdYblO6/1ATcgFBlrm95Z5jvsMA= + lL2ackpqfPu9o2BKp+iBdKHIe4dUCFXGir2cl/XHkus= Headers/PTDiffusionSecurityFeature.h - hash - - r3/W67iYxvPHeteE6OMX+4ROxLU= - hash2 - z6qqOhPFPZgIdA3SsZFLlrGmoSBzrg4Vach5QEHDqBo= + 5oF9U+VlTM5jHlNjiAYFybHqmtMD62sQ8520TCJQvGw= Headers/PTDiffusionSendDeliveryPriority.h - hash - - 5verWwhZ36ChGa7vv+1M8PP8Rt8= - hash2 - P8lUuY8dzJotFCyr1YyOifq4kmNYZQLYIfHIn7kePp8= + bdVgIqZ1mvNHklE4in6f4AxN6lwODQtF5YVXogMZZBo= Headers/PTDiffusionSession.h - hash - - K4ufrMdrBR/6eUlFVBsL4YNlpkw= - hash2 - 37UpfQ4QviJPz90/H+eVkIMrL6ff+IalOAKbA1ZqXs8= + aOJbvrzjp7w20LBbMFPr3qZdrdDIsV2LGlh0osphwzE= Headers/PTDiffusionSessionConfiguration.h - hash - - cjTtORO4pfSJOpVygL/iuUmTLfE= - hash2 - H2cxWdtltgeyiqCyQy+7NveGUUoVb1SK1R8vOLQXYso= + 7aUfnLdjsDDbA4/82urX+3vutpLpPy/xWlFa7lLmF8E= Headers/PTDiffusionSessionError.h - hash - - /sDYNWbyKXRgx2xjLLXdtDk8uMw= - hash2 - +Q5rNi73pWx6+q3YhFJpm9hO1Ba1VWnriAFZb2OmH9g= + 19bGFW3lh3kbywHdtSeP7A1ptR3aGhwd5bJnTHSBJdk= Headers/PTDiffusionSessionId.h - hash - - oyP1ZP8tiqVh+RtjUsOFCD36SbM= - hash2 - J/+vE7jn++HZfXSRf9mx7uemIupYVhtRtFmOl/crL0k= + b/pdRBwslaHtVtVZuKpi8dhStXVQfObJDdtIenPBrSI= Headers/PTDiffusionSessionLock.h - hash - - +pRVtSlOo4nwFJAxLx7rRQ1bFBE= - hash2 - 1kVzjUr19mRfH3mjq/SDmQE4QUtD7NMXRmW2V9XlTEg= + HPdjKoKoj/ccqAOaMUF8naebbfopaiBV2Dwvf51t0h0= Headers/PTDiffusionSessionLockAttempt.h - hash - - zDG2rmmh4HQqat13XIARd2gpyp4= - hash2 - 7Qxg9Cq8bB9OGOhGfm7V9vXpLP5/AvmvkOx+UDTeWeY= + Oy4bs7+zLKvX06wSTJosCVqwgMJo8MaWn6jP26LULQY= Headers/PTDiffusionSessionLockScope.h - hash - - B+/qZhcMyw+RQI5MTzMR+SKqF8M= - hash2 eqwbvTvGikz3/e4eogPGBJUXeGhNV8dQOmB6uWum7qw= @@ -2230,681 +1747,447 @@ Headers/PTDiffusionSessionMetricCollector.h - hash - - r/Zt7XdN0mfHzv6oKpiC0OXqrxw= - hash2 - NsRO+4UBUdido/Z4IGu85JgySXjhmKQ0z3a3fztteOc= + IozljUE1DL7DVqEfrmvrzMIBY58UR3Pes6siIjF0ueY= Headers/PTDiffusionSessionMetricCollectorBuilder.h - hash - - talQ04uHilmK6CHOlES9BepGWkk= - hash2 - P8p+TKpwml2q3JCQw5855Jb/pZ0KqrRgL/MHqRBCKVg= + YvDv1NoWTEx24p9c++JGmfEPTztjsedlbKeJq3binMA= Headers/PTDiffusionSessionPropertiesDelegate.h - hash - - Zmm4SJs443B/Ed0GSpRps6zTviA= - hash2 - tzco0p9SYApWIime3+WH7JB68fbzpeWaTSEJYEMDqVA= + lpHxU340gS9s1pTZJh1uxc/NWwRVOOEfyDZZrCtXG8c= Headers/PTDiffusionSessionPropertiesListenerRegistration.h - hash - - T5YzTXQWyd4mNDDwbkWXSNh9tQg= - hash2 - ywHpN7WRBoxH1vff8wRStNd/kGYda0DcFwEmRCItZsk= + ZuLNBjdclVDGgLU16qB120DnY8LqtClq9IaTCzLO5/Q= Headers/PTDiffusionSessionPropertiesListenerRegistrationDelegate.h - hash - - DG9AN818s/C+5ehY39mIwXSvCNk= - hash2 - 4Z6fSIhnwcSYiZR1+/p6cZufp7LeYtHGgs8d47DzK1I= + aLpsJ4rCC4TFj3icKAw4SwCUDZdSp0ObohPJHsHdwm4= Headers/PTDiffusionSessionReconnectionAttempt.h - hash - - R91QcHqYATJhv8hKoDoQbWbdMDo= - hash2 - YO23M6KlqvkG/Y/qN9anZIQK3J7cSKAXr5Tl7Tgzp5Y= + FwCXyjswE7Hj5EBrSFNyNVz2oQPeumukE2QyFN1HAfs= Headers/PTDiffusionSessionReconnectionStrategy.h - hash - - PrgSLAcm+88cWPctmusCFsADB8M= - hash2 - M8tPHVUp7N0ja0SJC+irr1LZg0YMkk5Dva7CjOYA30I= + NLqSWJnGyHtxnG50P1sSHBxi0zlfR5vAaroCavTecEk= Headers/PTDiffusionSessionResponseStream.h - hash - - TFbOIDOggRw+LezkWA7RLjZNDRA= - hash2 - /JXUQZQL1WH4zzMtawBxc8cll1rsR+/N1043M/QW3t8= + qs973ob/v5F3fAsMKMRZqI0I0WE4/KmtBZNnE5RLKmM= Headers/PTDiffusionSessionResponseStreamDelegate.h - hash - - fl2RAQgYo+kqHlgIUD5JDuzX/VA= - hash2 - DsTHLPRsTPZg6QHzyclrZ0WH/mRt5v/YwZ7g527/lmE= + QRNr3Gse3PIgrHWR1VtdF+d9ii7ViNWEI64nGCGsO0s= Headers/PTDiffusionSessionState.h - hash - - D7PBX4cf+PMCbTETtIfiwDZdUs4= - hash2 - Kbakvtxdu/fA43Ed/BjK0hVR0FVT2b8/D49em6+wZUc= + bYxqFaSEGy2nLELcDV/7vH9XMaslTroU4F7oCbR+vg4= Headers/PTDiffusionSessionStateChange.h - hash + hash2 - kH2ACmvz/J2676PpkVCDrOmYXoM= + M8/yWmdsYbCW9lX6pnhwnSfd90o1bVCft4s507oUoVE= + + Headers/PTDiffusionSessionStateChangeDelegate.h + hash2 - BBBArTvfiEFL6oiFj/41zNNlT1njYY1vYoI+nQ8bMAI= + am8jQ2utEtfiQO3dkpzlbQUNo58aKCH5RmxE2M8AuGQ= Headers/PTDiffusionSessionTreesFeature.h - hash - - yLxcurXzmLYnoF40EUkeQ1Wjdn8= - hash2 - 6voybta1zQJcZyRA/HJOZchUhPyf0Vjcyo9psnJZDuA= + 3Fw1/3L0ryyWtnHJC0mm0jnAegdY0NrSL0G2ubsZmE8= Headers/PTDiffusionSetSessionPropertiesResult.h - hash - - AOCaIej6BlQ6Lk/b3gQguGFo7vE= - hash2 - +IygM21qDTih0RTOpjmv8oxit4hVzTMwtNgCyCH5NVk= + ZT4skgOofyOjtRCQdbFBFhUA7btBk41Au6JAgxDW7Mc= Headers/PTDiffusionStream.h - hash - - rDmcy+gFQLG4u371AOzTrt8fnZc= - hash2 - OquMbs9jXcZ0/fVIvH+RsTHImbCwoPpN96YYPMLcIhc= + Z01BcLpUXyCkNl1UKzeDgsaGdh1Nmf+cQnTJRlIIjdc= Headers/PTDiffusionStreamDelegate.h - hash - - ePW4fuh5cMZxSyFRc3beuTOlpxg= - hash2 - RTKGdQk1l3twac14AsIuM9dC8e5fhB1P0CaJH6nHNsI= + OKp/dnEU+OLBVLI8cKIobbewMTK66QNLgSRWn1EwbiE= Headers/PTDiffusionStringFetchResult.h - hash - - GIweI8KVClgVTBpcOBGKqU2Q8OA= - hash2 - iScsJF+yUkJMSMGb+P70xaiKit/RnocgutNK6Eafjms= + EZgkv0bTJ7vbx4q4lXOQ3uAE7FzR+50GbB6MpmRBuqQ= Headers/PTDiffusionStringFetchTopicResult.h - hash - - 7qisXZm9jhg0Y5fMDyVWzx65oy0= - hash2 - yRUHXY9ID0T+cHhcu05vDj/Q8f5XewKStovmsJJfg5o= + PryoSKA6X0dRT3nG38guKaVEs7hQTcOA+KnNa16A0Qg= Headers/PTDiffusionStringRequestDelegate.h - hash - - EN/WRMBYCSI21ohKnQzSsENswas= - hash2 - sVm5YGWk4jbyYv4hlks1KQPYZm/Wj9HB4JtBYLrjfXw= + FoWCrvy+J4zEJgDnyd6ze70Ed4SxockWJgBaIfy3Uow= Headers/PTDiffusionStringRequestStreamDelegate.h - hash - - Sbfe0TtEgYds3b3MYM6tqQaNhXg= - hash2 - NldLf7GUHmJTWAuOoyjAqyfDQ6IRpqKW/rw+BavdQs0= + aRkqgLeibdHPAQ7vIGs2lt+b4/DYXeyt7cxD3dOVvQs= Headers/PTDiffusionStringSessionResponseStreamDelegate.h - hash - - 74IsG6YvQIagZxhmwxZyKJGxw4w= - hash2 - dIXuP7RC6K8KO1689SrR5VijdM4Guiml+63AgVu3oDE= + k+E/xL+LibLAq3rTIKYfaQKDpX4qJnPV5K8pTdAbikA= Headers/PTDiffusionStringTimeSeriesEvent.h - hash - - 1NQ2QsLa1qI8t2LXjuem4yF+llQ= - hash2 - FVcLjhf5UzkYCTpXLw9ypb4uPWPs9y8O1szJXXERdR0= + U90vJc+4gDM/XBnh6A+OWV+oJjacZKxoeVDWBnSu6+s= Headers/PTDiffusionStringTimeSeriesEventValueStreamDelegate.h - hash - - 4qsI0k8nCf4N+Nz/FMynawnaygM= - hash2 - JRu3roXY1J+cuVEwUYMCJnzDaalziDbiFvmMqu0sFEQ= + WkxIsa0sxbn4Opqafg/DZGdkbgAqFKIl2RTGu9EfzUs= Headers/PTDiffusionStringTimeSeriesQueryResult.h - hash - - zumPNOhfHhpy4bsA5zSFE71XvJQ= - hash2 - drSETpxCvXvczEAlpPKawLglX02OHH/GPatIi9FbFR8= + a+Aa8ogA/9JA8BEdQbZ1jrYbzxzn/l5m0T8RP3kkQt0= Headers/PTDiffusionStringUpdateStream.h - hash - - s7gAMaCr5wMoDUpdrY4/YQ1yaJM= - hash2 - a9SXqo11AZAX3NJne0XJt1649MIf4ieBpKn8y8kzMys= + KLQPX2pO2fwi0d3ylQaXKx1UswHPw88y2gpnmU6SpGM= Headers/PTDiffusionStringValueStreamDelegate.h - hash - - a7UMtigs/ys7HE/CZ8/KHEyHWsQ= - hash2 - rYE908yYBw327klyOltj8s7/3zSIiqzZ82pRuzbi1kY= + j0aubzfnDFx/qCJExG0pCXfOE9j62guTMKIZBvl03AU= Headers/PTDiffusionSubscriberStreamDelegate.h - hash - - wDl6dH5JGxIwojmEV1M/8prrOgU= - hash2 - itqgplYgEs2CoIpFuF0TeTAvtLGMxrP39cEw+TcjEGY= + tXbsjZ/Fz4jHFGUL2oai9jkm6Ts9zdbqDbzzzSWiBFY= Headers/PTDiffusionSubscriptionControlFeature.h - hash - - coLOg32pomsy6EhJOOH505Qv8NA= - hash2 - g/RudrAUkgwmnIfzrdBMeA72i0ipTmt4v7DigQ+j800= + 577CUsWVEXOH403zyribYpfeQT5CLxH4e3AnLOeNTxk= Headers/PTDiffusionSubscriptionRoutingRequest.h - hash - - bh6oZPo6Q9ckwiOGwLtgxhRJf1c= - hash2 - ypi7uoPa9zoUHojlKPyocBYMB37JNgezBRfjOIK4K2Q= + 7WtOrCkqrBKfaFJvH7Twc/krOlfNrwvT5+Bvr/aQsWE= Headers/PTDiffusionSubscriptionRoutingRequestHandler.h - hash - - 9jnRMtx9K8HdPuXG+znth3M0aGE= - hash2 - Q70WIM3Mqaq3dqSUMnC2AldPwtv5fgtYm8bGuod+UaA= + RJjJK3WCbo6On5aoF5Wl8nRUBNnrGBZqGk9TctyMvA8= Headers/PTDiffusionTimeSeriesEvent.h - hash - - EUo8rlUN7L4Vb0ApCRQc0QvyDKI= - hash2 - 97vCHRcjqT7uKfcSO9Ys4RsI6v7ZSH7qPwnAX9Di/VY= + 5VG95jJeM9H1vz5vUHuXlLbNdqEEZPQKSWmawxb5NDg= Headers/PTDiffusionTimeSeriesEventMetadata.h - hash - - K3z4tHb6R+DJ5TS7Zn7KTSuV3aQ= - hash2 - CzAl0sN+oQ07Gf4dwGQyaNBx6NuB7mPXQUsSP+9DCp4= + gQQjIWKJiUPdnTnK8c3q3d5+zviWGHWCQhH6k6wafak= Headers/PTDiffusionTimeSeriesFeature.h - hash - - kRQvWpGJ5/+mq+wKgZn1UFU+aEc= - hash2 - ye0OOkiUHe3N0n4B18mkrE5tiDW8JaJlEIgSk4itzIA= + bJ14hUgeVsI7pmf0Gp7XPl15nwTclL6QbiWTNB/J6NQ= Headers/PTDiffusionTimeSeriesFetchResult.h - hash - - MvAjs5LXtdh3OO3tOuSA04LMM1k= - hash2 - 364c4eAqt3TZfuyxQUU/jJfSxkmEmqvdjiSSyHPC+58= + VQbww+bJHpKLZVw5ozGHGcJsJbzWDopMins1f4GoDCc= Headers/PTDiffusionTimeSeriesFetchTopicResult.h - hash - - yp6pe18HJ/EGJmpbh+6s7NLZ7pU= - hash2 - 8BeXhDKuElnBgYAnaGN+0q99SidHj4GPqy2mDGnTvB4= + 70ZAVjYK54fPbI/aBwmPLPqlGRp906FpeahTBArh8UM= Headers/PTDiffusionTimeSeriesQueryResult.h - hash - - gG4FAopvIEIBP0fMvPbOLS83u98= - hash2 - F0a8u/EEZ6VlWAxFABVFbMi6Ms0h0UmR56WaaOH4ubw= + DHFhF1le1yYZG7QB9XjEpuTNeQKnx+/nJ6IydZXbSro= Headers/PTDiffusionTimeSeriesQueryResultEventArrayStructure.h - hash - - DvpP6DS6eAyk+aCqkqWb3iigDxs= - hash2 - Mw1+1YCFwn0dlb2fDs/LBpf8EmCBoPlHOUxhl7NTXfQ= + bhUqJ6BsDyWGwCjInsDC4UBeq/gZB5u5bqsZbZdNq14= Headers/PTDiffusionTimeSeriesRangeQuery.h - hash - - W/tKg/AWIskigFCtEjJRnm+TmXc= - hash2 - oXGcbB52rvoGAIFba+3plNyY2meLjW25+PKTXNsVcMQ= + 88wFqFx9xtfeGUzuGPNUyWy+HZ0w3J69Dmpgu8GF0WU= Headers/PTDiffusionTopicControlFeature.h - hash - - WtrzrcDtqjI42rwsqH/19Vd1VCk= - hash2 - r6nw88gBv8+MqASQ0Q5wqrafP3c5a4bG20dKeAVh9s4= + TNPv7A1Pc7kGI6am+cbLzrovDKOZdWOgnh51mpjr0FA= Headers/PTDiffusionTopicCreationResult.h - hash - - HSAGnfPszx9efRtpwwVWOIoTd/o= - hash2 - EhpYsxuOUlHPVaE/Fg/SeVil51mEO2QM5MW8x38pPFw= + 0eFshVZ8h0pY9lKi20iOj7RfEPY+5T1l1pECdmLdFI0= Headers/PTDiffusionTopicMetricCollector.h - hash - - kPmr2niRnxmnK+WEyGTHpQSy94I= - hash2 - CUDXZdj/kKN8IE1emun6dqOp+ajEFVG0Txfc0cEzCj8= + 2qs00SrBSzk8lUh8OVFMfQKkmmOe9/jAormyRZUzDCo= Headers/PTDiffusionTopicMetricCollectorBuilder.h - hash - - sHHk1WUF3Z4/PJSf1bOsvhKM25w= - hash2 - +47IgEXxUk98VJhVdtTzGnLZni4floIx32vpjXD0d18= + 6LinbFSYd4TEuw/bhnsx6e5vxZdq8lD1UVobF0qnVPI= Headers/PTDiffusionTopicNotificationListener.h - hash - - hZTc6cym7qmNF9lVtC5R8cw4FMI= - hash2 - NY+JZ6aNwMND735hkY+dGOTnbYaTWTW4X2/UWE9h2TA= + Yd65kVGGp6/jytaX0dO4N3/nyN5d2hX0hiPq19iNkbk= Headers/PTDiffusionTopicNotificationRegistration.h - hash - - +z4j7niWHEOMtD8Q+7iljLXUHkU= - hash2 - XFZRQ4OdjKY1xFGV/TcwJrnCm4K7v3MC4a6nsfz4mwI= + /kZ4Jgw1b6/dFhaP0Bs37rKtyU4qg3cb3LlGkLIrZqY= Headers/PTDiffusionTopicNotificationType.h - hash - - P/gSFu8kqdKZP1GErdycrZWxe8Y= - hash2 - BdcYCXge2aneTMdtz7N7EnLg7RAKxGJS4ZYbiy+CZGg= + R6Vv6W9PRLpJv55+h+fKVGJa/y3OlS36Kt5QJ3vuaPM= Headers/PTDiffusionTopicNotificationsFeature.h - hash - - cOpzyzMcUYS9Rswys88ul8VxKtc= - hash2 - x/S9lKmn2cVcwpVewElZP+vkC9XsBpK8j43C5WTATpE= + 9nIAjTCyPklFkgqsz9XUCe4/VIoWvMTomyPUDVNnd6Y= Headers/PTDiffusionTopicPermission.h - hash - - ToIfuMW32GNijiIbh7HZyDC4MBg= - hash2 - bhkm8653HOfvCBW4cHOAu3PXsR73xqC7LtgwIjXoBjA= + iHfHjjZXfd7enFoS1PUR+q0wl+bOV/YvDqRAvTW92h8= Headers/PTDiffusionTopicRemovalResult.h - hash - - OGJ85IHK6RKAeL3lQBmxgeRms9E= - hash2 - fxq1LeEeEWlwIODGxIVcELQF+fFknYm1iOqm7+epKfc= + 4UPlfIx5Kp0DTFEBUoGxDPULjn9rWA68/6dYOgJ7XRM= Headers/PTDiffusionTopicSelector.h - hash - - PvLuO6ABp5SdMAkZALFuqj6FPk0= - hash2 - XnNCiSKVNs816fSnzAKlgEsCcibEYT3QtDZD91NtiP4= + 0/Gr4YiDdZa5EG6bKOeN8StjNShjC1AEsRpXJ+j8g+8= Headers/PTDiffusionTopicSpecification.h - hash - - 6T6nTGbvX3owIJsYdwSEQeIz6KI= - hash2 - 6/u6TjEAtna5auIZnZonbeGvBDeAud/ACWp0s5uhruA= + 7l2YWBc8NotaGX/yG82SCQA60ne3Q+6SrQA2P7hx+j0= Headers/PTDiffusionTopicTreeRegistration.h - hash - - geRzJEq1yPFwf5jz0mNoxXMtLok= - hash2 - Ggz+bePtETeeiietlUZYWnGGj5sZ7vaIrwJKJ4SI9+M= + kQ3awGQo+b7tPgX2VMOYa+Bg41so8LMtV50t3B4JdQ0= Headers/PTDiffusionTopicTreeRegistrationDelegate.h - hash - - bJmglUQThguySqQY/0RZIdSn758= - hash2 - 8wf0iSrww7kBrC7NQdI52PP1KzFXNc7DqLQSB/ZDzTc= + XjL0BeHNZXrK1Uh/p/IR/I7Gx+XZkdfMJBtksK6A2yg= Headers/PTDiffusionTopicType.h - hash - - mY6IRMiXMRWQq+a/0cO8jlp/wPw= - hash2 - Esy/uXBR+Su4h3uJlMd2lrwCYoc93CeDNsydn/ee+WY= + Kxx6dzJsEyUOaMEUp3V2RRdXlFQFeyYtCGifEjWkIJ0= Headers/PTDiffusionTopicUnsubscriptionReason.h - hash - - X5fsyCzYm1au3UTJLOJV547sfT8= - hash2 - 505yxoqyGKB6p3KW1x74uejSKPtVspVyz/3HYrmpFyQ= + zh3U7QP1cmfSJ7dSUHgTCvi0dP4HFP6dZg4k2nqlm2c= Headers/PTDiffusionTopicUpdateFeature.h - hash - - fGaZOiKa69O1PnrUxN+BIKtHCwY= - hash2 - Pnh7vcziF9yfzR5VagR3Ak/4LccCL4W/rdWcHvwiyZM= + A4+YoizxM5TQQjgknubvhaNCLYmHrJ3FhqJKdRLdqaw= Headers/PTDiffusionTopicView.h - hash - - RNHKeU6rwo7Y8caMk40vHJ9WOl4= - hash2 - cq77Pu8R3aJSLnEaiJn1myGkvoLfyz+Af84llfG7FVk= + 8ArWfdJooTE+1YebNF7DbQBWQwg7WaAX0KL69fZWNSU= Headers/PTDiffusionTopicViewsFeature.h - hash - - 1jM2LY+xS60EBqCGtHhC4WxQdv4= - hash2 - 2VcRpxrNCTQ9xI/G2o3KdoFb9pRLrwxum0nGJwKmISk= + 2/+vZqxCDMUYv6fY2x1lVuviabAtyFNliwS3ihLLOQU= Headers/PTDiffusionTopicsFeature.h - hash - - oucx5fp8VB3Ck/BuDgoSHj59a4g= - hash2 - sHvk36QYKh/Ye46RvgvZqciETRHFt4OZQEBnwn2o0os= + O/N4e3K4VGNsXRkcH+HRfPkayqJaHunzpinEW7gICeU= Headers/PTDiffusionUpdateConstraint.h - hash - - WgubOT3cRcshVldoHPR5oATeZbk= - hash2 - 0nb1Of6Kfc61MDmtDqnriTxUaLxM/Yb/rQ0y44m8M2U= + 7Zk0Kppo3shbAB5ANtfw5q13LdXwfOr9egJHcpZZmJo= Headers/PTDiffusionUpdateStream.h - hash + hash2 - Q51eU6LsCptV2OMM0Oc1kbntKmc= + FmGglpmZL0KdJMlw9r41qQY/BpdALvuiiAclQ961WQw= + + Headers/PTDiffusionUpdateStreamBuilder.h + hash2 - fcmZ6i59/7l/GRY7gm2xrkykMmLDCeI2bWkYXOy8y8Y= + SnJKtvSveD1LG7lOtN+js9VlM0+nG1JUGHq8pPDlJ1c= Headers/PTDiffusionValueStream.h - hash - - vmLkEfveOrPcHBpupS8osA0+OAI= - hash2 - 2UDxwsKitVygyFLRxEBy/K1udXbMAJWPfUq5Xnsy9P8= + jltRdIfQ1M/rbV03jANn+F5kMjLxg8e17DeBMKCzggE= Headers/PTDiffusionVersion.h - hash - - B7GoZ+3T6mv21Fy27HaP3q0r3FY= - hash2 - XJ59U7yc7z/CEo8dOcxQ1ybieeK7tx3IHe/vaZmVWbA= + REiwYO8DNVoVvpIWKjCPxN05ivkRw2uLsCAe/fjcTr0= Modules/module.modulemap - hash - - q330/OkSKLLkRwoC2kdB1e4qTEQ= - hash2 IOdf2zvMpEjPRyI0O/jRrRe4UhkqYb+0eyRNsRwyyZE= @@ -2912,13 +2195,9 @@ error_descriptions.plist - hash - - 1QALYuZesU81TxtP94AljMMQUoQ= - hash2 - PO9F/SQw6z+wn01Z0VjjtiStciZtTNKROQA70keja1w= + L6RBSUl8uDGQwDq+499ouBNekHDnpS9jh5pj8lFJe3U= diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist index 0855770..6dc5928 100644 Binary files a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist and b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/Diffusion.framework/error_descriptions.plist differ diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist new file mode 100644 index 0000000..8ad5404 --- /dev/null +++ b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.- + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion new file mode 100644 index 0000000..ef133a4 Binary files /dev/null and b/Sources/Diffusion.xcframework/tvos-arm64_x86_64-simulator/dSYMs/Diffusion.framework.dSYM/Contents/Resources/DWARF/Diffusion differ diff --git a/Tests/DiffusionTests/DiffusionTests.swift b/Tests/DiffusionTests/DiffusionTests.swift new file mode 100644 index 0000000..531d8d2 --- /dev/null +++ b/Tests/DiffusionTests/DiffusionTests.swift @@ -0,0 +1,15 @@ +import XCTest +@testable import Diffusion + +final class DiffusionTests: XCTestCase { + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct + // results. + XCTAssertEqual(Diffusion().text, "Hello, World!") + } + + static var allTests = [ + ("testExample", testExample), + ] +} diff --git a/Tests/DiffusionTests/XCTestManifests.swift b/Tests/DiffusionTests/XCTestManifests.swift new file mode 100644 index 0000000..58922d9 --- /dev/null +++ b/Tests/DiffusionTests/XCTestManifests.swift @@ -0,0 +1,9 @@ +import XCTest + +#if !canImport(ObjectiveC) +public func allTests() -> [XCTestCaseEntry] { + return [ + testCase(DiffusionTests.allTests), + ] +} +#endif diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift new file mode 100644 index 0000000..2864fbd --- /dev/null +++ b/Tests/LinuxMain.swift @@ -0,0 +1,7 @@ +import XCTest + +import DiffusionTests + +var tests = [XCTestCaseEntry]() +tests += DiffusionTests.allTests() +XCTMain(tests)