# Functions
BuildAckMessage creates a 32+ 16 byte long message that can be used as a response for a message the had the ExpectsReply flag set.
DecodeNonBlocking should only be used for the debug proxy to on the fly decode DtxMessages.
https://discuss.appium.io/t/how-to-parse-trace-file-to-get-cpu-performance-usage-data-for-ios-apps/35334/2.
Encode encodes the given parameters to a DtxMessage that can be sent to the device.
IsIncomplete returns true if the DtxMessage was incomplete.
IsOutOfSync returns true if err is an OutOfSync error.
NewFragmentDecoder creates a new decoder with the first fragment.
NewGlobalDispatcher create a Dispatcher for the GlobalChannel.
NewIncomplete when the Message was not complete.
NewOutOfSync should be used when the MagicBytes are wrong.
NewTunnelConnection connects and starts reading from a Dtx based service on the device, using tunnel interface instead of usbmuxd.
NewUsbmuxdConnection connects and starts reading from a Dtx based service on the device.
ReadMessage uses the reader to fully read a Message from it in blocking mode.
WithTimeout adds a custom timeout in seconds to the channel.
# Constants
Ack is the messagetype for a 16 byte long acknowleding DtxMessage.
DtxMessageHeaderLength alwys 32 byte.
DtxMessageMagic 4byte signature of every Message.
DtxMessagePayloadHeaderLength always 16 bytes.
DtxReservedBits are always 0x0.
DtxTypeError is the messagetype for a DtxMessage containing an error.
All the known MessageTypes.
Methodinvocation is the messagetype for a remote procedure call style DtxMessage.
ResponseWithReturnValueInPayload is the response for a method call that has a return value.
Unknown.
# Structs
The AuxiliaryHeader can actually be completely ignored.
Connection manages channels, including the GlobalChannel, for a DtxConnection and dispatches received messages to the right channel.
FragmentDecoder collects DtxMessage fragments and merges them into a single DtxMessage when they are complete.
GlobalDispatcher the message dispatcher for the automatically created global Channel.
Message contains a decoded DtxMessage aka the most overcomplicated RPC protocol this planet has ever seen :-D
DTXMessages consist of a 32byte header that always starts with the DtxMessageMagic
It is followed by the 16 bytes PayloadHeader.
PayloadHeader contains the message type and Payload length.
PrimitiveDictionary contains a custom dictionary type only used for DTX.
# Interfaces
Dispatcher is a simple interface containing a Dispatch func to receive dtx.Messages.