本文整理汇总了C++中cosnotification::NotificationServiceMonitorControl_var类的典型用法代码示例。如果您正苦于以下问题:C++ NotificationServiceMonitorControl_var类的具体用法?C++ NotificationServiceMonitorControl_var怎么用?C++ NotificationServiceMonitorControl_var使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了NotificationServiceMonitorControl_var类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: defined
int
ACE_TMAIN (int argc, ACE_TCHAR* argv[])
{
#if defined (TAO_HAS_MONITOR_FRAMEWORK) && (TAO_HAS_MONITOR_FRAMEWORK == 1)
try
{
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
CORBA::Object_var obj =
orb->string_to_object (
"corbaloc:iiop:127.0.0.1:32101/TAO_MonitorAndControl");
CosNotification::NotificationServiceMonitorControl_var monitor =
CosNotification::NotificationServiceMonitorControl::_narrow (
obj.in ());
if (CORBA::is_nil (monitor.in ()))
{
ACE_ERROR_RETURN ((LM_ERROR,
"Unable to resolve the TAO_MonitorAndControl\n"),
-1);
}
monitor->shutdown ();
orb->destroy ();
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception ("MonitorClient: ");
}
catch (...)
{
error ("Caught an unexpected exception type");
}
#else /* TAO_HAS_MONITOR_FRAMEWORK==1 */
ACE_UNUSED_ARG (argc);
ACE_UNUSED_ARG (argv);
#endif /* TAO_HAS_MONITOR_FRAMEWORK==1 */
return 0;
}
开发者ID:manut,项目名称:TAO,代码行数:42,代码来源:MonitorClient.cpp
示例2: owner_transfer
int
ACE_TMAIN (int argc, ACE_TCHAR* argv[])
{
int status = 0;
#if defined (TAO_HAS_MONITOR_FRAMEWORK) && (TAO_HAS_MONITOR_FRAMEWORK == 1)
try
{
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
if (parse_args (argc, argv) != 0)
{
return 1;
}
CORBA::Object_var obj =
orb->string_to_object (monitor_ior);
CosNotification::NotificationServiceMonitorControl_var nsm =
CosNotification::NotificationServiceMonitorControl::_narrow (obj.in ());
if (CORBA::is_nil (nsm.in ()))
{
ACE_ERROR_RETURN ((LM_ERROR,
"Monitor: Unable to locate the "
"Notification Service Monitor\n"),
1);
}
MonitorTestInterface_i* mti = 0;
ACE_NEW_RETURN (mti, MonitorTestInterface_i (nsm.in ()), 1);
PortableServer::ServantBase_var owner_transfer (mti);
CORBA::Object_var poa_object =
orb->resolve_initial_references("RootPOA");
PortableServer::POA_var root_poa =
PortableServer::POA::_narrow (poa_object.in ());
PortableServer::ObjectId_var id = root_poa->activate_object (mti);
CORBA::Object_var object = root_poa->id_to_reference (id.in ());
MonitorTestInterface_var test =
MonitorTestInterface::_narrow (object.in ());
CORBA::String_var ior = orb->object_to_string (test.in ());
// Test the case where there are no consumers or suppliers first
// before we write out our IOR
mti->running (MonitorTestInterface::NotifyService);
FILE *output_file= ACE_OS::fopen (ACE_TEXT_ALWAYS_CHAR(ior_output_file), ACE_TEXT ("w"));
if (output_file == 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
"Cannot open output file for writing IOR: %s\n",
ior_output_file),
1);
}
ACE_OS::fprintf (output_file, "%s", ior.in ());
ACE_OS::fclose (output_file);
PortableServer::POAManager_var poa_manager =
root_poa->the_POAManager ();
poa_manager->activate ();
orb->run ();
orb->destroy ();
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception ("test_monitor: ");
status++;
}
#else
ACE_UNUSED_ARG (argc);
ACE_UNUSED_ARG (argv);
#endif /* TAO_HAS_MONITOR_FRAMEWORK==1 */
return status;
}
开发者ID:OspreyHub,项目名称:ATCD,代码行数:82,代码来源:test_monitor.cpp
示例3: owner_transfer
int
TAO_MonitorManager::ORBTask::svc (void)
{
try
{
if (CORBA::is_nil (this->orb_.in ()))
{
ORBSVCS_ERROR_RETURN ((LM_ERROR,
"(%P|%t) TAO_MonitorManager: Unable to "
"initialize the ORB\n"),
1);
}
PortableServer::POA_var poa;
{
ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, guard, this->mutex_, -1);
CORBA::Object_var obj =
this->orb_->resolve_initial_references ("RootPOA");
poa = PortableServer::POA::_narrow (obj.in ());
if (CORBA::is_nil (poa.in ()))
{
ORBSVCS_ERROR_RETURN ((LM_ERROR,
"(%P|%t) TAO_MonitorManager: Unable to "
"resolve the RootPOA\n"),
1);
}
PortableServer::POAManager_var poa_manager = poa->the_POAManager ();
poa_manager->activate ();
// Activate the object
NotificationServiceMonitor_i* servant;
ACE_NEW_RETURN (servant,
NotificationServiceMonitor_i (this->orb_.in ()), 1);
PortableServer::ServantBase_var owner_transfer(servant);
PortableServer::ObjectId_var id = poa->activate_object (servant);
// Register the object with the IORTable
obj = poa->id_to_reference (id.in ());
CosNotification::NotificationServiceMonitorControl_var monitor =
CosNotification::NotificationServiceMonitorControl::_narrow (obj.in ());
CORBA::String_var ior = this->orb_->object_to_string (monitor.in ());
obj = this->orb_->resolve_initial_references ("IORTable");
IORTable::Table_var iortable = IORTable::Table::_narrow (obj.in ());
if (CORBA::is_nil (iortable.in ()))
{
ORBSVCS_ERROR_RETURN ((LM_ERROR,
"(%P|%t) TAO_MonitorManager: Unable to "
"resolve the IORTable\n"),
1);
}
iortable->bind(ACE_TEXT_ALWAYS_CHAR(mc_orb_name_.c_str()), ior.in ());
if (this->use_name_svc_)
{
TAO_Naming_Client nc;
nc.init (this->orb_.in ());
CosNaming::Name name (1);
name.length (1);
name[0].id = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR(mc_orb_name_.c_str()));
nc->rebind (name, monitor.in ());
}
if (this->ior_output_.length () > 0)
{
FILE* fp = ACE_OS::fopen (this->ior_output_.c_str (), "w");
if (fp == 0)
{
ORBSVCS_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("(%P|%t) TAO_MonitorManager: "
ACE_TEXT ("Unable to write to %s\n")),
this->ior_output_.c_str ()),
1);
}
else
{
ACE_OS::fprintf (fp, "%s", ior.in ());
ACE_OS::fclose (fp);
}
}
}
// R1: race condition (partially fixed):
// TAO_MonitorManager::fini() is called directly after
// TAO_MonitorManager::run(), the shutdown call on the ORB could
// happen but the ORB::run() loop won't exit.
startup_barrier_.wait ();
this->orb_->run ();
ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, guard, this->mutex_, -1);
// Destroy the POA and ORB
if (!CORBA::is_nil (poa.in ()))
//.........这里部分代码省略.........
开发者ID:asdlei00,项目名称:ACE,代码行数:101,代码来源:MonitorManager.cpp
示例4: catch
void
MonitorTestInterface_i::consumer_stats_check()
{
bool foundConsumerStats = false;
Monitor::NameList_var names = nsm_->get_statistic_names ();
CORBA::ULong length = names->length ();
for(CORBA::ULong i = 0; i < length; i++)
{
const char * name = names[i].in ();
size_t slashcount = 0;
bool isConsumerQueueSize = false;
for (size_t nCh = 0; name[nCh] != 0 && slashcount < 3; ++nCh)
{
if (name[nCh] == '/')
{
slashcount += 1;
if(slashcount == 3)
{
isConsumerQueueSize = 0 == ACE_OS::strcmp(
&name[nCh + 1],
NotifyMonitoringExt::EventChannelQueueSize);
}
}
}
if (isConsumerQueueSize)
{
foundConsumerStats = true;
// We have a consumer queue
try
{
Monitor::Data_var queueSizeData =
nsm_->get_statistic(name);
Monitor::Numeric queueSizeNum = queueSizeData->data_union.num ();
ACE_DEBUG ((LM_DEBUG, "Monitor: %s: Average: %f, Maximum: %f, Most recent: %f\n",
name,
queueSizeNum.average, queueSizeNum.maximum, queueSizeNum.last));
if (queueSizeNum.average <= 0.0 || queueSizeNum.average > 2000.0)
ACE_ERROR ((LM_ERROR, "Monitor: ERROR: %s average queue size [%f] should be greater than zero and less than 2000.\n",
name,
queueSizeNum.average));
if (queueSizeNum.last > 2000.0)
ACE_ERROR ((LM_ERROR, "Monitor: ERROR: %s most recent queue size [%f] should not be greater than 2000.\n",
name,
queueSizeNum.last));
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception (name);
}
}
}
if(! foundConsumerStats)
{
ACE_ERROR ((LM_ERROR, "Monitor: ERROR: No consumer queue size statistics found.\n"
));
}
}
开发者ID:OspreyHub,项目名称:ATCD,代码行数:59,代码来源:test_monitor.cpp
示例5: sizeof
void
MonitorTestInterface_i::brain_dump(const char * /*context*/)
{
#if 0 // verbose output should be controlled via a command line option
ACE_DEBUG ((LM_DEBUG, "\nStatistics as of: %s\n", context));
// Temporary::Dale: Dump known names
CosNotification::NotificationServiceMonitorControl::NameList_var names =
nsm_->get_statistic_names ();
CORBA::ULong length = names->length ();
ACE_DEBUG ((LM_DEBUG, "Statistic names [%d]\n", (int)length));
// It's much easier to read once it's sorted
const char** narray = 0;
ACE_NEW_THROW_EX (narray,
const char* [length],
CORBA::NO_MEMORY ());
for(CORBA::ULong i = 0; i < length; i++)
narray[i] = names[i].in ();
ACE_OS::qsort (narray, length,
sizeof (const char*), sorter);
for(CORBA::ULong i = 0; i < length; i++)
{
stat_dump(narray[i]);
}
delete [] narray;
#endif // verbose option
}
开发者ID:OspreyHub,项目名称:ATCD,代码行数:28,代码来源:test_monitor.cpp
示例6: switch
void
MonitorTestInterface_i::stat_dump (const char * statName)
{
try
{
Monitor::Data_var data = nsm_->get_statistic(statName);
switch (data->data_union._d())
{
case Monitor::DATA_NUMERIC:
{
ACE_DEBUG ((LM_DEBUG, "Numeric: %s\n", statName));
Monitor::Numeric num = data->data_union.num();
ACE_DEBUG ((LM_DEBUG, " count: %d, average: %f; sumsq: %f, min: %f, max: %f: last %f\n",
(unsigned int)num.count, num.average, num.sum_of_squares, num.minimum, num.maximum, num.last));
break;
}
default:
{
Monitor::NameList list = data->data_union.list ();
size_t len = list.length ();
ACE_DEBUG ((LM_DEBUG, "Text[%d]: %s\n", (int)len, statName));
for (size_t i = 0; i < len; i++)
{
ACE_CString str = list[i].in ();
ACE_DEBUG ((LM_DEBUG, " %d: %s\n", (int)i, str.c_str()));
}
break;
}
}
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception (statName);
}
}
开发者ID:OspreyHub,项目名称:ATCD,代码行数:37,代码来源:test_monitor.cpp
注:本文中的cosnotification::NotificationServiceMonitorControl_var类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论