coll_tester.cpp
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· C++ 代码 · 共 158 行
CPP
158 行
// Coll_Tester.cpp,v 1.7 2004/01/02 21:18:36 bala Exp
//============================================================================
//
// =FILENAME
// Collocation_Test.h
//
// =DESCRIPTION
// Server class to perform testing of TAO's collocation mechanism.
//
// =AUTHOR
// Nanbor Wang
//
//=============================================================================
#include "Coll_Tester.h"
#include "Smart_Proxy_Impl.h"
Collocation_Test::Collocation_Test (void)
{
// no-op.
}
int
Collocation_Test::init (int argc, char *argv[] ACE_ENV_ARG_DECL)
{
// Initialize the ORB.
this->orb_ = CORBA::ORB_init (argc, argv, 0 ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
int result = this->parse_args (argc, argv);
if (result != 0)
return result;
// Get an Object reference to RootPOA.
CORBA::Object_var obj =
this->orb_->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
// Narrow the Object reference to a POA reference
this->root_poa_ =
PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
// Get the POAManager of RootPOA
this->poa_manager_ =
this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
// Activate the diamond servant and its base classes under RootPOA.
PortableServer::ObjectId_var id =
this->root_poa_->activate_object (&this->top_servant_
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
// // We only care about the most derived class here.
// this->diamond_obj_ = this->diamond_servant_._this (ACE_ENV_SINGLE_ARG_PARAMETER);
// ACE_CHECK_RETURN (-1);
id =
this->root_poa_->activate_object (&this->diamond_servant_
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
// We only care about the most derived class here.
this->diamond_obj_ = this->root_poa_->id_to_reference (id.in ()
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
id =
this->root_poa_->activate_object (&this->left_servant_
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
id =
this->root_poa_->activate_object (&this->right_servant_
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
CORBA::String_var str =
this->orb_->object_to_string (this->diamond_obj_.in ()
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
ACE_DEBUG ((LM_DEBUG, "Diamond Servant activated:\n %s\n",
str.in()));
return 0;
}
int
Collocation_Test::parse_args (int argc, char *argv[])
{
ACE_UNUSED_ARG(argc);
ACE_UNUSED_ARG(argv);
return 0;
}
int
Collocation_Test::test_narrow (ACE_ENV_SINGLE_ARG_DECL)
{
// Ensure that the smart proxy is the one which is used by registering
// the user-defined factory. Its necessary to create one on the heap so
// the lifetime of the factory object can be managed by the framework.
Smart_Diamond_Top_Factory *factory = 0;
ACE_NEW_RETURN (factory,
Smart_Diamond_Top_Factory,
-1);
Diamond::Top_var top =
Diamond::Top::_narrow (this->diamond_obj_.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
Diamond::Left_var left =
Diamond::Left::_narrow (this->diamond_obj_.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
Diamond::Right_var right =
Diamond::Right::_narrow (this->diamond_obj_.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
Diamond::Buttom_var buttom =
Diamond::Buttom::_narrow (this->diamond_obj_.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
CORBA::String_var str = top->shape (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
ACE_DEBUG ((LM_DEBUG, "Calling top->shape: %s\n", str.in ()));
str = left->shape (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
ACE_DEBUG ((LM_DEBUG, "Calling left->shape: %s\n", str.in ()));
str = right->shape (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
ACE_DEBUG ((LM_DEBUG, "Calling right->shape: %s\n", str.in ()));
str = buttom->shape (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
ACE_DEBUG ((LM_DEBUG, "Calling buttom->shape: %s\n", str.in ()));
return 0;
}
int
Collocation_Test::run (ACE_ENV_SINGLE_ARG_DECL)
{
this->poa_manager_->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
this->test_narrow (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?