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