// SDLSmartDeviceLinkProtocolMessage.h // #import @class SDLProtocolHeader; NS_ASSUME_NONNULL_BEGIN @interface SDLProtocolMessage : NSObject @property (strong, nonatomic) SDLProtocolHeader *header; @property (nullable, strong, nonatomic) NSData *payload; @property (strong, nonatomic, readonly) NSData *data; + (id)messageWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; // Returns a V1 or V2 object - (NSUInteger)size; - (NSString *)description; - (nullable NSDictionary *)rpcDictionary; // Use for RPC type messages to obtain the data in a dictionary + (UInt8)determineVersion:(NSData *)data; @end NS_ASSUME_NONNULL_END