PDLocalWriteStatus man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



PDReadStatus(3)			 Impressario		       PDReadStatus(3)

NAME
     PDReadStatus, PDReadOpStatus, PDLocalReadStatus, PDLocalReadOpStatus,
     PDLocalWriteStatus - reads/writes the printer status

SYNOPSIS
     #include <pod.h>

     int PDReadStatus(const char *printer_name,
		      PDStatusStruct **statusp,
		      PDMessageStruct **messagesp,
		      time_t *mod_timep);

     int PDLocalReadStatus(const char *printer_name,
			   PDStatusStruct **statusp,
			   PDMessageStruct **messagesp,
			   time_t *mod_timep);

     int PDReadOpStatus(const char *printer_name,
			int *op_statusp,
			time_t *mod_timep);

     int PDLocalReadOpStatus(const char *printer_name,
			     int *op_statusp,
			     time_t *mod_timep);

     int PDLocalWriteStatus(const char *printer_name,
			    PDStatusStruct *status,
			    PDMessageStruct *messages);

DESCRIPTION
     PDReadStatus and PDLocalReadStatus provide detailed information on the
     operational status of the specified printer, printer_name. The functions
     fill and return a PDStatusStruct with status information and return an
     array of PDMessageStruct messages. The message list consists of errors,
     warnings and general information related to the current operational
     condition of the printer. The number of messages in the list is given by
     the error_count field of the PDStatusStruct. There will be a maximum of
     PD_MESSAGE_MAX messages in the list. If error_count is 0, the value of
     messagesp is undefined.

     PDReadOpStatus and PDLocalReadOpStatus also provide printer status
     information. However, only the operational_status field of the
     PDStatusStruct is returned.

     The status reading functions all set mod_timep to the time the printer
     status information was last modified (see time(2)).

     PDLocalWriteStatus writes the specified PDStatusStruct and
     PDMessageStruct information to the specified printer's status file.
     messages is expected to be an array of message structures. The number of
     messages in the array must be the same as the number in the error_count
     field of the PDStatusStruct and must not exceed PD_MESSAGE_MAX. If there

									Page 1

PDReadStatus(3)			 Impressario		       PDReadStatus(3)

     are no messages to write, messages may be specified as NULL. libpod
     provides the PDMakeMessage convenience function to assist in filling a
     PDMessageStruct.

     Refer to the libpod(3) man page for information about the "Local"
     functions.

     The PDStatusStruct structure is defined as follows.

	  typedef struct _pdStatusStruct {
	      int  operational_status;		/* Printer status */
	      int  error_count;			/* Number of messages */
						/* error, warning & info */
	      int  media_type;			/* Media type */
	      int  number_of_colors;		/* Number of colors */
	      int  media_size;			/* Media size */
	      char printer_options[PD_STR_MAX]; /* Option info */
						/* (e.g. "8 MB RAM") */
	      char validation_mask;		/* Size validation mask */
	  } PDStatusStruct;

     operational_status	 Code indicating the operational status of the printer
			 (see pod.h).

     error_count	 Total number of error, warning and information
			 messages available in the err_status field of the
			 PDInfoStruct and in the messagesp array returned by
			 PDReadStatus and PDLocalReadStatus. When calling
			 PDLocalWriteStatus the number of message specified by
			 this field must match the number of messages in the
			 messagesp array and must not exceed PD_MESSAGE_MAX.

     media_type		 Code indicating the media type installed in the
			 printer (see pod.h).

     number_of_colors	 This field is a bitmask in which the number of
			 colors, colorspace, pixel depth and data format are
			 specified. The value for this field is constructed by
			 bitwise OR'ing the values for each of these
			 attributes. The bitmasks used in this field are all
			 prefixed PD_DATA_ and can be found in pod.h. Refer to
			 this file for a list of all possible bitmasks.	 For
			 example, to specify an RGB colorspace with eight bits
			 per pixel and a planar data format set this field to
			 PD_DATA_PLANAR | PD_DATA_DEPTH8 | PD_DATA_RGB. The
			 default values for these fields are PD_DATA_K,
			 PD_DATA_DEPTH1 and PD_DATA_CHUNKY.  Macros are
			 provided to decompose this field into its component
			 codes. For example, to determine the data depth the
			 macro PD_GET_DEPTH_CODE(number_of_colors) would be
			 used. Refer to pod.h for a list of these macros.

									Page 2

PDReadStatus(3)			 Impressario		       PDReadStatus(3)

     media_size		 Media size code (see pod.h).

     printer_options	 Installed printer options (e.g. "8 MByte RAM"). This
			 string is also used to indicate the current printer
			 resolution for printers that support multiple output
			 resolutions. While the PDInfoStruct contains a
			 resolution field, typically the nominal resolution is
			 stated. To specify the current resolution place
			 "CurrentRes = <xres> x <yres>" in this string. <xres>
			 and <yres> should be replaced with the current output
			 resolution. Note that the 'x' can be specified as 'X'
			 or ',' and whitespace before and after the character
			 is optional. Printer drivers should update this
			 string and filter programs that require the current
			 output resolution should parse for this string before
			 falling back to using the resolutions in the
			 PDInfoStruct. If a resolution string is not specified
			 in this field, the resolution is assumed to be that
			 specified in the PDInfoStruct. The convenience
			 function PDGetCurrentResolution(3) performs the above
			 procedure and returns the current output resolution.

     validation_mask	 Size table entry validation mask. If PDFindPageSize
			 is called with a size code of PD_SIZE_CURRENT,
			 dimensional information for the currently loaded
			 paper size will be returned. The mechanics of
			 determining this information is as follows. The
			 media_size field of the PDStatusStruct is used as the
			 size code to search the page table in the
			 PDInfoStruct. This table contains size information
			 for each page size the printer supports. Each page
			 table entry has a validation mask as well as a size
			 code. Dimensional information is returned for the
			 page size entry that matches the media_size value and
			 whose validation masks satisfy the relationship
			 (status mask & table mask) == status mask.  The
			 validation mask can be helpful in specifying page
			 dimensions for printers that support multiple
			 resolutions.  The page table can contain a number of
			 page names that are identical but with dimensions
			 appropriate to different resolutions. Each entry
			 would have a unique validation mask. This way the
			 status validation mask could be used to select the
			 proper page size for the current output resolution.

     The PDMessageStruct is defined as follows.

	  typedef struct _pdMessageStruct {
	      int message_code;
	      char message_text[PD_STR_MAX];
	  } PDMessageStruct;

									Page 3

