XpStartJob(3Xp)

okay bestie, this is XpStartJob(3Xp) from the XPRINT FUNCTIONS manual section β€” the function that literally says β€œa print job starts here.” πŸ’…βœ¨

✨ NAME ✨

XpStartJob β€” Indicates the beginning of a single print job.

πŸ› οΈ SYNOPSIS πŸ› οΈ

             cc [ flag... ] file... -lXp [ library... ]
             #include <X11/extensions/Print.h>

       void XpStartJob ( display, output_mode )
             Display *display;
             XPSaveData output_mode;

πŸŽ€ ARGUMENTS πŸŽ€

  • display β€” Specifies a pointer to the Display structure; returned from XOpenDisplay.
  • output_mode β€” Specifies how the printer output data is to be handled.

πŸ’… DESCRIPTION πŸ’…

okay so XpStartJob signals the beginning of a new print job. periodt. 🎬

if output_mode is XPSpool, the X Print Server will automatically spool the printer output. if output_mode is XPGetData, then the X Print Server buffers the document output for retrieval by XpGetDocumentData. in this case, the print server suspends processing further requests on this print context until some other client sends XpGetDocumentData. subsequent operations that use the print context may be suspended at any time pending the processing of XpGetDocumentData replies to read any buffered output. 😭

XpStartJob sets the job-owner job attribute (included in the XPJobAttr pool) immediately prior to issuing the PrintStartJob request. on POSIX systems, the job-owner attribute is set using getpwuid_r on the result of getuid. this attribute may be used by the X Print Server to identify the user to the spooler. πŸ•΅οΈβ€β™€οΈ

all changes to the XPJobAttr attribute pool (see XpSetAttributes) must be made prior to calling XpStartJob, after which an XPBadSequence will be generated if changes are attempted, until XpEndJob is called. so like, do your attribute edits first, bestie. πŸ”₯

for clients selecting XPPrintMask (see XpSelectInput), the event XPPrintNotify will be generated with its detail field set to XPStartJobNotify when the X Print Server has completed the PrintStartJob request. πŸ‘‘

conceptually, a β€œJob” is a collection of β€œDocuments”, where each Document is in turn a collection of β€œPages”. depending on the print facilities underlying the X Print Server, these delineations may be mapped by a DDX driver into real functionality (e.g. see the server attribute multiple-documents-supported). πŸ¦‹

🧚 STRUCTURES 🧚

the XPSaveData values for output_mode are defined in <X11/extensions/Print.h>. : πŸŽ€

           #define XPSpool               1   /βˆ— Job data sent to spooler */
           #define XPGetData             2   /βˆ— Job data via XpGetDocumentData */

πŸ’€ DIAGNOSTICS πŸ’€

  • BadValue β€” The value specified for output_mode is not valid.
  • XPBadContext β€” A valid print context-id has not been set prior to making this call.
  • XPBadSequence β€” The function was not called in the proper order with respect to the other X Print Service Extension calls (example, XpEndDoc prior to XpStartDoc).

🌈 SEE ALSO 🌈

go read these too, iykyk: πŸ’–

  • XpEndJob(3Xp)
  • XpGetDocumentData(3Xp)
  • XpSelectInput(3Xp)
  • XpSetAttributes(3Xp)
  • XpStartJob(3Xp)

okay that’s the whole page, bestie β€” footer sign-off says source/version X Version 11 and libXp 1.0.4, with XpStartJob(3Xp) as the footer tag (no extra date line in this version, just so you know). periodt. πŸ’–βœ¨

πŸ“¦ where this page comes from