World Library  
Flag as Inappropriate
Email this Article

Apple Events

Article Id: WHEBN0003831016
Reproduction Date:

Title: Apple Events  
Author: World Heritage Encyclopedia
Language: English
Subject: AppleScript, GeoPort, Mac OS 8, MacApp, MacHTTP
Publisher: World Heritage Encyclopedia

Apple Events

This article is about Apple's software messaging system. For their media events, see Apple media events.

Apple events are the canonical message-based interprocess communication mechanism in Mac OS, first appearing in System 7 and supported by every version since then, including Mac OS X. Apple events describe "high-level" events such as "open document" or "print file", whereas earlier OS's had supported much more basic events only, namely "click" and "keypress". Apple events form the basis of the Mac OS scripting system, AppleScript.

The starting point is a dynamically-typed, extensible descriptor format called an AEDesc, which is just an OSType code specifying the data type, together with a block of type-dependent data. For instance, the OSType code inte indicated that the data was a four-byte signed integer in big-endian format.

Besides predefined type codes for various common simple types, there are two predefined structured descriptor types: an AERecord, which has data type reco (record), and AEList with type list (list or array). The internal structure of these contain recursively-nested AEDescs, while the AERecord also associated each element with a unique record field ID, which is an OSType. The Apple Event Manager provides API calls to construct these structures, as well as extract their contents and query the type of contents they hold.

The Apple Event Manager also supports coercions, which converts AEDescs from one data type to another. In addition to standard coercions, for instance between integer and real types, applications can install their own coercion handler callbacks, which could handle conversions to and from custom data types.

An Apple event proper is an AERecord with fields that depended on the purpose of the event. In addition, it has attributes (which are distinct from record fields, which are now called the parameters of the event) from a set predefined by the Apple Event Manager, specifying such things as the event type and class codes which indicates what the event is supposed to do (both OSTypes), the target address to which the event is to be sent (which could be a process on the local or a remote machine), and various other options for handling it. Remote machines initially had to be connected via AppleTalk, but Mac OS 9 added the option for connections via TCP/IP.

After sending an Apple event to its target process, the sending process could elect to receive a reply. This is also an Apple event, which could contain various bits of information returned from the target about the processing of the request event, including an error code indicating success/failure, or any other appropriate information.

Apple events are the foundation of the AppleEvent Object Model, which in turn is the foundation of AppleScript. Many other programming languages can send and receive Apple events, including C, C++, Objective-C, Perl, UserTalk, Ruby and Python.

Further reading

  • . In particular, see Section 2.3 “Apple Events” (pages 9–13), though the history and importance of Apple Events is also discussed elsewhere in the paper.

External links

  • appscript — Apple event bridge for Python, Ruby, and Objective-C
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.