Seattle における App テザリング通信のリファクタリング
Seattle の新機能 への移動
app テザリング アプリケーション間の通信を担う app テザリング API は、リファクタリングを重ねてきており、それにより、転送データの特性からプロトコルを分離し、通信をより簡素化し、プロファイル用基底クラスの機能を拡張して、ユーザーがより簡単にプロファイルを作成できるようにしてきました。
プロトコル転送データ、プロファイル処理データ
XE8 では、プロトコル クラスが入力データを解析し、受信したデータから app テザリング コマンドを構築し、それらのコマンドをプロファイル クラスに渡す役目を担っていました。Seattle では、プロトコル クラスは、単純にデータ ストリームを送受信する中間層として振る舞い、プロファイルが、app テザリング コマンドをシリアライズおよび逆シリアライズする役目を担います。
次の表は、プロトコル クラスからプロファイル クラスに移されたメンバーを示しています:
XE8 | Seattle | ||
---|---|---|---|
Class | メンバ | メンバ | Class |
TTetheringProtocol | DoReceiveCommand | DoReceiveCommand | TTetheringProfile |
DoSendCommand | DoSendCommand | ||
ReadCommand | ReceiveCommand | ||
ReceiveCommand | |||
SendCommand | SendCommand | ||
SendCommandWithResponse | SendCommandWithResponse |
入ってきた app テザリング コマンドは、TTetheringProtocol.OnCommand
や TTetheringProfile.OnCommand
といったイベントで公開されることはなくなりました。代わりに、プロファイル クラスが DoOnIncomingData を実装して、入ってきたコマンドを解析および処理しなければなりません。
プロトコル クラスで、イベント OnStreamReceived
および OnStringReceived
を提供しなくなりました。代わりに、プロファイル クラスの次の同等イベントを使用してください: OnStreamReceived および OnStringReceived。、OnStringReceived
プロファイル処理リモート プロファイルと接続
リモート プロファイルと接続を処理するためのロジックは、アプリケーション プロファイル クラスからプロファイル基底クラスに移され、カスタム プロファイルで使用できるようになりました。 この結果、TTetheringProfile には、サブクラス作成時に使用することができる、次の protected メンバーが用意されました:
その他の変更点
- プロトコル クラスの TransferStream メソッドは非推奨となりました。これは、命名の統一のために、SendStream に置き換えられました。
- TTetheringProtocol.SendStream は DoSendStream を呼び出すようになり、このクラスはカスタム プロトコル クラスでオーバーライドすることができます。
- SendCommandWithResponse は DoSendCommandWithResponse を呼び出すようになり、このクラスはカスタム プロファイル クラスでオーバーライドすることができます。
- TTetheringCommand.ToBytes により、コマンドを UTF-8 でエンコードされたバイトとしてシリアライズできるようになりました。
- プロトコル クラスが、その新しい FProfile プロパティによって、自分のプロファイルにアクセスできるようになりました。
- app テザリング コマンドのコンストラクタで、コマンド データを指定することができます。