// This file is generated by omniidl (C++ backend) - omniORB_4_1. Do not edit.

#include "RefHardCtrlProv.hh"

OMNI_USING_NAMESPACE(omni)

static const char* _0RL_dyn_library_version = omniORB_4_1_dyn;

static ::CORBA::TypeCode::_Tracker _0RL_tcTrack(__FILE__);

static CORBA::PR_structMember _0RL_structmember_Frame[] = {
  {"mat", CORBA::TypeCode::PR_array_tc(3, CORBA::TypeCode::PR_array_tc(3, CORBA::TypeCode::PR_double_tc(), &_0RL_tcTrack), &_0RL_tcTrack)},
  {"pos", CORBA::TypeCode::PR_array_tc(3, CORBA::TypeCode::PR_double_tc(), &_0RL_tcTrack)}
};

#ifdef _0RL_tc_Frame
#  undef _0RL_tc_Frame
#endif
static CORBA::TypeCode_ptr _0RL_tc_Frame = CORBA::TypeCode::PR_struct_tc("IDL:Frame:1.0", "Frame", _0RL_structmember_Frame, 2, &_0RL_tcTrack);

const CORBA::TypeCode_ptr _tc_Frame = _0RL_tc_Frame;


static CORBA::PR_structMember _0RL_structmember_Position2D[] = {
  {"x", CORBA::TypeCode::PR_double_tc()},
  {"y", CORBA::TypeCode::PR_double_tc()},
  {"theta", CORBA::TypeCode::PR_double_tc()}
};

#ifdef _0RL_tc_Position2D
#  undef _0RL_tc_Position2D
#endif
static CORBA::TypeCode_ptr _0RL_tc_Position2D = CORBA::TypeCode::PR_struct_tc("IDL:Position2D:1.0", "Position2D", _0RL_structmember_Position2D, 3, &_0RL_tcTrack);

const CORBA::TypeCode_ptr _tc_Position2D = _0RL_tc_Position2D;


static CORBA::PR_structMember _0RL_structmember_Position3D[] = {
  {"x", CORBA::TypeCode::PR_double_tc()},
  {"y", CORBA::TypeCode::PR_double_tc()},
  {"z", CORBA::TypeCode::PR_double_tc()},
  {"a", CORBA::TypeCode::PR_double_tc()},
  {"b", CORBA::TypeCode::PR_double_tc()},
  {"c", CORBA::TypeCode::PR_double_tc()}
};

#ifdef _0RL_tc_Position3D
#  undef _0RL_tc_Position3D
#endif
static CORBA::TypeCode_ptr _0RL_tc_Position3D = CORBA::TypeCode::PR_struct_tc("IDL:Position3D:1.0", "Position3D", _0RL_structmember_Position3D, 6, &_0RL_tcTrack);

const CORBA::TypeCode_ptr _tc_Position3D = _0RL_tc_Position3D;


const CORBA::TypeCode_ptr _tc_RefHardCtrl = CORBA::TypeCode::PR_interface_tc("IDL:RefHardCtrl:1.0", "RefHardCtrl", &_0RL_tcTrack);

static void _0RL_Frame_marshal_fn(cdrStream& _s, void* _v)
{
  Frame* _p = (Frame*)_v;
  *_p >>= _s;
}
static void _0RL_Frame_unmarshal_fn(cdrStream& _s, void*& _v)
{
  Frame* _p = new Frame;
  *_p <<= _s;
  _v = _p;
}
static void _0RL_Frame_destructor_fn(void* _v)
{
  Frame* _p = (Frame*)_v;
  delete _p;
}

void operator<<=(::CORBA::Any& _a, const Frame& _s)
{
  Frame* _p = new Frame(_s);
  _a.PR_insert(_0RL_tc_Frame,
               _0RL_Frame_marshal_fn,
               _0RL_Frame_destructor_fn,
               _p);
}
void operator<<=(::CORBA::Any& _a, Frame* _sp)
{
  _a.PR_insert(_0RL_tc_Frame,
               _0RL_Frame_marshal_fn,
               _0RL_Frame_destructor_fn,
               _sp);
}

::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, Frame*& _sp)
{
  return _a >>= (const Frame*&) _sp;
}
::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, const Frame*& _sp)
{
  void* _v;
  if (_a.PR_extract(_0RL_tc_Frame,
                    _0RL_Frame_unmarshal_fn,
                    _0RL_Frame_marshal_fn,
                    _0RL_Frame_destructor_fn,
                    _v)) {
    _sp = (const Frame*)_v;
    return 1;
  }
  return 0;
}

static void _0RL_Position2D_marshal_fn(cdrStream& _s, void* _v)
{
  Position2D* _p = (Position2D*)_v;
  *_p >>= _s;
}
static void _0RL_Position2D_unmarshal_fn(cdrStream& _s, void*& _v)
{
  Position2D* _p = new Position2D;
  *_p <<= _s;
  _v = _p;
}
static void _0RL_Position2D_destructor_fn(void* _v)
{
  Position2D* _p = (Position2D*)_v;
  delete _p;
}

