Refactoring der App-Tethering-Kommunikation in Seattle
Nach oben zu Neuerungen
Die für die Kommunikation zwischen App-Tethering-Anwendungen verantwortliche App-Tethering-API wurde einer Umgestaltung unterzogen, um Protokolle von den Besonderheiten der übertragenen Daten zu entkoppeln, die Kommunikation zu vereinfachen und die Funktionalität der Basisklasse für Profile zu erweitern und so das Erstellen Ihres Profils zu erleichtern.
Protokolle übertragen Daten, Profile behandeln Daten
In XE8 waren Protokollklassen für die Analyse der eingehenden Daten und für das Erstellen von App-Tethering-Befehlen aus den empfangenen Daten zuständig, um diese Befehle an die Profilklasse zu übergeben. In Seattle dienen Protokollklassen lediglich als Zwischenphase beim Senden und Empfangen von Daten-Streams, und Profile sind für die Serialisierung und Deserialisierung von App-Tethering-Befehlen zuständig.
Die folgende Tabelle enthält Member, die von Protokollklassen in Profilklassen verschoben wurden:
XE8 | Seattle | ||
---|---|---|---|
Klasse | Member | Member | Klasse |
TTetheringProtocol | DoReceiveCommand | DoReceiveCommand | TTetheringProfile |
DoSendCommand | DoSendCommand | ||
ReadCommand | ReceiveCommand | ||
ReceiveCommand | |||
SendCommand | SendCommand | ||
SendCommandWithResponse | SendCommandWithResponse |
Eingehende App-Tethering-Befehle werden nicht mehr über Ereignisse, wie TTetheringProtocol.OnCommand
oder TTetheringProfile.OnCommand
öffentlich (public) bereitgestellt. Stattdessen müssen Profilklassen DoOnIncomingData für die Analyse und Behandlung von eingehenden Befehlen implementieren.
Protokollklassen stellen die Ereignisse OnStreamReceived
und OnStringReceived
nicht mehr bereit. Verwenden Sie stattdessen die entsprechenden Ereignisse aus Profilklassen: OnStreamReceived und OnStringReceived.
Profile behandeln Remote-Profile und Verbindungen
Die Logik für die Behandlung von Remote-Profilen und Verbindungen wurde aus der Anwendungsprofilklasse in die Profilbasisklasse verschoben, damit Sie sie in eigenen Profilen verwenden können. Als Folge erhielt TTetheringProfile die folgenden protected Member, die Sie beim Erstellen von Unterklassen verwenden können:
Sonstige Änderungen
- Die Methode TransferStream von Protokollklassen ist jetzt veraltet. Sie wurde durch SendStream ersetzt, um eine konsistentere Benennung zu erhalten.
- TTetheringProtocol.SendStream ruft die Methode DoSendStream auf, die Sie in eigenen Protokollklassen überschreiben können.
- SendCommandWithResponse ruft die Methode DoSendCommandWithResponse auf, die Sie in eigenen Profilklassen überschreiben können.
- Mit TTetheringCommand.ToBytes können Sie einen Befehl als in UTF-8 codierte Bytes serialisieren.
- Protokollklassen können nun über die neue Eigenschaft FProfile auf ihr Profil zugreifen.
- Sie können die Befehlsdaten im Konstruktor eines App-Tethering-Befehls angeben.