Contents

- Net::Z3950::AsyncZ

- Intro
- Documentation
- The Modules

- Here are the modules:

- INDEX

# Net::Z3950::AsyncZ

## Intro

Net::Z3950::AsyncZ adds an additional layer of asynchronous support for the Z3950 module through the use of multiple forked processes. I hope that users will also find that it provides a convenient front end to `Net::Z3950`. My initial idea was to write something that would provide a convenient means of processing and formatting Z39.50 records--which I did, using the `Z3950` synchronous code. But I also wanted something that could handle queries to large numbers of servers at one session. Working on this part of my project, I found that I had trouble with the `Z3950` asynchronous features and so ended up with what I have here.

I give a more detailed account in the DESCRIPTION section of `AsyncZ.html`.

## Documentation

- AsyncZ.html
  This is the starting point--it gives an overview of the AsyncZ module, describes the basic mechanics of its asynchronous workings, and details the particulars of the objects and methods. But see Examples for detailed explanations of the sample scripts which come with the `Net::Z3950::AsyncZ` distribution.
- Options.html
  This document details the various options that can be set to modify the behavior of `AsyncZ`
- Report.html
  `Report.html` deals with how records are treated line by line and how you can affect the apearance of a record's line by line output
- Examples.html This document goes through the sample scripts that come with the `Net::Z3950::AsyncZ` distribution and annotates them in a line-by-line fashion. It's a basic HOW-TO.

## The Modules

There are more modules than there is documentation. The reason for this is that the only module you have full and complete access to is `Net::Z3950::AsyncZ`. The other modules are either internal to `Net::AsyncZ` or accessed indirectly or in part indirectly.

### Here are the modules:

Net::Z3950::AsyncZ
  The main module: direct access --documented in `AsyncZ` and `Options` documentation

Net::Z3950::AsyncZ::ErrMsg
  User error message handling: indirect access -- documented in `AsyncZ` documentation

Net::Z3950::AsyncZ::Errors
  Error handling for debugging: limited access -- documented in `AsyncZ` documentation

Net::Z3950::AsyncZ::Report
  Module reponsible for fetching and formatting records: limited access -- documented

Net::Z3950::AsyncZ::ZLoop
  Event loop for child processes: no access -- not documented

Net::Z3950::AsyncZ::ZSend
  Connection details for child processes: no access -- not documented

Net::Z3950::AsyncZ::Options::_params
  Options for child processes: direct and indirect access -- documented in `Options` and `AsyncZ` documentation

# INDEX

