]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/ipp-private.h
Merge changes from CUPS 1.6svn-r10112.
[thirdparty/cups.git] / cups / ipp-private.h
index 2120c086519d263169ad8290a98ecddecb4c1813..1fcea0f4ec900e07d04fd4f87f79ca8b37b44d6f 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   Private IPP definitions for CUPS.
  *
- *   Copyright 2007-2010 by Apple Inc.
+ *   Copyright 2007-2011 by Apple Inc.
  *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -46,6 +46,103 @@ extern "C" {
  * Structures...
  */
 
+typedef union _ipp_request_u           /**** Request Header ****/
+{
+  struct                               /* Any Header */
+  {
+    ipp_uchar_t        version[2];             /* Protocol version number */
+    int                op_status;              /* Operation ID or status code*/
+    int                request_id;             /* Request ID */
+  }            any;
+
+  struct                               /* Operation Header */
+  {
+    ipp_uchar_t        version[2];             /* Protocol version number */
+    ipp_op_t   operation_id;           /* Operation ID */
+    int                request_id;             /* Request ID */
+  }            op;
+
+  struct                               /* Status Header */
+  {
+    ipp_uchar_t        version[2];             /* Protocol version number */
+    ipp_status_t status_code;          /* Status code */
+    int                request_id;             /* Request ID */
+  }            status;
+
+  /**** New in CUPS 1.1.19 ****/
+  struct                               /* Event Header @since CUPS 1.1.19/Mac OS X 10.3@ */
+  {
+    ipp_uchar_t        version[2];             /* Protocol version number */
+    ipp_status_t status_code;          /* Status code */
+    int                request_id;             /* Request ID */
+  }            event;
+} _ipp_request_t;
+
+/**** New in CUPS 1.1.19 ****/
+
+typedef union _ipp_value_u             /**** Attribute Value ****/
+{
+  int          integer;                /* Integer/enumerated value */
+
+  char         boolean;                /* Boolean value */
+
+  ipp_uchar_t  date[11];               /* Date/time value */
+
+  struct
+  {
+    int                xres,                   /* Horizontal resolution */
+               yres;                   /* Vertical resolution */
+    ipp_res_t  units;                  /* Resolution units */
+  }            resolution;             /* Resolution value */
+
+  struct
+  {
+    int                lower,                  /* Lower value */
+               upper;                  /* Upper value */
+  }            range;                  /* Range of integers value */
+
+  struct
+  {
+    char       *language;              /* Language code */
+    char       *text;                  /* String */
+  }            string;                 /* String with language value */
+
+  struct
+  {
+    int                length;                 /* Length of attribute */
+    void       *data;                  /* Data in attribute */
+  }            unknown;                /* Unknown attribute type */
+
+/**** New in CUPS 1.1.19 ****/
+  ipp_t                *collection;            /* Collection value @since CUPS 1.1.19/Mac OS X 10.3@ */
+} _ipp_value_t;
+
+struct _ipp_attribute_s                /**** Attribute ****/
+{
+  ipp_attribute_t *next;               /* Next attribute in list */
+  ipp_tag_t    group_tag,              /* Job/Printer/Operation group tag */
+               value_tag;              /* What type of value is it? */
+  char         *name;                  /* Name of attribute */
+  int          num_values;             /* Number of values */
+  _ipp_value_t values[1];              /* Values */
+};
+
+struct _ipp_s                          /**** IPP Request/Response/Notification ****/
+{
+  ipp_state_t          state;          /* State of request */
+  _ipp_request_t       request;        /* Request header */
+  ipp_attribute_t      *attrs;         /* Attributes */
+  ipp_attribute_t      *last;          /* Last attribute in list */
+  ipp_attribute_t      *current;       /* Current attribute (for read/write) */
+  ipp_tag_t            curtag;         /* Current attribute group tag */
+
+/**** New in CUPS 1.2 ****/
+  ipp_attribute_t      *prev;          /* Previous attribute (for read) @since CUPS 1.2/Mac OS X 10.5@ */
+
+/**** New in CUPS 1.4.4 ****/
+  int                  use;            /* Use count @since CUPS 1.4.4/Mac OS X 10.6.?@ */
+};
+
 typedef struct _ipp_buffer_s           /**** Read/write buffer ****/
 {
   unsigned char                d[IPP_BUF_SIZE];/* Data buffer */
@@ -66,11 +163,7 @@ typedef struct                              /**** Attribute mapping data ****/
  * Prototypes for private functions...
  */
 
-extern ipp_attribute_t *_ippAddAttr(ipp_t *ipp, int num_values);
-extern size_t          _ippAttrString(ipp_attribute_t *attr, char *buffer,
-                                      size_t bufsize);
 extern _ipp_option_t   *_ippFindOption(const char *name);
-extern void            _ippFreeAttr(ipp_attribute_t *attr);
 
 
 /*