⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messengers.cpp

📁 在开发TAO的命名服务中用到的服务端及客户端源代码。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// -*- 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 
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:588

#ifndef _TAO_IDL_MESSENGERS_CPP_
#define _TAO_IDL_MESSENGERS_CPP_


#include "MessengerS.h"
#include "tao/PortableServer/Operation_Table_Perfect_Hash.h"
#include "tao/PortableServer/Upcall_Command.h"
#include "tao/PortableServer/Upcall_Wrapper.h"
#include "tao/PortableServer/Object_SArgument_T.h"
#include "tao/PortableServer/Special_Basic_SArguments.h"
#include "tao/PortableServer/UB_String_SArguments.h"
#include "tao/PortableServer/TypeCode_SArg_Traits.h"
#include "tao/PortableServer/Object_SArg_Traits.h"
#include "tao/PortableServer/get_arg.h"
#include "tao/Special_Basic_Arguments.h"
#include "tao/UB_String_Arguments.h"
#include "tao/TAO_Server_Request.h"
#include "tao/ORB_Core.h"
#include "tao/Profile.h"
#include "tao/Stub.h"
#include "tao/IFR_Client_Adapter.h"
#include "tao/Object_T.h"
#include "tao/Typecode.h"
#include "tao/DynamicC.h"
#include "tao/CDR.h"
#include "tao/operation_details.h"
#include "tao/PortableInterceptor.h"
#include "tao/Special_Basic_Arguments.h"
#include "tao/UB_String_Arguments.h"
#include "ace/Dynamic_Service.h"
#include "ace/Malloc_Allocator.h"

#if defined (__BORLANDC__)
#pragma option -w-rvl -w-rch -w-ccc -w-aus
#endif /* __BORLANDC__ */

#if !defined (__ACE_INLINE__)
#include "MessengerS.inl"
#endif /* !defined INLINE */

// TAO_IDL - Generated from
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:68

// Arg traits specializations.
namespace TAO
{
}


// TAO_IDL - Generated from
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:68

// Arg traits specializations.
namespace TAO
{
}


// TAO_IDL - Generated from
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1456

class TAO_Messenger_Perfect_Hash_OpTable
  : public TAO_Perfect_Hash_OpTable
{
private:
  unsigned int hash (const char *str, unsigned int len);

public:
  const TAO_operation_db_entry * lookup (const char *str, unsigned int len);
};

/* C++ code produced by gperf version 2.8 (ACE version) */
/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_Messenger_Perfect_Hash_OpTable -N lookup  */
unsigned int
TAO_Messenger_Perfect_Hash_OpTable::hash (const char *str, unsigned int len)
{
  static const unsigned char asso_values[] =
    {
#if defined (ACE_MVS)
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18,  0,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18,  0,
     18, 18, 18,  5, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18,  0,  0, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18,
#else
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18,  0, 18,  0, 18, 18,
     18,  5, 18, 18, 18, 18, 18, 18, 18, 18,
     18, 18, 18, 18, 18,  0,  0, 18, 18, 18,
     18, 18, 18, 18, 18, 18, 18, 18,
#endif /* ACE_MVS */
    };
  return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]];
}

