38.5. MiniAEFrame --- オープンスクリプティングアーキテクチャサーバのサポート

MiniAEFrame モジュールは、アプリケーションにオープンスクリプティングアーキテクチャ (OSA) サーバ機能を持たせるためのフレームワークを提供します。つまり、AppleEvents の受信と処理を行わせます。 FrameWork と連携させても良いし、単独でも使えます。実例として、このモジュールは PythonCGISlave の中で使われています。

MiniAEFrame には以下のクラスが定義されています:

class MiniAEFrame.AEServer

AppleEvent の分岐を処理するクラス。作成するアプリケーションはこのクラスと、 MiniApplication あるいは FrameWork.Application のサブクラスでなければなりません。サブクラス化したクラスでは __init__() メソッドで、継承した両方のクラスの __init__() メソッドを呼びださなければなりません。

class MiniAEFrame.MiniApplication

FrameWork.Application とある程度互換なクラスですが、機能は少ないです。このクラスのイベントループはアップルメニュー、 Cmd-.(コマンドキーを押しながらピリオド.を押す)、 AppleEvent をサポートします。他のイベントは Python インタープリタか Sioux(CodeWarrior のコンソールシステム)に渡されます。作成するアプリケーションで AEServer を使いたいが、独自のウィンドウなどを持たない場合に便利です。

38.5.1. AEServer オブジェクト

AEServer.installaehandler(classe, type, callback)

AppleEvent ハンドラをインストールします。 classetype は4 文字の OSA クラスとタイプの指定子で、ワイルドカード '****' も使えます。対応する AppleEvent を受けるとパラメータがデコードされ、与えたコールバックが呼び出されます。

AEServer.callback(_object, **kwargs)

与えたコールバックは、OSA ダイレクトオブジェクトを 1 番目のパラメータとして呼び出されます。他のパラメータは 4 文字の指定子を名前にしたキーワード引数として渡されます。他に 3 つのキーワード・パラメータが渡されます。つまり、 _class_type はクラスとタイプ指定子で、 _attributes は AppleEvent 属性を持つ辞書です。

与えたメソッドの返り値は aetools.packevent() でパックされ、リプライとして送られます。

現在のクラス設計にはいくつか重大な問題があることに注意してください。引数に名前ではない 4 文字の指定子を持つ AppleEvent はまだ実装されていないし、イベントの送信側にエラーを返すこともできません。この問題は将来のリリースまで先送りにされています。