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

#ifndef __gnu_CORBA_RawReply__
#define __gnu_CORBA_RawReply__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
      namespace CDR
      {
          class BufferredCdrInput;
      }
      namespace GIOP
      {
          class MessageHeader;
      }
        class RawReply;
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class ORB;
      }
    }
  }
}

class gnu::CORBA::RawReply : public ::java::lang::Object
{

public: // actually package-private
  RawReply(::org::omg::CORBA::ORB *, ::gnu::CORBA::GIOP::MessageHeader *, JArray< jbyte > *);
  virtual ::gnu::CORBA::CDR::BufferredCdrInput * getStream();
  ::gnu::CORBA::GIOP::MessageHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) header;
  ::org::omg::CORBA::ORB * orb;
  JArray< jbyte > * data;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_RawReply__
