//-----------------------------------------------------------------------------// std::string CCorbaErrorHelper::ToString(const CORBA::Exception& err) { CORBA::Any tmp; tmp <<= err; CORBA::TypeCode_var tc = tmp.type(); return std::string(tc->name()); }
static ostream & operator<< (ostream & os, const CORBA::Exception & e) { CORBA::Any tmp; tmp <<= e; CORBA::TypeCode_var tc = tmp.type (); const char * p = tc->name (); if (*p != '\0') os << p; else os << tc->id (); return os; }
//-----------------------------------------------------------------------------// std::string CCorbaErrorHelper::ToString(const CORBA::SystemException& err) { std::string errDescription; TCHAR buf[50]; memset(buf, 0, sizeof(TCHAR) * 50); CORBA::Any tmp; tmp <<= err; CORBA::TypeCode_var tc = tmp.type(); errDescription = std::string(tc->name()) + _T(" Description: ") + err.NP_minorString(); errDescription += _T(" Minor code: "); errDescription += _ltoa_s(err.minor(), buf, 50, 10); return errDescription; }
virtual void push_structured_event(CosNotification::StructuredEvent const& event) throw(CosEventComm::Disconnected) { cout << "domain_name: " << event.header.fixed_header.event_type.domain_name << " type_name: " << event.header.fixed_header.event_type.type_name << " " << flush; if (false) { Miro::Client client; DynamicAny::DynAnyFactory_var daf = client.resolveInit<DynamicAny::DynAnyFactory>("DynAnyFactory"); DynamicAny::DynAny_var da = daf->create_dyn_any(event.remainder_of_body); CORBA::TypeCode_var tc = da->type(); if (tc->kind() == CORBA::tk_struct) { CORBA::String_var name = tc->name(); CORBA::String_var id = tc->id(); DynamicAny::DynStruct_var ds = DynamicAny::DynStruct::_narrow(da); for (CORBA::ULong i = 0; i < ds->component_count(); ++i) { DynamicAny::DynAny_var member = ds->current_component(); CORBA::String_var name = ds->current_member_name(); if (std::string("timestamp") == name.in()) { long long int i = member->get_ulonglong(); ACE_Time_Value t; ORBSVCS_Time::Absolute_TimeT_to_Time_Value(t, i); cout << "latency: " << ACE_OS::gettimeofday() - t << endl; break; } ds->next(); } } else { cerr << "unknown event layout" << endl; } } ACE_Time_Value t; t.set(time_out); ACE_OS::sleep(t); cout << "waking up after sleep" << endl; }
int TAO_Log_Constraint_Visitor::visit_special (ETCL_Special *special) { try { CORBA::TypeCode_var tc = this->current_member_->type (); switch (special->type ()) { case ETCL_LENGTH: { // If the TCKind is not a sequence or an array, the // call to length() will raise an exception, and the // catch block will return -1; CORBA::ULong length = tc->length (); TAO_ETCL_Literal_Constraint lit (length); this->queue_.enqueue_head (lit); return 0; } case ETCL_DISCRIMINANT: { // If the TCKind is not a union, the // call to init() will raise an exception, and the // catch block will return -1; TAO_DynUnion_i dyn_union; dyn_union.init (this->current_member_.in ()); DynamicAny::DynAny_var disc = dyn_union.get_discriminator (); CORBA::Any_var disc_any = disc->to_any (); TAO_ETCL_Literal_Constraint lit (disc_any.ptr ()); this->queue_.enqueue_head (lit); return 0; } case ETCL_TYPE_ID: { const char *name = tc->name (); TAO_ETCL_Literal_Constraint lit (name); this->queue_.enqueue_head (lit); return 0; } case ETCL_REPOS_ID: { const char *id = tc->id (); TAO_ETCL_Literal_Constraint lit (id); this->queue_.enqueue_head (lit); return 0; } default: return -1; } } catch (const CORBA::Exception&) { return -1; } }