
``MiniAEFrame`` --- Open Scripting Architecture server support
**************************************************************

Platform: Mac

*Platforms: *Mac

The module ``MiniAEFrame`` provides a framework for an application
that can function as an Open Scripting Architecture  (OSA) server,
i.e. receive and process AppleEvents. It can be used in conjunction
with ``FrameWork`` or standalone. As an example, it is used in
**PythonCGISlave**.

The ``MiniAEFrame`` module defines the following classes:

class MiniAEFrame.AEServer

   A class that handles AppleEvent dispatch. Your application should
   subclass this class together with either ``MiniApplication`` or
   ``FrameWork.Application``. Your ``__init__()`` method should call
   the ``__init__()`` method for both classes.

class MiniAEFrame.MiniApplication

   A class that is more or less compatible with
   ``FrameWork.Application`` but with less functionality. Its event
   loop supports the apple menu, command-dot and AppleEvents; other
   events are passed on to the Python interpreter and/or Sioux. Useful
   if your application wants to use ``AEServer`` but does not provide
   its own windows, etc.


AEServer Objects
================

AEServer.installaehandler(classe, type, callback)

   Installs an AppleEvent handler. *classe* and *type* are the four-
   character OSA Class and Type designators, ``'****'`` wildcards are
   allowed. When a matching AppleEvent is received the parameters are
   decoded and your callback is invoked.

AEServer.callback(_object, **kwargs)

   Your callback is called with the OSA Direct Object as first
   positional parameter. The other parameters are passed as keyword
   arguments, with the 4-character designator as name. Three extra
   keyword parameters are passed: ``_class`` and ``_type`` are the
   Class and Type designators and ``_attributes`` is a dictionary with
   the AppleEvent attributes.

   The return value of your method is packed with
   ``aetools.packevent()`` and sent as reply.

Note that there are some serious problems with the current design.
AppleEvents which have non-identifier 4-character designators for
arguments are not implementable, and it is not possible to return an
error to the originator. This will be addressed in a future release.