void operator<<=(::CORBA::Any& _a, const Position2D& _s)
{
  Position2D* _p = new Position2D(_s);
  _a.PR_insert(_0RL_tc_Position2D,
               _0RL_Position2D_marshal_fn,
               _0RL_Position2D_destructor_fn,
               _p);
}
void operator<<=(::CORBA::Any& _a, Position2D* _sp)
{
  _a.PR_insert(_0RL_tc_Position2D,
               _0RL_Position2D_marshal_fn,
               _0RL_Position2D_destructor_fn,
               _sp);
}

::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, Position2D*& _sp)
{
  return _a >>= (const Position2D*&) _sp;
}
::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, const Position2D*& _sp)
{
  void* _v;
  if (_a.PR_extract(_0RL_tc_Position2D,
                    _0RL_Position2D_unmarshal_fn,
                    _0RL_Position2D_marshal_fn,
                    _0RL_Position2D_destructor_fn,
                    _v)) {
    _sp = (const Position2D*)_v;
    return 1;
  }
  return 0;
}

static void _0RL_Position3D_marshal_fn(cdrStream& _s, void* _v)
{
  Position3D* _p = (Position3D*)_v;
  *_p >>= _s;
}
static void _0RL_Position3D_unmarshal_fn(cdrStream& _s, void*& _v)
{
  Position3D* _p = new Position3D;
  *_p <<= _s;
  _v = _p;
}
static void _0RL_Position3D_destructor_fn(void* _v)
{
  Position3D* _p = (Position3D*)_v;
  delete _p;
}

void operator<<=(::CORBA::Any& _a, const Position3D& _s)
{
  Position3D* _p = new Position3D(_s);
  _a.PR_insert(_0RL_tc_Position3D,
               _0RL_Position3D_marshal_fn,
               _0RL_Position3D_destructor_fn,
               _p);
}
void operator<<=(::CORBA::Any& _a, Position3D* _sp)
{
  _a.PR_insert(_0RL_tc_Position3D,
               _0RL_Position3D_marshal_fn,
               _0RL_Position3D_destructor_fn,
               _sp);
}

::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, Position3D*& _sp)
{
  return _a >>= (const Position3D*&) _sp;
}
::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, const Position3D*& _sp)
{
  void* _v;
  if (_a.PR_extract(_0RL_tc_Position3D,
                    _0RL_Position3D_unmarshal_fn,
                    _0RL_Position3D_marshal_fn,
                    _0RL_Position3D_destructor_fn,
                    _v)) {
    _sp = (const Position3D*)_v;
    return 1;
  }
  return 0;
}

static void _0RL_RefHardCtrl_marshal_fn(cdrStream& _s, void* _v)
{
  omniObjRef* _o = (omniObjRef*)_v;
  omniObjRef::_marshal(_o, _s);
}
static void _0RL_RefHardCtrl_unmarshal_fn(cdrStream& _s, void*& _v)
{
  omniObjRef* _o = omniObjRef::_unMarshal(RefHardCtrl::_PD_repoId, _s);
  _v = _o;
}
static void _0RL_RefHardCtrl_destructor_fn(void* _v)
{
  omniObjRef* _o = (omniObjRef*)_v;
  if (_o)
    omni::releaseObjRef(_o);
}

void operator<<=(::CORBA::Any& _a, RefHardCtrl_ptr _o)
{
  RefHardCtrl_ptr _no = RefHardCtrl::_duplicate(_o);
  _a.PR_insert(_tc_RefHardCtrl,
               _0RL_RefHardCtrl_marshal_fn,
               _0RL_RefHardCtrl_destructor_fn,
               _no->_PR_getobj());
}
void operator<<=(::CORBA::Any& _a, RefHardCtrl_ptr* _op)
{
  _a.PR_insert(_tc_RefHardCtrl,
               _0RL_RefHardCtrl_marshal_fn,
               _0RL_RefHardCtrl_destructor_fn,
               (*_op)->_PR_getobj());
  *_op = RefHardCtrl::_nil();
}

::CORBA::Boolean operator>>=(const ::CORBA::Any& _a, RefHardCtrl_ptr& _o)
{
  void* _v;
  if (_a.PR_extract(_tc_RefHardCtrl,
                    _0RL_RefHardCtrl_unmarshal_fn,
                    _0RL_RefHardCtrl_marshal_fn,
                    _0RL_RefHardCtrl_destructor_fn,
                    _v)) {
    omniObjRef* _r = (omniObjRef*)_v;
    if (_r)
      _o = (RefHardCtrl_ptr)_r->_ptrToObjRef(RefHardCtrl::_PD_repoId);
    else
      _o = RefHardCtrl::_nil();
    return 1;
  }
  return 0;
}

