
// 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();
  virtual void setData(::java::io::InputStream *);
  virtual void setData(JArray< jbyte > *);
  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 = 1000;
public: // actually package-private
  static ::java::util::logging::Logger * logger;
private:
  static jint requestIdCounter;
  static const jshort VERSION = 257;
  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;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_print_ipp_IppRequest__
