| Title page
|
| Table of contents
|
| Introduction
|
| Manual Conventions
|
| Overview of Zephyr
|
| General concepts
|	The subscription service
|		Overview
|		Class
|		Class instance
|		Recipient
|		Examples
|		Authorization
|	The user-locator service
|		Location information
|		Exposure levels
|		
| Programming for standard applications
|	The Zephyr library and include files
|	The ZNotice_t structure
|		Components of header
|		Notice kinds
|		Field structure of notice body
|	Acknowledgement Structure
|	Error handling
|	Initialization
|		ZInitialize
|		ZOpenPort
|	Exiting cleanly
|		ZClosePort
|		ZCancelSubscriptions
|	Sending notices
|		ZSendNotice
|		ZSendList
|		Useful information to include in a notice
|			ZGetSender
|			ZGetRealm
|		Sending binary data
|			ZMakeAscii
|		Sending authenticated notices
|		Sample application (sending notices)
|	Receiving acknowledgements
|		Using predicates
|			ZCompareUIDPred
|		ZCheckIfNotice
|		ZIfNotice
|		ZCompareUID
|		Sample application (sending notices and receiving acks)
|	Subscribing to notices
|		ZSubscribeTo
|		ZUnsubscribeTo
|		ZCancelSubscriptions
|		Subscribing for your own application
|		Subscribing for the WindowGram client
|			ZGetWGPort
|	Receiving notices
|		ZReceiveNotice
|		Receiving binary data
|			ZReadAscii
|		Receiving authenticated notices
|			ZCheckAuthentication
|		Sample application (subscribing and receiving)
|	Using the input queue
|		ZQLength
|		ZPending
|		ZPeekNotice
|		ZPeekIfNotice
|	Using packets
|		ZFormatNotice
|		ZFormatNoticeList
|		ZSendPacket
|		ZReceivePacket
|		ZParseNotice
|		ZPeekPacket
|		Sample application (input queue, packets, etc.)
|	Using raw notices
|		ZFormatRawNotice
|		ZFormatRawNoticeList
|		ZSendRawNotice
|	Retrieving information
|		User locations
|			ZLocateUser
|			ZGetLocations
|			ZFlushLocations
|			Sample application (user location)
|		Subscriptions
|			ZRetrieveSubscriptions
|			ZRetrieveDefaultSubscriptions
|			ZGetSubscriptions
|			ZFlushSubscriptions
|			Sample application (subscription retrieval)
|	Using variables
|		ZGetVariable
|		ZSetVariable
|		ZUnsetVariable
|		Sample application (variable handling)
|		
| Programming - advanced topics
|	Changing your location information
|		ZSetLocation
|		ZUnsetLocation
|		ZFlushMyLocations
|	Using your own socket
|		ZGetFD
|		ZSetFD
|	Changing the destination address
|		ZGetDestAddr
|		ZSetDestAddr
	Using Zephyr as a Rendezvous Service
|
|Communicating with other parts of the Zephyr system
|	The WindowGram client
|		Where to send notices
|		Available commands
|		Sample application (communicating with a WindowGram client)
|	The HostManager
|		Where to send notices
|		Available commands
|		Sample application (communicating with a HostManager)

|Appendix A: Additional programming examples
|	zwrite
|	zlocate
|	zstat

Appendix B: Predefined notice formats
| Appendix C: Templates for all functions
| Appendix D: Error codes and meaning

References
