// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 2003
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 4.1.3

#ifndef __OB_Custom_h__
#define __OB_Custom_h__

#ifndef OB_IMPORT
#   ifdef OB_DLL
#      define OB_IMPORT __declspec(dllimport)
#   else
#      define OB_IMPORT /**/
#   endif
#endif


#include <OB/TypeCode.h>
#include <OB/Types.h>
#include <OB/Native.h>
#include <OB/Custom_fwd.h>

#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4010300L)
#       error ORBacus version mismatch!
#   endif
#endif

namespace OBStubImpl_CORBA
{

} // End of namespace OBStubImpl_CORBA

namespace OBStubImpl_CORBA
{

} // End of namespace OBStubImpl_CORBA

//
// IDL:omg.org/CORBA:1.0
//
namespace CORBA
{

//
// IDL:omg.org/CORBA/DataOutputStream:1.0
//
class DataOutputStream : virtual public ::CORBA::ValueBase
{
    void operator=(const DataOutputStream&);

    static const char* _ob_id_;

protected:

    DataOutputStream() { }
    virtual ~DataOutputStream() { }

public:

    typedef DataOutputStream_var _var_type;

    static DataOutputStream* _downcast(::CORBA::ValueBase*);
    static DataOutputStream* _downcast(::CORBA::AbstractBase_ptr);

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_any:1.0
    //
    virtual void write_any(const ::CORBA::Any& value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_boolean:1.0
    //
    virtual void write_boolean(::CORBA::Boolean value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_char:1.0
    //
    virtual void write_char(::CORBA::Char value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_wchar:1.0
    //
    virtual void write_wchar(::CORBA::WChar value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_octet:1.0
    //
    virtual void write_octet(::CORBA::Octet value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_short:1.0
    //
    virtual void write_short(::CORBA::Short value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_ushort:1.0
    //
    virtual void write_ushort(::CORBA::UShort value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_long:1.0
    //
    virtual void write_long(::CORBA::Long value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_ulong:1.0
    //
    virtual void write_ulong(::CORBA::ULong value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_longlong:1.0
    //
    virtual void write_longlong(::CORBA::LongLong value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_ulonglong:1.0
    //
    virtual void write_ulonglong(::CORBA::ULongLong value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_float:1.0
    //
    virtual void write_float(::CORBA::Float value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_double:1.0
    //
    virtual void write_double(::CORBA::Double value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_longdouble:1.0
    //
    virtual void write_longdouble(::CORBA::LongDouble value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_string:1.0
    //
    virtual void write_string(const char* value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_wstring:1.0
    //
    virtual void write_wstring(const ::CORBA::WChar* value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_Object:1.0
    //
    virtual void write_Object(::CORBA::Object_ptr value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_Abstract:1.0
    //
    virtual void write_Abstract(AbstractBase_ptr value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_Value:1.0
    //
    virtual void write_Value(::CORBA::ValueBase* value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_TypeCode:1.0
    //
    virtual void write_TypeCode(::CORBA::TypeCode_ptr value) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_any_array:1.0
    //
    virtual void write_any_array(const AnySeq& seq,
                                 ::CORBA::ULong offset,
                                 ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_boolean_array:1.0
    //
    virtual void write_boolean_array(const BooleanSeq& seq,
                                     ::CORBA::ULong offset,
                                     ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_char_array:1.0
    //
    virtual void write_char_array(const CharSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_wchar_array:1.0
    //
    virtual void write_wchar_array(const WCharSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_octet_array:1.0
    //
    virtual void write_octet_array(const OctetSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_short_array:1.0
    //
    virtual void write_short_array(const ShortSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_ushort_array:1.0
    //
    virtual void write_ushort_array(const UShortSeq& seq,
                                    ::CORBA::ULong offset,
                                    ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_long_array:1.0
    //
    virtual void write_long_array(const LongSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_ulong_array:1.0
    //
    virtual void write_ulong_array(const ULongSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_ulonglong_array:1.0
    //
    virtual void write_ulonglong_array(const ULongLongSeq& seq,
                                       ::CORBA::ULong offset,
                                       ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_longlong_array:1.0
    //
    virtual void write_longlong_array(const LongLongSeq& seq,
                                      ::CORBA::ULong offset,
                                      ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_float_array:1.0
    //
    virtual void write_float_array(const FloatSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataOutputStream/write_double_array:1.0
    //
    virtual void write_double_array(const DoubleSeq& seq,
                                    ::CORBA::ULong offset,
                                    ::CORBA::ULong length) = 0;

    static const char* _OB_id();

    virtual const char* _OB_typeId() const;
};

//
// IDL:omg.org/CORBA/DataInputStream:1.0
//
class DataInputStream : virtual public ::CORBA::ValueBase
{
    void operator=(const DataInputStream&);

    static const char* _ob_id_;

protected:

    DataInputStream() { }
    virtual ~DataInputStream() { }

public:

    typedef DataInputStream_var _var_type;

    static DataInputStream* _downcast(::CORBA::ValueBase*);
    static DataInputStream* _downcast(::CORBA::AbstractBase_ptr);

    //
    // IDL:omg.org/CORBA/DataInputStream/read_any:1.0
    //
    virtual ::CORBA::Any* read_any() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_boolean:1.0
    //
    virtual ::CORBA::Boolean read_boolean() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_char:1.0
    //
    virtual ::CORBA::Char read_char() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_wchar:1.0
    //
    virtual ::CORBA::WChar read_wchar() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_octet:1.0
    //
    virtual ::CORBA::Octet read_octet() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_short:1.0
    //
    virtual ::CORBA::Short read_short() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_ushort:1.0
    //
    virtual ::CORBA::UShort read_ushort() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_long:1.0
    //
    virtual ::CORBA::Long read_long() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_ulong:1.0
    //
    virtual ::CORBA::ULong read_ulong() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_longlong:1.0
    //
    virtual ::CORBA::LongLong read_longlong() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_ulonglong:1.0
    //
    virtual ::CORBA::ULongLong read_ulonglong() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_float:1.0
    //
    virtual ::CORBA::Float read_float() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_double:1.0
    //
    virtual ::CORBA::Double read_double() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_longdouble:1.0
    //
    virtual ::CORBA::LongDouble read_longdouble() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_string:1.0
    //
    virtual char* read_string() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_wstring:1.0
    //
    virtual ::CORBA::WChar* read_wstring() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_Object:1.0
    //
    virtual ::CORBA::Object_ptr read_Object() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_Abstract:1.0
    //
    virtual AbstractBase_ptr read_Abstract() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_Value:1.0
    //
    virtual ::CORBA::ValueBase* read_Value() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_TypeCode:1.0
    //
    virtual ::CORBA::TypeCode_ptr read_TypeCode() = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_any_array:1.0
    //
    virtual void read_any_array(AnySeq& seq,
                                ::CORBA::ULong offset,
                                ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_boolean_array:1.0
    //
    virtual void read_boolean_array(BooleanSeq& seq,
                                    ::CORBA::ULong offset,
                                    ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_char_array:1.0
    //
    virtual void read_char_array(CharSeq& seq,
                                 ::CORBA::ULong offset,
                                 ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_wchar_array:1.0
    //
    virtual void read_wchar_array(WCharSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_octet_array:1.0
    //
    virtual void read_octet_array(OctetSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_short_array:1.0
    //
    virtual void read_short_array(ShortSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_ushort_array:1.0
    //
    virtual void read_ushort_array(UShortSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_long_array:1.0
    //
    virtual void read_long_array(LongSeq& seq,
                                 ::CORBA::ULong offset,
                                 ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_ulong_array:1.0
    //
    virtual void read_ulong_array(ULongSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_ulonglong_array:1.0
    //
    virtual void read_ulonglong_array(ULongLongSeq& seq,
                                      ::CORBA::ULong offset,
                                      ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_longlong_array:1.0
    //
    virtual void read_longlong_array(LongLongSeq& seq,
                                     ::CORBA::ULong offset,
                                     ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_float_array:1.0
    //
    virtual void read_float_array(FloatSeq& seq,
                                  ::CORBA::ULong offset,
                                  ::CORBA::ULong length) = 0;

    //
    // IDL:omg.org/CORBA/DataInputStream/read_double_array:1.0
    //
    virtual void read_double_array(DoubleSeq& seq,
                                   ::CORBA::ULong offset,
                                   ::CORBA::ULong length) = 0;

    static const char* _OB_id();

    virtual const char* _OB_typeId() const;
};

//
// IDL:omg.org/CORBA/CustomMarshal:1.0
//
class CustomMarshal : virtual public ::CORBA::ValueBase
{
    void operator=(const CustomMarshal&);

    static const char* _ob_id_;

protected:

    CustomMarshal() { }
    virtual ~CustomMarshal() { }

public:

    typedef CustomMarshal_var _var_type;

    static CustomMarshal* _downcast(::CORBA::ValueBase*);
    static CustomMarshal* _downcast(::CORBA::AbstractBase_ptr);

    //
    // IDL:omg.org/CORBA/CustomMarshal/marshal:1.0
    //
    virtual void marshal(DataOutputStream* os) = 0;

    //
    // IDL:omg.org/CORBA/CustomMarshal/unmarshal:1.0
    //
    virtual void unmarshal(DataInputStream* is) = 0;

    static const char* _OB_id();

    virtual const char* _OB_typeId() const;
};

} // End of namespace CORBA

//
// IDL:omg.org/CORBA:1.0
//
namespace OBProxy_CORBA
{

} // End of namespace OBProxy_CORBA

//
// IDL:omg.org/CORBA:1.0
//
namespace OBStubImpl_CORBA
{

} // End of namespace OBStubImpl_CORBA

//
// IDL:omg.org/CORBA:1.0
//
namespace OBMarshalStubImpl_CORBA
{

} // End of namespace OBMarshalStubImpl_CORBA

//
// IDL:omg.org/CORBA:1.0
//
namespace OBV_CORBA
{

} // End of namespace OBV_CORBA

#endif
