// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1999
// Object Oriented Concepts, Inc.
// Billerica, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.2
// License: non-commercial

#include <OB/CORBA.h>
#include <OB/IntRepMember_skel.h>

#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined!
#endif

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

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

//
// IDL:omg.org/CORBA/IRObject/def_kind:1.0
//
OBDispatchStatus
CORBA_IRObject_skel::_OB_get_def_kind(OBBuffer& _ob_buf,
                                      bool _ob_sw,
                                      CORBA_ULong _ob_offIn,
                                      CORBA_ULong _ob_offOut)
{
    CORBA_DefinitionKind _ob_r = def_kind();

    CORBA_ULong _ob_cnt = _ob_offOut;
    OBMarshalCount(_ob_r, _ob_cnt);

    _ob_buf.alloc(_ob_cnt);
    CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
    OBMarshal(_ob_r, _ob_o);

    return OBDispatchStatusOK;
}

//
// IDL:omg.org/CORBA/IRObject/destroy:1.0
//
OBDispatchStatus
CORBA_IRObject_skel::_OB_op_destroy(OBBuffer& _ob_buf,
                                    bool _ob_sw,
                                    CORBA_ULong _ob_offIn,
                                    CORBA_ULong _ob_offOut)
{
    destroy();

    CORBA_ULong _ob_cnt = _ob_offOut;

    _ob_buf.alloc(_ob_cnt);

    return OBDispatchStatusOK;
}

//
// IDL:omg.org/CORBA/IRObject:1.0
//
OBDispatchStatus
CORBA_IRObject_skel::_OB_dispatch(const char* _ob_op,
                                  OBBuffer& _ob_buf,
                                  bool _ob_sw,
                                  CORBA_ULong _ob_offIn,
                                  CORBA_ULong _ob_offOut)
{
    static const char* _ob_names[] =
    {
        "_get_def_kind",
        "destroy"
    };
    static const CORBA_ULong _ob_numNames = 2;

    switch(_OB_findOperation(_ob_op, _ob_names, _ob_numNames))
    {
    case 0: // _get_def_kind
        return _OB_get_def_kind(_ob_buf, _ob_sw, _ob_offIn, _ob_offOut);

    case 1: // destroy
        return _OB_op_destroy(_ob_buf, _ob_sw, _ob_offIn, _ob_offOut);
    }

    return CORBA_Object_skel::_OB_dispatch(_ob_op, _ob_buf, _ob_sw, _ob_offIn, _ob_offOut);
}

//
// IDL:omg.org/CORBA/IDLType/type:1.0
//
OBDispatchStatus
CORBA_IDLType_skel::_OB_get_type(OBBuffer& _ob_buf,
                                 bool _ob_sw,
                                 CORBA_ULong _ob_offIn,
                                 CORBA_ULong _ob_offOut)
{
    CORBA_TypeCode_var _ob_r = type();

    CORBA_ULong _ob_cnt = _ob_offOut;
    OBMarshalCount(_ob_r.in(), _ob_cnt);

    _ob_buf.alloc(_ob_cnt);
    CORBA_Octet* _ob_o = _ob_buf.data + _ob_offOut;
    OBMarshal(_ob_r.in(), _ob_o);

    return OBDispatchStatusOK;
}

//
// IDL:omg.org/CORBA/IDLType:1.0
//
OBDispatchStatus
CORBA_IDLType_skel::_OB_dispatch(const char* _ob_op,
                                 OBBuffer& _ob_buf,
                                 bool _ob_sw,
                                 CORBA_ULong _ob_offIn,
                                 CORBA_ULong _ob_offOut)
{
    static const char* _ob_names[] =
    {
        "_get_def_kind",
        "_get_type",
        "destroy"
    };
    static const CORBA_ULong _ob_numNames = 3;

    switch(_OB_findOperation(_ob_op, _ob_names, _ob_numNames))
    {
    case 0: // _get_def_kind
        return _OB_get_def_kind(_ob_buf, _ob_sw, _ob_offIn, _ob_offOut);

    case 1: // _get_type
        return _OB_get_type(_ob_buf, _ob_sw, _ob_offIn, _ob_offOut);

    case 2: // destroy
        return _OB_op_destroy(_ob_buf, _ob_sw, _ob_offIn, _ob_offOut);
    }

    return CORBA_Object_skel::_OB_dispatch(_ob_op, _ob_buf, _ob_sw, _ob_offIn, _ob_offOut);
}
