Master File and Module List

Files Included in Source Code Package

.../ - Project Root Directory
.../doc - Documentation Files
.../etc - External Data Files
.../include - Public Header Files
.../src - Core Source Files
.../cpp - C++ Interface Source Files
.../programs - End-User Program Source Files
.../testaps - API-Level Test Program Source Files
.../debian - .deb Packaging Scripts

Project Root Directory

Module / Document Filename(s) Install location Description
Documentation AUTHORS - Project author and credits information
COPYING - Standard file with information on permission that is granted for copying this software
ChangeLog - Revision history of this project
INSTALL - Instructions on how to install this software
LICENSE - Information on the license agreement that applies to this software
NEWS - Recent news regarding this project
README - Introductory text explaining what this project is, and where to start reading for those wanting mroe detailed information
Make Process Makefile.am - Master makefile source, processed by automake to create Makefile.in
Makefile.in - Intermediate makefile, automatically generated by Makefile.in, and processed by configure script to produce the final Makefile. Provided with the package for those who do not have automake installed/available.
acconfig.h - Serves as a template for config.h.in file
acconfiginclude.h - Included by acconfig.h / config.h to set up options which are not generated by the configure script and documentation for all exported constants and macros
aclocal.m4 - Contains definitions for all automake macros used by this configuration process at the time of distribution. Can be regenerated using the aclocal program.
config.guess - Script that tries to guess the type of host system and its characteristics during configuration.
config.h.in - Provides a substitution template for the config.h file. This file is generated from acconfig.h by autoheader.
config.sub - Script containing useful subroutines for configuration.
configure - Configuration script that builds final Makefile based on the platform it is run on, along with any user-specified configuration options.
configure.in - Template configuration script containing macros interspersed with BASH shell commands.
install-sh - Script that is run to perform extra operations at install time. Current does nothing.
ltconfig - Creates a system-specific libtool script.
ltmain.sh - Provides generalized library-building support services.
mkinstalldirs - Creates installation directories for APS components.
stamp-h.in - Copied to stamp-h by autoheader during configuration.
Developer Tools aps-indent - Script to help format code as per APS coding standards.

Documentation Files - .../doc Directory

Module / Document Filename(s) Install location Description
Documentation api.html - C and C++ API level documentation
background.jpg,
title.jpg
- Standard document template files
compatibility.html - Compatibility and interaction with rest of system
debugmsgs.html - Run-time debug messages mechanism
files.html - Master file and module list
index.html - APS master documentation index
make.html - Make process and compile-time configuration
overview.jpg - An illustration of where the Application Print Services Library fits into the overall printing architecture on Linux / UNIX
programs.html - User-level prorams for accessing APS functionality
todo.html - Project to-do list
trackmem.html - Memory tracking and array

External Data Files - .../etc Directory

Module / Document Filename(s) Install location Description
Printer Database printers/models /etc/printers Printer model database
printers/genericna.ppd /etc/printers Generic PPD (PostScript Printer Description) file for use in North America, or where Letter should be the default page size.
printers/genericintl.ppd /etc/printers Generic PPD (PostScript Printer Description) file for use in countries where A4 should be the default page size.
Printer Diagnostics printers/testpat.eps /etc/printers Encapsulated PostScript file containing color / graphics test pattern to use when generating a printer test page.
Make Process Makefile.am,
Makefile.in
- Makefiles used to generate installation

Public Header Files - .../include Directory

Module / Document Filename(s) Install location Description
Public API aps.h /usr/include Main public header file will all type and constant definitions, along with declarations of C entry points
apscpp.h /usr/include Definition of C++ interface to APS
Make Process Makefile.am, Makefile.in - Makefiles used to generate installation

Core Source Files - .../src Directory

