本文整理汇总了C++中observer_ptr::get方法的典型用法代码示例。如果您正苦于以下问题:C++ observer_ptr::get方法的具体用法?C++ observer_ptr::get怎么用?C++ observer_ptr::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类observer_ptr
的用法示例。
在下文中一共展示了observer_ptr::get方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: invoke
bool put_data::invoke(observer_ptr o)
{
if (m_done)
{
m_invoke_count = -1;
return false;
}
// TODO: what if o is not an isntance of put_data_observer? This need to be
// redesigned for better type saftey.
put_data_observer* po = static_cast<put_data_observer*>(o.get());
entry e;
e["y"] = "q";
e["q"] = "put";
entry& a = e["a"];
a["v"] = m_data.value();
a["token"] = po->m_token;
if (m_data.is_mutable())
{
a["k"] = std::string(m_data.pk().data(), item_pk_len);
a["seq"] = m_data.seq();
a["sig"] = std::string(m_data.sig().data(), item_sig_len);
if (!m_data.salt().empty())
{
a["salt"] = m_data.salt();
}
}
return m_node.m_rpc.invoke(e, o->target_ep(), o);
}
示例2: invoke
bool put_data::invoke(observer_ptr o)
{
if (m_done) return false;
// TODO: what if o is not an instance of put_data_observer? This need to be
// redesigned for better type safety.
auto* po = static_cast<put_data_observer*>(o.get());
entry e;
e["y"] = "q";
e["q"] = "put";
entry& a = e["a"];
a["v"] = m_data.value();
a["token"] = po->m_token;
if (m_data.is_mutable())
{
a["k"] = m_data.pk().bytes;
a["seq"] = m_data.seq().value;
a["sig"] = m_data.sig().bytes;
if (!m_data.salt().empty())
{
a["salt"] = m_data.salt();
}
}
m_node.stats_counters().inc_stats_counter(counters::dht_put_out);
return m_node.m_rpc.invoke(e, o->target_ep(), o);
}