本文整理汇总了C++中corba::Any_var::_retn方法的典型用法代码示例。如果您正苦于以下问题:C++ Any_var::_retn方法的具体用法?C++ Any_var::_retn怎么用?C++ Any_var::_retn使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corba::Any_var
的用法示例。
在下文中一共展示了Any_var::_retn方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
CORBA::Any *
test_i::get_value (CORBA::Long offset)
{
CORBA::Any_ptr retval_ptr = 0;
ACE_NEW_THROW_EX (retval_ptr,
CORBA::Any,
CORBA::NO_MEMORY ());
CORBA::Any_var retval = retval_ptr;
switch (offset)
{
case 1:
{
obvmod::tcOffset1 *vt1 = 0;
ACE_NEW_RETURN (vt1,
tcOffset1_i,
0);
vt1->mem (offset);
retval.inout () <<= &vt1;
break;
}
case 3:
{
obvmod::tcOffset003 *vt3 = 0;
ACE_NEW_RETURN (vt3,
tcOffset3_i,
0);
vt3->mem (offset);
retval.inout () <<= &vt3;
break;
}
case 5:
{
obvmod::tcOffset00005 *vt5 = 0;
ACE_NEW_RETURN (vt5,
tcOffset5_i,
0);
vt5->mem (offset);
retval.inout () <<= &vt5;
break;
}
case 7:
{
obvmod::tcOffset0000007 *vt7 = 0;
ACE_NEW_RETURN (vt7,
tcOffset7_i,
0);
vt7->mem (offset);
retval.inout () <<= &vt7;
break;
}
default:
return 0;
}
return retval._retn ();
}
示例2:
CORBA::Any*
CEC_Pull_Counting_Consumer::try_pull (CORBA::Boolean_out has_event)
{
if (CORBA::is_nil (this->supplier_proxy_.in ()))
{
has_event = 0;
return 0;
}
CORBA::Any_var event =
this->supplier_proxy_->try_pull (has_event);
if (has_event)
this->event_count++;
return event._retn ();
}
示例3: result
int
TAO_Log_Constraint_Visitor::visit_component_array (
ETCL_Component_Array *array)
{
try
{
// If we are here (from visit_component) the Any containing the
// component as found in property_lookup_ will be in current_member_.
CORBA::TypeCode_var tc = this->current_member_->type ();
CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in ());
DynamicAny::DynAny_var member;
CORBA::Boolean success = 0;
CORBA::ULong slot = (CORBA::ULong) *array->integer ();
switch (kind)
{
case CORBA::tk_array:
{
TAO_DynEnum_i dyn_array;
dyn_array.init (this->current_member_.in ());
success = dyn_array.seek (slot);
if (success == 0)
{
return -1;
}
member = dyn_array.current_component ();
break;
}
case CORBA::tk_sequence:
{
TAO_DynStruct_i dyn_sequence;
dyn_sequence.init (this->current_member_.in ());
success = dyn_sequence.seek (slot);
if (success == 0)
{
return -1;
}
member =
dyn_sequence.current_component ();
break;
}
// Enums and sequences are the only two cases handled
// by Component_Array.
default:
return -1;
}
CORBA::Any_var value = member->to_any ();
ETCL_Constraint *comp = array->component ();
if (comp == 0)
{
TAO_ETCL_Literal_Constraint result (value.ptr ());
this->queue_.enqueue_head (result);
return 0;
}
else
{
this->current_member_ = value._retn ();
return comp->accept (this);
}
}
catch (const CORBA::Exception&)
{
return -1;
}
}
示例4: ftr
void
ReplicaController::send_reply (
PortableInterceptor::ServerRequestInfo_ptr ri)
{
FT::FTRequestServiceContext_var ftr (
extract_context (ri));
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Sending reply for %s with rid %i\n",
ftr->client_id.in (),
ftr->retention_id));
// Prepare reply for logging.
CORBA::Any_var result =
ri->result ();
TAO_OutputCDR cdr;
result->impl ()->marshal_value (cdr);
Dynamic::ParameterList_var pl =
ri->arguments ();
CORBA::ULong len = pl->length ();
for (CORBA::ULong index = 0; index != len ; ++index)
{
//@@ No chance for PARAM_OUT
if ((*pl)[index].mode == CORBA::PARAM_INOUT)
{
(*pl)[index].argument.impl ()->marshal_value (cdr);
}
}
CORBA::OctetSeq_var reply;
ACE_NEW (reply.out (), CORBA::OctetSeq (cdr.total_length ()));
reply->length (cdr.total_length ());
CORBA::Octet* buf = reply->get_buffer ();
// @@ What if this throws an exception?? We don't have any way to
// check whether this succeeded
for (ACE_Message_Block const* mb = cdr.begin ();
mb != 0;
mb = mb->cont ())
{
ACE_OS::memcpy (buf, mb->rd_ptr (), mb->length ());
buf += mb->length ();
}
// Logging the reply and state update.
//
// First send message to members.
//
{
// Extract state update.
CORBA::OctetSeq_var oid = ri->object_id ();
PortableInterceptor::AdapterName_var an = ri->adapter_name ();
CORBA::Any_var state = ri->get_slot (state_slot_id ());
CORBA::TypeCode_var tc = state->type ();
if (tc->kind () == CORBA::tk_null)
{
ACE_DEBUG ((LM_DEBUG, "Slot update is void\n"));
PortableServer::POA_var poa = resolve_poa (an.in ());
PortableServer::ServantBase_var servant =
poa->id_to_servant (oid.in ());
Checkpointable* target =
dynamic_cast<Checkpointable*> (servant.in ());
if (target)
{
CORBA::Any_var tmp = target->get_state ();
if (tmp.ptr () != 0) state = tmp._retn ();
}
}
TAO_OutputCDR cdr;
cdr << oid.in ();
cdr << an.in ();
cdr << ftr->client_id.in ();
cdr << ftr->retention_id;
cdr << reply.in ();
cdr << state.in ();
size_t size = cdr.total_length ();
//.........这里部分代码省略.........