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

#ifndef __javax_print_CancelablePrintJob__
#define __javax_print_CancelablePrintJob__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace print
    {
        class CancelablePrintJob;
        class Doc;
        class PrintService;
      namespace attribute
      {
          class PrintJobAttributeSet;
          class PrintRequestAttributeSet;
      }
      namespace event
      {
          class PrintJobAttributeListener;
          class PrintJobListener;
      }
    }
  }
}

class javax::print::CancelablePrintJob : public ::java::lang::Object
{

public:
  virtual void cancel() = 0;
  virtual void addPrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *, ::javax::print::attribute::PrintJobAttributeSet *) = 0;
  virtual void addPrintJobListener(::javax::print::event::PrintJobListener *) = 0;
  virtual ::javax::print::attribute::PrintJobAttributeSet * getAttributes() = 0;
  virtual ::javax::print::PrintService * getPrintService() = 0;
  virtual void print(::javax::print::Doc *, ::javax::print::attribute::PrintRequestAttributeSet *) = 0;
  virtual void removePrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *) = 0;
  virtual void removePrintJobListener(::javax::print::event::PrintJobListener *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_print_CancelablePrintJob__
