// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_javax_print_ipp_IppRequest__
#define __gnu_javax_print_ipp_IppRequest__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace print
      {
        namespace ipp
        {
          class IppRequest;
          class IppResponse;
        }
      }
    }
  }
  namespace java
  {
    namespace net
    {
      class HttpURLConnection;
      class URI;
    }
  }
  namespace javax
  {
    namespace print
    {
      namespace attribute
      {
        class Attribute;
        class AttributeSet;
      }
    }
  }
}

class gnu::javax::print::ipp::IppRequest : public ::java::lang::Object
{
public:
  IppRequest (::java::net::URI *, ::java::lang::String *, ::java::lang::String *);
private:
  jint incrementRequestIdCounter ();
public:
  virtual jint getRequestID () { return request_id; }
  virtual void setData (::java::io::InputStream *);
  virtual void setData (jbyteArray);
  virtual void setOperationID (jshort);
  virtual void setOperationAttributeDefaults ();
  virtual void addJobAttribute (::javax::print::attribute::Attribute *);
  virtual void addPrinterAttributes (::javax::print::attribute::Attribute *);
  virtual void addOperationAttribute (::javax::print::attribute::Attribute *);
  virtual void addAndFilterJobOperationAttributes (::javax::print::attribute::AttributeSet *);
  virtual void addAndFilterJobTemplateAttributes (::javax::print::attribute::AttributeSet *);
  virtual ::gnu::javax::print::ipp::IppResponse *send ();
private:
  static const jint timeout = 1000L;
public: // actually package-private
  static ::java::util::logging::Logger *logger;
private:
  static jint requestIdCounter;
  static const jint VERSION = 257L;
  jboolean __attribute__((aligned(__alignof__( ::java::lang::Object ))))  alreadySent;
  jshort operation_id;
  jint request_id;
  ::javax::print::attribute::AttributeSet *operationAttributes;
  ::javax::print::attribute::AttributeSet *printerAttributes;
  ::javax::print::attribute::AttributeSet *jobAttributes;
  ::java::lang::Object *data;
  ::java::net::URI *requestUri;
  ::java::net::HttpURLConnection *connection;

  friend class gnu_javax_print_ipp_IppRequest$RequestWriter;
public:

  static ::java::lang::Class class$;
};

#endif /* __gnu_javax_print_ipp_IppRequest__ */