const struct TAO_operation_db_entry *
TAO_Messenger_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len)
{
  enum
    {
      TOTAL_KEYWORDS = 5,
      MIN_WORD_LENGTH = 5,
      MAX_WORD_LENGTH = 13,
      MIN_HASH_VALUE = 5,
      MAX_HASH_VALUE = 17,
      HASH_VALUE_RANGE = 13,
      DUPLICATES = 0,
      WORDLIST_SIZE = 10
    };

  static const struct TAO_operation_db_entry  wordlist[] =
    {
      {"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},
      {"_is_a", &POA_Messenger::_is_a_skel, 0},
      {"",0,0},{"",0,0},{"",0,0},{"",0,0},
      {"_component", &POA_Messenger::_component_skel, 0},
      {"",0,0},{"",0,0},
      {"_non_existent", &POA_Messenger::_non_existent_skel, 0},
      {"",0,0},
      {"_interface", &POA_Messenger::_interface_skel, 0},
      {"",0,0},
      {"send_message", &POA_Messenger::send_message_skel, 0},
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      unsigned int key = hash (str, len);

      if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
        {
          const char *s = wordlist[key].opname;

          if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
            return &wordlist[key];
        }
    }
  return 0;
}

static TAO_Messenger_Perfect_Hash_OpTable tao_Messenger_optable;

// TAO_IDL - Generated from
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:853

TAO::Collocation_Proxy_Broker *
_TAO_Messenger_Proxy_Broker_Factory_function (CORBA::Object_ptr)
{
  return reinterpret_cast<TAO::Collocation_Proxy_Broker *> (0xdead); // Dummy
}

int
_TAO_Messenger_Proxy_Broker_Factory_Initializer (size_t)
{
  _TAO_Messenger_Proxy_Broker_Factory_function_pointer = 
    _TAO_Messenger_Proxy_Broker_Factory_function;
  
  return 0;
}

static int
_TAO_Messenger_Proxy_Broker_Stub_Factory_Initializer_Scarecrow =
  _TAO_Messenger_Proxy_Broker_Factory_Initializer (
      reinterpret_cast<size_t> (_TAO_Messenger_Proxy_Broker_Factory_Initializer)
    );



// TAO_IDL - Generated from 
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:103

POA_Messenger::POA_Messenger (void)
  : TAO_ServantBase ()
{
  this->optable_ = &tao_Messenger_optable;
}

POA_Messenger::POA_Messenger (const POA_Messenger& rhs)
  : TAO_Abstract_ServantBase (rhs),
    TAO_ServantBase (rhs)
{
}

POA_Messenger::~POA_Messenger (void)
{
}


// TAO_IDL - Generated from
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/upcall_command_ss.cpp:127

class send_message_Messenger
  : public TAO::Upcall_Command
{
public:
  inline send_message_Messenger (
    POA_Messenger * servant,
    TAO_Operation_Details const * operation_details,
    TAO::Argument * const args[])
    : servant_ (servant)
    , operation_details_ (operation_details)
    , args_ (args)
  {
  }
  
  virtual void execute (ACE_ENV_SINGLE_ARG_DECL)
  {
    TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval =
      TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type> (
        this->operation_details_,
        this->args_);
    
    TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 =
      TAO::Portable_Server::get_in_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::in_arg_type> (
        this->operation_details_,
        this->args_,
        1);
      
    TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_2 =
      TAO::Portable_Server::get_in_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::in_arg_type> (
        this->operation_details_,
        this->args_,
        2);
      
    TAO::SArg_Traits< CORBA::Char *>::inout_arg_type arg_3 =
      TAO::Portable_Server::get_inout_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::inout_arg_type> (
        this->operation_details_,
        this->args_,
        3);
      
    
    retval =
      this->servant_->send_message (
        arg_1
        , arg_2
        , arg_3
        ACE_ENV_ARG_PARAMETER);
      
  }

private:
  POA_Messenger * const servant_;
  TAO_Operation_Details const * const operation_details_;
  TAO::Argument * const * const args_;
};


// TAO_IDL - Generated from 
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:192

void POA_Messenger::send_message_skel (
    TAO_ServerRequest & server_request,
    void * TAO_INTERCEPTOR (servant_upcall),
    void * servant
    ACE_ENV_ARG_DECL
  )
{
  
  
#if TAO_HAS_INTERCEPTORS == 1
  static CORBA::TypeCode_ptr const * const exceptions = 0;
  static size_t const nexceptions = 0;
#endif /* TAO_HAS_INTERCEPTORS */
  
  TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval;
  TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_user_name;
  TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_subject;
  TAO::SArg_Traits< CORBA::Char *>::inout_arg_val _tao_message;
  
  TAO::Argument * const args[] =
    {
      &retval,
      &_tao_user_name,
      &_tao_subject,
      &_tao_message
    };
  
  static size_t const nargs = 4;
  
  POA_Messenger * const impl =
    static_cast<POA_Messenger *> (servant);

  send_message_Messenger command (
    impl,
    server_request.operation_details (),
    args);
  
  TAO::Upcall_Wrapper upcall_wrapper;
  upcall_wrapper.upcall (server_request
                         , args
                         , nargs
                         , command
#if TAO_HAS_INTERCEPTORS == 1
                         , servant_upcall
                         , exceptions
                         , nexceptions
#endif  /* TAO_HAS_INTERCEPTORS == 1 */
                         ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;
  
}

// TAO_IDL - Generated from 
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:169



// TAO_IDL - Generated from
// D:\tao\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/upcall_command_ss.cpp:127

class _is_a_Messenger_Upcall_Command
  : public TAO::Upcall_Command
{
public:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -