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

#ifndef __org_omg_PortableInterceptor_ClientRequestInterceptorOperations__
#define __org_omg_PortableInterceptor_ClientRequestInterceptorOperations__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace PortableInterceptor
      {
          class ClientRequestInfo;
          class ClientRequestInterceptorOperations;
      }
    }
  }
}

class org::omg::PortableInterceptor::ClientRequestInterceptorOperations : public ::java::lang::Object
{

public:
  virtual void send_request(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0;
  virtual void receive_reply(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0;
  virtual void receive_exception(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0;
  virtual void receive_other(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0;
  virtual void send_poll(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0;
  virtual void destroy() = 0;
  virtual ::java::lang::String * name() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_omg_PortableInterceptor_ClientRequestInterceptorOperations__
