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

`AEServer.``callback`(_object, **kwargs)

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

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

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