www.pudn.com > Messenger.rar > MessengerC.cpp


// -*- C++ -*- 
// 
// $Id$ 
 
// ****  Code generated by the The ACE ORB (TAO) IDL Compiler **** 
// TAO and the TAO IDL Compiler have been developed by: 
//       Center for Distributed Object Computing 
//       Washington University 
//       St. Louis, MO 
//       USA 
//       http://www.cs.wustl.edu/~schmidt/doc-center.html 
// and 
//       Distributed Object Computing Laboratory 
//       University of California at Irvine 
//       Irvine, CA 
//       USA 
//       http://doc.ece.uci.edu/ 
// and 
//       Institute for Software Integrated Systems 
//       Vanderbilt University 
//       Nashville, TN 
//       USA 
//       http://www.isis.vanderbilt.edu/ 
// 
// Information about TAO is available at: 
//     http://www.cs.wustl.edu/~schmidt/TAO.html 
 
// TAO_IDL - Generated from 
// .\be\be_codegen.cpp:338 
 
 
#include "MessengerC.h" 
#include "tao/Exception_Data.h" 
#include "tao/Invocation_Adapter.h" 
#include "tao/Object_T.h" 
#include "tao/Typecode.h" 
#include "tao/Any_Impl_T.h" 
#include "tao/Special_Basic_Arguments.h" 
#include "tao/UB_String_Arguments.h" 
#include "ace/OS_NS_string.h" 
 
#if defined (__BORLANDC__) 
#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig 
#endif /* __BORLANDC__ */ 
 
#if !defined (__ACE_INLINE__) 
#include "MessengerC.i" 
#endif /* !defined INLINE */ 
 
// TAO_IDL - Generated from 
// .\be\be_visitor_arg_traits.cpp:62 
 
// Arg traits specializations. 
namespace TAO 
{ 
} 
 
 
// TAO_IDL - Generated from 
// e:\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 
 
// Traits specializations for Messenger. 
 
ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION 
Messenger_ptr 
TAO::Objref_Traits::tao_duplicate ( 
    Messenger_ptr p 
  ) 
{ 
  return Messenger::_duplicate (p); 
} 
 
ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION 
void 
TAO::Objref_Traits::tao_release ( 
    Messenger_ptr p 
  ) 
{ 
  CORBA::release (p); 
} 
 
ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION 
Messenger_ptr 
TAO::Objref_Traits::tao_nil (void) 
{ 
  return Messenger::_nil (); 
} 
 
ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION 
CORBA::Boolean 
TAO::Objref_Traits::tao_marshal ( 
    Messenger_ptr p, 
    TAO_OutputCDR & cdr 
  ) 
{ 
  return p->marshal (cdr); 
} 
 
// Function pointer for collocation factory initialization. 
TAO::Collocation_Proxy_Broker *  
(*_TAO_Messenger_Proxy_Broker_Factory_function_pointer) ( 
    CORBA::Object_ptr obj 
  ) = 0; 
 
// TAO_IDL - Generated from 
// e:\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 
 
CORBA::Boolean Messenger::send_message ( 
    const char * user_name, 
    const char * subject, 
    char *& message 
  ) 
  ACE_THROW_SPEC (( 
    CORBA::SystemException 
  )) 
{ 
  if (!this->is_evaluated ()) 
    { 
      ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); 
    } 
   
  if (this->the_TAO_Messenger_Proxy_Broker_ == 0) 
    { 
      Messenger_setup_collocation ( 
          this->ACE_NESTED_CLASS (CORBA, Object)::_is_collocated () 
        ); 
    } 
   
  ACE_DECLARE_NEW_CORBA_ENV; 
  TAO::Arg_Traits::ret_val _tao_retval; 
  TAO::Arg_Traits::in_arg_val _tao_user_name (user_name); 
  TAO::Arg_Traits::in_arg_val _tao_subject (subject); 
  TAO::Arg_Traits::inout_arg_val _tao_message (message); 
   
  TAO::Argument *_tao_signature [] = 
    { 
      &_tao_retval, 
      &_tao_user_name, 
      &_tao_subject, 
      &_tao_message 
    }; 
   
  TAO::Invocation_Adapter _tao_call ( 
      this, 
      _tao_signature, 
      4, 
      "send_message", 
      12, 
      this->the_TAO_Messenger_Proxy_Broker_ 
    ); 
   
  _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); 
  ACE_CHECK_RETURN (_tao_retval.excp ()); 
   
  return _tao_retval.retn (); 
} 
 
Messenger::Messenger (int collocated) 
 : the_TAO_Messenger_Proxy_Broker_ (0) 
{ 
  this->Messenger_setup_collocation (collocated); 
} 
 
void 
Messenger::Messenger_setup_collocation (int collocated) 
{ 
  if (collocated) 
    { 
      this->the_TAO_Messenger_Proxy_Broker_ = 
        ::_TAO_Messenger_Proxy_Broker_Factory_function_pointer (this); 
    } 
} 
 
Messenger::~Messenger (void) 
{} 
 
void  
Messenger::_tao_any_destructor (void *_tao_void_pointer) 
{ 
  Messenger *_tao_tmp_pointer = 
    ACE_static_cast (Messenger *, _tao_void_pointer); 
  CORBA::release (_tao_tmp_pointer); 
} 
 
Messenger_ptr 
Messenger::_narrow ( 
    CORBA::Object_ptr _tao_objref 
    ACE_ENV_ARG_DECL 
  ) 
{ 
  return 
    TAO::Narrow_Utils::narrow ( 
        _tao_objref, 
        "IDL:Messenger:1.0", 
        _TAO_Messenger_Proxy_Broker_Factory_function_pointer 
        ACE_ENV_ARG_PARAMETER 
      ); 
} 
 
