| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
A little bit of detail explaining how makequeues works, and the role of
the printer module cache ...
"makequeues -r" starts by removing all printer queues associated with
the USB IOM. Then it scans the bus for printers. For each printer it
builds a URI of the form
usb://<manufacturer>/<model>?serial=<serialnumber>
Next, makequeues scans the pmcache for an entry that matches the URI.
There are 2 instances of the PM cache, one is preinstalled with the
system
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/
PrintCore.framework/Resources/com.apple.pmcache.xml
and the other is written to
~/Library/Preferences/ByHost/com.apple.print.PrintCenter.plist
by Print Center whenever the cache needs to be updated. Look at the
PM cache to see how we get a PM's name and version based on the
information in the printer URI.
Once a pmcache entry is selected, makequeues creates a printer queue in
the same way as Print Center does when the user clicks the Add button.
Why do we use a cache file instead of loading the USB PBM and calling
the PM, like Print Center does? The answer is performance. There is a
price to pay for this performance benefit. makequeues runs as root so
the queue is created with root's language preference. Also any queue
created by makequeues misses the icon that is normally provided by the
PM.
For developers, you should note that Print Center only adds new entries
to the pmcache (it never removes entries) and makequeues stops scanning
the cache as soon as it finds an entry with a matching manufacturer +
model. That means you need to change your bundle name and/or version
number if you want makequeues to find your latest installed PM.
The printing sub-system seems to be caching info about my printer driver._______________________________________________
Even if I delete my driver via the Print Center, this cached info hangs
around and affects the way my driver is called when I add it back. Anyone
have any idea where this cache is located and how I can completely remove my
driver and all associated info about it from the bowels of the OS ?
Thanks -
Alec Carlson
-----------------------------------------------------------------------
Time is Short and the Water Rises
-----------------------------------------------------------------------
_______________________________________________
printing mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/printing
Do not post admin requests to the list. They will be ignored.
| References: | |
| >System caching print driver info... (From: Alec Carlson <email@hidden>) |
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.