89 lines
2.9 KiB
Plaintext
89 lines
2.9 KiB
Plaintext
|
BOOL InitializeMonitor(VOID)
|
||
|
|
||
|
This routine is called once by the print manager to start the monitor.
|
||
|
Any one time only initializition by the monitor is done here. For
|
||
|
the AppleTalk Monitor, we start a thread to capture networked printers.
|
||
|
|
||
|
|
||
|
BOOL AddPort()
|
||
|
|
||
|
This routine is called when the user selects 'other...' from the list
|
||
|
of ports. The AppleTalk Monitor presents a browse dialog to allow
|
||
|
the user to choose an AppleTalk printer. This dialog is modeled
|
||
|
after the Macintosh Chooser.
|
||
|
|
||
|
|
||
|
BOOL EnumPorts()
|
||
|
|
||
|
This routine is called whenever the print manager needs to determine
|
||
|
a list of available ports. We gather the data concerning each
|
||
|
configured port and pass it back.
|
||
|
|
||
|
|
||
|
BOOL DeletePort()
|
||
|
|
||
|
This routine is called when the print manager user selects 'Delete'
|
||
|
from the Details... dialog of the print manager. We remove the
|
||
|
selected port from the list and release the printer if it is
|
||
|
captured.
|
||
|
|
||
|
ISSUE: Can we guarantee that a job is not in progress for this
|
||
|
port when the call is made? How long can we take for this call?
|
||
|
If we have to release the printer, should we queue up a request
|
||
|
to our captive thread?
|
||
|
|
||
|
BOOL ConfigurePort()
|
||
|
|
||
|
This routine is called whenever the print manager user presses the
|
||
|
configure button for one of our ports. The AppleTalk Monitor
|
||
|
presents a dialog to allow the user to capture or not capture
|
||
|
the specified printer.
|
||
|
|
||
|
|
||
|
OpenPort()
|
||
|
|
||
|
Called by the print manager to establish a connection and to generate
|
||
|
a handle to the port. The AppleTalk Monitor attempts to PAPOpen the
|
||
|
printer, and if successful, returns a handle for the port.
|
||
|
|
||
|
ISSUES: What should the handle value be? Do we return false if
|
||
|
someone else has the printer open already? What happens if someone
|
||
|
tries to open the printer while it's being captured?
|
||
|
|
||
|
ClosePort()
|
||
|
|
||
|
Not sure the diff between close port and enddocport
|
||
|
|
||
|
|
||
|
ReadPort()
|
||
|
|
||
|
This routine is called when the print manager wants to read data
|
||
|
from the printer. Not sure if this is synchronous or not,
|
||
|
what we are supposed to do if there is no data to be read, or
|
||
|
what we are to do if there is more data to be read than the
|
||
|
specified buffer can hold.
|
||
|
|
||
|
|
||
|
WritePort()
|
||
|
|
||
|
This routine is called when the print manager wants to send data
|
||
|
to a printer. Is it synchronous or asynchronous? What are the
|
||
|
limits on the buffer sizes? What errors can be returned?
|
||
|
|
||
|
|
||
|
StartDocPort()
|
||
|
|
||
|
Called by the print manager at the beginning of a print job.
|
||
|
The AppleTalk Monitor should reset any job performance counts,
|
||
|
save a handle to the printer object (and job?) so that job
|
||
|
status can be updated and that the job can be deleted when
|
||
|
finished.
|
||
|
|
||
|
|
||
|
EndDocPort()
|
||
|
|
||
|
Called by the print manager at the end of the print job.
|
||
|
The AppleTalk Monitor should mark performance counts as
|
||
|
valid and store them somewhere as well as change the job
|
||
|
status to complete and delete the print job.
|