`- [11]`
`$all =`
`$std =`
`$xtr=`
`%MARC_FIELDS_STD`
`%MARC_FIELDS_XTRA`
`, [8]`
`@EXPORT`
`@EXPORT_OK`
`abort`
`ABSTRACT`
`Apologia`
`AUTHOR`
`Basic Mechanisms of Net::Z3950::AsyncZ`
`Basic Script`
`basic.pl`
`basic_pretty error-handling function`
`basic_pretty output function`
`basic_pretty.pl`
`callback`
`Callback Functions`
`cb`
`Changing %MARC_FIELDS`
`Class Methods`
`Constructor`
`Constructor and Methods`
`Constructor, Methods, and Exports`
`COPYRIGHT AND LICENSE`
`Dealing with Headers in the Callback Function`
`DEFAULT`
`DESCRIPTION`
`doAbort`
`doRetry`
`errno`
`error-handling function`
`Errors`
`Example 1`
`Example 1:`
`Example 2`
`Example 2:`
`Example 3`
`Examples of Net::Z3950::AsyncZ::ErrMsg Error Handling`
`Exported Names`
`Exports from Net::Z3950::AsyncZ`
`Exports from Net::Z3950::AsyncZ::ErrMsg`
`Exports from Net::Z3950::AsyncZ::Errors`
`For example:`
`format`
`Format Callback`
`Format Callback (not required)`
`format function:`
`Format Methods`
`get/set methods`
`get_DEFAULT_pat`
`get_GRS1_pat`
`get_MARC_pat`
`get_pats`
`get_RAW_pat`
`getErrors`
`getMaxErrors`
`getZ_RecNum`
`getZ_RecSize`
`GRS-1`
`header`
`Headers`
`HTML`
`interval`
`Introduction`
`isNetwork`
`isSuccess`
`isSystem`
`isTryAgain`
`isUnspecified`
`isZ3950`
`isZ_Error`
`isZ_Header`
`isZ_Info`
`isZ_nonRetryable`
`isZ_ServerName`
`log`
`Main Routine`
`MARC`
`MARC Bibliographic Format`
`MARC Examples`
`MARC Fields Hashes`
`MARC fields priority sequence:`
`marc_fields`
`MARC_HTML.pl`
`marc_subst`
`marc_userdef`
`marc_xcl`
`maxpipes`
`Methods`
`Methods for Setting _params Options`
`Methods to deal with errors and error messages`
`Methods to handle several types of headers which AsyncZ attaches to records`
`Methods to set options for Net::Z3950::AsyncZ::Options::_params objects`
`monitor`
`more_pretty format function`
`more_pretty Main Routine`
`more_pretty.pl`
`msg`
`NAME`
`Net::Z3950::AsyncZ By Example`
`Net::Z3950::AsyncZ methods for ErrMsg handling`
`Net::Z3950::AsyncZ::_printError`
`Net::Z3950::AsyncZ::asyncZOptions`
`Net::Z3950::AsyncZ::delZ_header`
`Net::Z3950::AsyncZ::delZ_pid`
`Net::Z3950::AsyncZ::delZ_serverName`
`Net::Z3950::AsyncZ::ErrMsg`
`Net::Z3950::AsyncZ::ErrMsg methods for ErrMsg Handling`
`Net::Z3950::AsyncZ::ErrMsg Object`
`Net::Z3950::AsyncZ::Errors`
`Net::Z3950::AsyncZ::get_ZRawRec`
`Net::Z3950::AsyncZ::getErrors`
`Net::Z3950::AsyncZ::getMaxErrors`
`Net::Z3950::AsyncZ::getZ_RecNum`
`Net::Z3950::AsyncZ::isZ_DEFAULT`
`Net::Z3950::AsyncZ::isZ_Error`
`Net::Z3950::AsyncZ::isZ_GRS`
`Net::Z3950::AsyncZ::isZ_Header`
`Net::Z3950::AsyncZ::isZ_Info`
`Net::Z3950::AsyncZ::isZ_MARC`
`Net::Z3950::AsyncZ::isZ_nonRetryable`
`Net::Z3950::AsyncZ::isZ_PID`
`Net::Z3950::AsyncZ::isZ_RAW`
`Net::Z3950::AsyncZ::isZ_ServerName`
`Net::Z3950::AsyncZ::new`
`Net::Z3950::AsyncZ::noZ_Response`
`Net::Z3950::AsyncZ::Option::_params::invalidOption`
`Net::Z3950::AsyncZ::Option::_params::option`
`Net::Z3950::AsyncZ::Option::_params::test`
`Net::Z3950::AsyncZ::Option::_params::validOption`
`Net::Z3950::AsyncZ::Options::_params`
`Net::Z3950::AsyncZ::prep_Raw`
`Net::Z3950::AsyncZ::Report::new`
`Net::Z3950::AsyncZ::reportResult`
`Net::Z3950::AsyncZ::Z_ServerName`
`Note:`
`noZ_Response`
`num_to_fetch`
`Object Method`
`Object Methods`
`Optional Parameters for Constructor`
`options`
`options.pl`
`or:`
`Output Callback`
`Output Callback (required)`
`output function`
`outputs an error string of the following format:`
`Overview`
`param:`
`parameters:`
`params:`
`pipetimeout`
`Plain Text`
`preferredRecordSyntax`
`query`
`querytype`
`RAW`
`raw.pl`
`record`
`Record Data`
`Record Format Types`
`References to MARC Hashes`
`render`
`Required Parameters for Constructor`
`retry`
`return value:`
`return:`
`returns`
`returns:`
`Row Formatting Priorities`
`servers`
`Setting Options`
`Some Useful MARC web links:`
`startrec`
`Subroutines`
`swap_attempts`
`swap_check`
`SYNOPSIS`
`three references`
`timeout`
`timeout_min`
`type`
`type of record:`
`Types of Headers`
`Types of Options`
`Types:`
`User Defined Formatting`
`Using the`
`utf8`
`Word about Parameters and Options`
`Z3950_options`
`Z_ServerName`