PDReadStatus(3)			 Impressario		       PDReadStatus(3)

     message_code	 Error, warning or information message code ID (see
			 pod.h).

     message_text	 Text for the message truncated to a length of
			 PD_STR_MAX-1.

RETURN VALUE
     0 is returned if execution was successful. -1 is returned and PDerrno is
     set if an execution error has occurred.

EXECUTION ERROR CODES
     PDLocalReadStatus, PDLocalReadOpStatus, PDReadStatus and PDReadOpStatus
     will fail under the following circumstances.

     PD_LIBERR_BAD_PNAME      A NULL or empty printer name string has been
			      specified.

     PD_LIBERR_STATUS_READ    The status file could not be opened for reading
			      or an error occurred while reading the file.

     In addition, PDReadStatus and PDReadOpStatus will fail under the
     following circumstances.

     PD_LIBERR_NO_PRINTER     The specified printer has not been registered
			      with the printer spooling system and is,
			      therefore, inaccessible.

     PD_LIBERR_BAD_HOSTNAME   The network address of the specified hostname
			      could not be found.

     PD_LIBERR_NETWORK	      For an unknown reason, a network connection
			      could not be made with the remote printer host.

     PD_LIBERR_NET_TIMEOUT    A timeout occurred while attempting to
			      communicate with the remote printer host.

     PD_LIBERR_NET_INTR	      The program has been interrupted while
			      attempting to communicate with the remote
			      printer host.

     PD_LIBERR_NET_NOTREG     The podd daemon is not registered on the remote
			      printer host.

     PD_LIBERR_NET_PMAP	      The port mapper daemon failed on the remote
			      printer host.

     PD_LIBERR_NET_NOPROC     The client has called a libpod function that is
			      not supported by the podd daemon on the remote
			      printer host.

									Page 4

PDReadStatus(3)			 Impressario		       PDReadStatus(3)

     PD_LIBERR_NET_CLNTXDR    The libpod library XDR routines and the kernel's
			      XDR routines are incompatible.

     PD_LIBERR_NET_SVCXDR     The podd daemon XDR routines and the remote
			      printer host's kernel XDR routines are
			      incompatible.

     PD_LIBERR_NET_RPCMATCH   The version of RPC software on the client is
			      incompatible with the version on the remote
			      printer host.

     PD_LIBERR_NET_PROCMATCH  The version of the specified libpod function on
			      the client is incompatible with the version on
			      the remote printer host.

     PDLocalWriteStatus will fail under the following circumstances.

     PD_LIBERR_BAD_STRUCT     A NULL structure pointer has been specified.

     PD_LIBERR_BAD_PNAME      A NULL or empty printer name string has been
			      specified.

     PD_LIBERR_STATUS_WRITE   The status file could not be opened for writing
			      or an error occurred while writing the file.

     PD_LIBERR_MAX_MESSAGE    A request has been made to write more than
			      PD_MESSAGE_MAX messages to the status file.

     PD_LIBERR_BAD_MSGCNT     An invalid value has been specified for the
			      number of messages to write to the status file.

WARNINGS
     1.	  Upon successful execution, the PDReadStatus and PDLocalReadStatus
	  functions sets statusp and messagesp to point to internal copies of
	  the PDStatusStruct and PDMessagesStruct list respectively. The
	  contents of these structures can change after each libpod function
	  call.	 To preserve the contents of the structures across subsequent
	  libpod calls, they should be copied into user-allocated storage.

     2.	  The functions PDReadStatus and PDReadOpStatus call the libspool
	  function SLGetPrinterInfo. This libspool function is not reentrant.
	  This means that any pointer returned by a previous call to
	  SLGetPrinterInfo will be invalid after a call to either PDReadStatus
	  or PDReadOpStatus.

NOTES
     1.	  Since the POD files are owned by the lp account, super-user or lp
	  account privilege is required to successfully call the
	  PDLocalWriteStatus function.

									Page 5

PDReadStatus(3)			 Impressario		       PDReadStatus(3)

     2.	  The PDLocalWriteStatus function writes to the status file only if
	  the status information and messages in the file differ from those
	  specified as parameters to the function. The modification time of
	  the status file is updated only if a write takes place.

FILES
     /var/spool/lp/pod/[printer name].status

SEE ALSO
     PDMakeMessage(3), PDReadInfo(3), libpod(3), time(2), ctime(3)

									Page 6

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net