コード例 #1
0
ファイル: alert.cpp プロジェクト: greenmo000/vcash
bool alert::cancels(const alert & val) const
{
    if (is_in_effect())
    {
        return val.id() <= m_cancel || m_cancels.count(val.id()) > 0;
    }
    
    return false;
}
コード例 #2
0
ファイル: alert.cpp プロジェクト: 340211173/P2PCenter
	void alert_manager::post_alert(const alert& alert_)
	{
		boost::mutex::scoped_lock lock(m_mutex);
		if (m_severity > alert_.severity()) return;

		// the internal limit is 100 alerts
		if (m_alerts.size() == 100)
		{
			alert* result = m_alerts.front();
			m_alerts.pop();
			delete result;
		}
		m_alerts.push(alert_.clone().release());
	}
コード例 #3
0
	bool alert_manager::maybe_dispatch(alert const& a)
	{
		if (m_dispatch)
		{
			m_dispatch(a.clone());
			return true;
		}
		return false;
	}
コード例 #4
0
ファイル: alert.cpp プロジェクト: kuro/libtorrent
	void alert_manager::post_alert(const alert& alert_)
	{

		mutex::scoped_lock lock(m_mutex);

		if (m_dispatch)
		{
			TORRENT_ASSERT(m_alerts.empty());
			TORRENT_TRY {
				m_dispatch(std::auto_ptr<alert>(alert_.clone()));
			} TORRENT_CATCH(std::exception&) {}
		}
		else if (m_alerts.size() < m_queue_size_limit || !alert_.discardable())
コード例 #5
0
	void alert_manager::post_alert(const alert& alert_)
	{
		std::auto_ptr<alert> a(alert_.clone());

#ifndef TORRENT_DISABLE_EXTENSIONS
		for (ses_extension_list_t::iterator i = m_ses_extensions.begin()
			, end(m_ses_extensions.end()); i != end; ++i)
		{
			TORRENT_TRY {
				(*i)->on_alert(&alert_);
			} TORRENT_CATCH(std::exception&) {}
		}
#endif

		mutex::scoped_lock lock(m_mutex);
		post_impl(a, lock);
	}
コード例 #6
0
// --------------------------------------------------------------------------
void
alert_stream::send (
 alert const& alert
)
// --------------------------------------------------------------------------
{
  byte msg[2];

  LOG_MSG("net.tls.alert", alert.what());

  if (alert.level == alert_level::fatal
   || alert.description == alert_description::close_notify)
  {
    m_notified = true;
  }

  msg[0] = static_cast<byte const>(alert.level);
  msg[1] = static_cast<byte const>(alert.description);

  m_record.send(content_type::alert, msg, 2);
}
コード例 #7
0
ファイル: test_transfer.cpp プロジェクト: BlackYoup/medusa
void print_alert(alert const& a)
{
	std::cout << "ses1 (alert dispatch function): " << a.message() << std::endl;
}