Messenger_ptr 
Messenger::_unchecked_narrow ( 
    CORBA::Object_ptr _tao_objref 
    ACE_ENV_ARG_DECL 
  ) 
{ 
  return 
    TAO::Narrow_Utils::unchecked_narrow ( 
        _tao_objref, 
        "IDL:Messenger:1.0", 
        _TAO_Messenger_Proxy_Broker_Factory_function_pointer 
        ACE_ENV_ARG_PARAMETER 
      ); 
} 
 
Messenger_ptr 
Messenger::_duplicate (Messenger_ptr obj) 
{ 
  if (! CORBA::is_nil (obj)) 
    { 
      obj->_add_ref (); 
    } 
   
  return obj; 
} 
 
CORBA::Boolean 
Messenger::_is_a ( 
    const char *value 
    ACE_ENV_ARG_DECL 
  ) 
{ 
  if ( 
      !ACE_OS::strcmp ( 
          (char *)value, 
          "IDL:Messenger:1.0" 
        ) || 
      !ACE_OS::strcmp ( 
          (char *)value, 
          "IDL:omg.org/CORBA/Object:1.0" 
        ) 
     ) 
    { 
      return 1; // success using local knowledge 
    } 
  else 
    { 
      return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ( 
          value 
          ACE_ENV_ARG_PARAMETER 
        ); 
    } 
} 
 
const char* Messenger::_interface_repository_id (void) const 
{ 
  return "IDL:Messenger:1.0"; 
} 
 
CORBA::Boolean 
Messenger::marshal (TAO_OutputCDR &cdr) 
{ 
  return (cdr << this); 
} 
 
// TAO_IDL - Generated from 
// e:\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_defn.cpp:284 
 
static const CORBA::Long _oc_Messenger[] = 
{ 
    TAO_ENCAP_BYTE_ORDER, // byte order 
  18, 
  ACE_NTOHL (0x49444c3a),  
  ACE_NTOHL (0x4d657373),  
  ACE_NTOHL (0x656e6765),  
  ACE_NTOHL (0x723a312e),  
  ACE_NTOHL (0x30000000),  // repository ID = IDL:Messenger:1.0 
    10, 
  ACE_NTOHL (0x4d657373),  
  ACE_NTOHL (0x656e6765),  
  ACE_NTOHL (0x72000000),  // name = Messenger 
  }; 
 
static CORBA::TypeCode _tc_TAO_tc_Messenger ( 
    CORBA::tk_objref, 
    sizeof (_oc_Messenger), 
    (char *) &_oc_Messenger, 
    0, 
    sizeof (Messenger) 
  ); 
 
::CORBA::TypeCode_ptr _tc_Messenger = 
  &_tc_TAO_tc_Messenger; 
 
// TAO_IDL - Generated from 
// e:\ace_wrappers\tao\tao_idl\be\be_visitor_interface/any_op_cs.cpp:50 
 
ACE_TEMPLATE_SPECIALIZATION 
CORBA::Boolean 
TAO::Any_Impl_T::to_object ( 
    CORBA::Object_ptr &_tao_elem 
  ) const 
{ 
  _tao_elem = CORBA::Object::_duplicate (this->value_); 
  return 1; 
} 
 
// Copying insertion. 
void 
operator<<= ( 
    CORBA::Any &_tao_any, 
    Messenger_ptr _tao_elem 
  ) 
{ 
  Messenger_ptr _tao_objptr = 
    Messenger::_duplicate (_tao_elem); 
  _tao_any <<= &_tao_objptr; 
} 
 
// Non-copying insertion. 
void 
operator<<= ( 
    CORBA::Any &_tao_any, 
    Messenger_ptr *_tao_elem 
  ) 
{ 
  TAO::Any_Impl_T::insert ( 
      _tao_any, 
      Messenger::_tao_any_destructor, 
      _tc_Messenger, 
      *_tao_elem 
    ); 
} 
 
CORBA::Boolean 
operator>>= ( 
    const CORBA::Any &_tao_any, 
    Messenger_ptr &_tao_elem 
  ) 
{ 
  return 
    TAO::Any_Impl_T::extract ( 
        _tao_any, 
        Messenger::_tao_any_destructor, 
        _tc_Messenger, 
        _tao_elem 
      ); 
} 
 
// TAO_IDL - Generated from 
// e:\ace_wrappers\tao\tao_idl\be\be_visitor_interface/cdr_op_cs.cpp:63 
 
CORBA::Boolean operator<< ( 
    TAO_OutputCDR &strm, 
    const Messenger_ptr _tao_objref 
  ) 
{ 
  CORBA::Object_ptr _tao_corba_obj = _tao_objref; 
  return (strm << _tao_corba_obj); 
} 
 
CORBA::Boolean operator>> ( 
    TAO_InputCDR &strm, 
    Messenger_ptr &_tao_objref 
  ) 
{ 
  CORBA::Object_var obj; 
   
  if ((strm >> obj.inout ()) == 0) 
    { 
      return 0; 
    } 
   
  typedef ::Messenger RHS_SCOPED_NAME; 
   
  // Narrow to the right type. 
  _tao_objref = 
    TAO::Narrow_Utils::unchecked_narrow ( 
        obj.in (), 
        _TAO_Messenger_Proxy_Broker_Factory_function_pointer 
      ); 
     
  return 1; 
}