本文整理汇总了C++中meta_message_ptr::has_service_specific_tlv方法的典型用法代码示例。如果您正苦于以下问题:C++ meta_message_ptr::has_service_specific_tlv方法的具体用法?C++ meta_message_ptr::has_service_specific_tlv怎么用?C++ meta_message_ptr::has_service_specific_tlv使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类meta_message_ptr
的用法示例。
在下文中一共展示了meta_message_ptr::has_service_specific_tlv方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operator
/**
* Checks, in the transaction pool, if the incoming message belongs to a pending
* transaction. If true it runs the transaction, otherwise it creates a new
* transaction.
*
* @param in The input message.
*/
void message_in::operator()(meta_message_ptr& in)
{
// TODO: FIXME: check page 143 when adding support for fragment payload
if ((in->ackrsp() && (in->opcode() == mih::operation::request || in->opcode() == mih::operation::indication))
||
(!in->ackrsp() && in->opcode() == mih::operation::response)
||
(in->ackrsp() && in->opcode() == mih::operation::response && in->has_service_specific_tlv()))
{
// src
src_transaction_ptr t;
_tpool.find(in->source(), in->tid(), t);
if (t) {
t->in = in;
t->msg_in_avail = true;
if (t->start_ack_requestor)
t->ack_requestor();
if (t->start_ack_responder)
t->ack_responder();
if(t->transaction_status == ONGOING)
if(!(in->ackrsp() == true && in->opcode() == mih::operation::request))
t->run();
if (t->transaction_status != ONGOING && t->ack_requestor_status != ONGOING)
_tpool.del(t);
} else {
new_dst_transaction(in);
}
} else {
dst_transaction_ptr t;
_tpool.find(in->source(), in->tid(), t);
if (t) {
t->in = in;
t->msg_in_avail = true;
if (t->start_ack_requestor)
t->ack_requestor();
if(t->transaction_status == ONGOING)
t->run();
if (t->start_ack_responder && t->transaction_status == ONGOING)
t->ack_responder();
if (t->transaction_status != ONGOING && t->ack_requestor_status != ONGOING)
_tpool.del(t);
} else {
new_dst_transaction(in);
}
}
}