Module / Document Filename(s) Install location Description
Internal Utility Functionality apsinternal.h - Main header file for internal definitions and declarations used throughtout the library.
cmdpipe.c,
cmdpipe.h
- Generic operations for manipulating commandline tools via pipes. Replacement for libc popen() / pclose() tools.
pointerarray.c,
pointerarray.h
- [Deprecated] Manages an array of pointers to arbitrary objects. Now superceded by trackarray functionality.
utils.c,
utils.h
Miscellaneous utility functions used throught the library.
Debug Messages debug.c,
debug.h
- Debugging tools, including runtime debug messages.
Memory Tracking Mechanism trackarray.c,
trackarray.h
- Builds on memory handling schemes implemented by TrackMem to construct compact dynamically-resized arrays of elements of   arbitrary size.
trackmem.c,
trackmem.h
- Provides a primitive tracking mechanism for linked blocks of data. Used extensively for freeing data buffers passed back to client applications.
APS API-Level Functions attrcommon.c - APIs that provide quick access to commonly used job attributes.
attrgeneric.c - APIs that provide generic access to any job attribute.
filter.c,
filter.h
- APIs for composing and applying filters to objects. Currently used by queues and jobs.
filterspecial.c - APIs for composing and applying filters to special objects.
generalpurpose.c - General purpose library-wdie APIs. Currently contains API for releasing buffers passed back to application.
jobaccess.c - APIs for job status inquiries.
jobcontrol.c - APIs for active job control (eg. pause / resume). Operates on jobs in APS_JOB_PHASE_PENDING / WORKING / ON_HOLD phases.
jobdispatch.c - APIs for job creation and dispatch. Operates on jobs in the APS_JOB_PHASE_PRODUCTION phase.
printeraddremove.c - Printer installation and removal APIs.
printerattr.c - APIs to access a printer's default attributes.
printerconfig.c - APIs for administrative and tuning configuration of a printer.
printerdefault.c - APIs for default printer tagging.
printerdiag.c - Printer diagnosis APIs.
printerenuminst.c - Printer enumeration and instatiation APIs.
printerid.c - Printer name & identification APIs.
printerlocation.c - APIs for accessing printer location information.
printermodelinfo.c - APIs for configuring the model information associated with a printer.
resultcode.c,
resultcode.h
- Result code support functionality.
queueaccess.c - Queue access APIs, for scanning active jobs and getting particulars.
queuecontrol.c - Queue manipulation APIs, for enabling / disabling queues, etc.
APS Internal Object Architecture job.c,
job.h
- Implementation of Job objects.
notificationsub.c,
notificationsub.h
- Implementation of Notification Subscription objects.
object.c,
object.h
- Generic object implementation, including support for construction / reference counting / destructions, object handles, operation availability testing, generic property access and notifications.
printer.c,
printer.h
- Implementation of the generic Printer object.
Transport Architecture transport.c,
transport.h
- Definition and implementation of the generic Transport object.
LPR Transport lprdetect.c,
lprdetect.h
- Detection code to determine which LPR implementation the library is running on top of.
lprprefs.c,
lprprefs.h
- Preference functions used by LPR Transport.
lprprinter.c,
lprprinter.h
- LPR-specific "subclass" of the generic Printer object.
lprtransport.c,
lprtransport.h
- Main entry points and implementation for the LPR Transport.
lprtransportsup.c - Miscellaneous support code for LPR Transport.
queue.c,
queue.h
- Low-level queue management operations for LPR Transport.
readwriteprintcap.c,
readwriteprintcap.h
- Parsing and modification of LPR's configuration file, /etc/printcap.
CUPS Transport cupsprinter.c,
cupsprinter.h
- CUPS-specific "subclass" of the generic Printer object.
cupstransport.c,
cupstransport.h
- Main entry points and implementation for the CUPS Transport.
iscupsrunning.c - Code to determine at runtime whether or not CUPS is running on a given system.
Printer Configuration Files metaconfig.c,
metaconfig.h
- Manages additional information that APS tracks for each printer.
Printer Model Database Support model.c,
model.h
- Implementation of the Printer Model object.
modeldb.c,
modeldb.h
- Functions for accessing and manipulating the printer model database.
Job Attributes Mechanism attribute.c,
attribute.h
- Implementation of an Attribute, which is one of the types of properites that a generic object can contain. In addition to storing the value of the property, an Attribute stores extra information such as the range of possible values.
attrprovider.c,
attrprovider.h
- A Job Attributes object is made up of one or more attribute providers. This file implements functionality common to all attribute providers.
gsattrprovider.c,
gsattrprovider.h
- Implements the GhostScript attribute provider, which provides job-by-job control over settings that can be controlled on the GhostScript command line.
jobattributes.c - Implements a Job Attributes object, which contains information and settings to apply to a particular print job, or the default settings to apply to all future jobs. A Job Attributes object consists of one or more attribute providers.
ppdattrprovider.c,
ppdattrprovider.h
- Implementation of the PPD attribute provider, which provides access to all the information and settings from a PPD file, via the PPD Manager.
ppdmanager.c,
ppdmanager.h
- The PPD manager, which is a standalone implementation of an interface allowing the user to query PPD files, and to create custom PPD files.

C++ Interface Source Files - .../cpp Directory

Module / Document Filename(s) Install location Description
C++ Interface apsfilter.C - Implementation of ApsFilterObject class.
apsjob.C - Implementation of ApsJobObject class.
apsjobattr.C - Implementation of ApsJobAttrObject class.
apsobject.C - Implementation of base ApsObject class.
apsprinter.C - Implementation of ApsPrinter class.
apsqueue.C - Implementation of ApsQueue class.
Make Process Makefile.am,
Makefile.in
- Makefiles used to build sources in this directory

End User Program Source Files - .../programs Directory

Module / Document Filename(s) Install location Description
Developer Tools apsupdatedb.c - Program to update printer model database from Linux HOWTO Printer Compatibility Database and/or one or more .PPD files.
Make Process Makefile.am,
Makefile.in
- Makefiles used to build sources in this directory

API-Level Test Program Source Files - .../testaps Directory

Module / Document Filename(s) Install location Description
testaps Makefile - Makefile used to build API-level test program. Build from testaps.mk by the tmake program.
apsdefs.h - Defines the input and output parameter headres for each APS API function available via testaps.
main.C - Entrypoint for program, creates application class and runs event loop.
testaps.C,
testaps.h
- Main implementation of program.
testaps.mk - Source makefile used to generate Makefile via tmake program.

.deb Packaging Scripts - .../debian Directory

Module / Document Filename(s) Install location Description
.deb Packaging README.debian - Notes specific to the .deb package distribution of APS.
changelog - Revision history document for inclusion in .deb packages.
control - Control file that defines the packages to be built.
copyright - Copyright information to be included in .deb packages.
dirs - Directories that are used at install time.
docs - List of document files to be included in .dev packages.
libaps.files - List of files specific to the libaps package.
rules - Executable makefile for building .deb package.