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

#ifndef __gnu_xml_pipeline_CallFilter$Requestor__
#define __gnu_xml_pipeline_CallFilter$Requestor__

#pragma interface

#include <gnu/xml/util/XMLWriter.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace pipeline
      {
          class CallFilter;
          class CallFilter$Requestor;
      }
    }
  }
}

class gnu::xml::pipeline::CallFilter$Requestor : public ::gnu::xml::util::XMLWriter
{

public: // actually package-private
  CallFilter$Requestor(::gnu::xml::pipeline::CallFilter *);
public:
  void startDocument();
  void endDocument();
public: // actually package-private
  ::gnu::xml::pipeline::CallFilter * __attribute__((aligned(__alignof__( ::gnu::xml::util::XMLWriter)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_pipeline_CallFilter$Requestor__
