当前位置: 首页>>代码示例>>C++>>正文


C++ connection_ptr::start方法代码示例

本文整理汇总了C++中connection_ptr::start方法的典型用法代码示例。如果您正苦于以下问题:C++ connection_ptr::start方法的具体用法?C++ connection_ptr::start怎么用?C++ connection_ptr::start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在connection_ptr的用法示例。


在下文中一共展示了connection_ptr::start方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: start

void connection_manager::start(connection_ptr c)
{
	connections_.insert(c);

	boost::system::error_code ec;
	boost::asio::ip::tcp::endpoint endpoint = c->socket().remote_endpoint(ec);
	if (ec) {
		// Prevent the exception to be thrown to run to avoid the server to be locked (still listening but no more connection or stop).
		// If the exception returns to WebServer to also create a exception loop.
		_log.Log(LOG_ERROR,"Getting error '%s' while getting remote_endpoint in connection_manager::start", ec.message().c_str());
		stop(c);
		return;
	}

	std::string s = endpoint.address().to_string();
	if (s.substr(0, 7) == "::ffff:") {
		s = s.substr(7);
	}
	if (connectedips_.find(s) == connectedips_.end())
	{
		//ok, this could get a very long list when running for years
		connectedips_.insert(s);
		_log.Log(LOG_STATUS,"Incoming connection from: %s", s.c_str());
	}

	c->start();
}
开发者ID:fscoelho,项目名称:domoticz,代码行数:27,代码来源:connection_manager.cpp

示例2: handle_accept

    /// Handler callback for start_accept
    void handle_accept(connection_ptr con, lib::error_code const & ec) {
        if (ec) {
            con->terminate(ec);

            if (ec == error::operation_canceled) {
                endpoint_type::m_elog.write(log::elevel::info,
                    "handle_accept error: "+ec.message());
            } else {
                endpoint_type::m_elog.write(log::elevel::rerror,
                    "handle_accept error: "+ec.message());
            }
        } else {
            con->start();
        }

        lib::error_code start_ec;
        start_accept(start_ec);
        if (start_ec == error::async_accept_not_listening) {
            endpoint_type::m_elog.write(log::elevel::info,
                "Stopping acceptance of new connections because the underlying transport is no longer listening.");
        } else if (start_ec) {
            endpoint_type::m_elog.write(log::elevel::rerror,
                "Restarting async_accept loop failed: "+ec.message());
        }
    }
开发者ID:4ker,项目名称:CamFiQt,代码行数:26,代码来源:server_endpoint.hpp

示例3: handle_accept

  void handle_accept(boost::system::error_code const &ec) {
    {
      scoped_mutex_lock stopping_lock(stopping_mutex_);
      if (stopping)
        return;  // we dont want to add another handler instance, and we
                 // dont want to know about errors for a socket we dont
                 // need anymore
    }

    if (ec) {
      BOOST_NETWORK_MESSAGE("Error accepting connection, reason: " << ec);
    }

#ifdef BOOST_NETWORK_ENABLE_HTTPS
    socket_options_base::socket_options(new_connection->socket().next_layer());
#else
    socket_options_base::socket_options(new_connection->socket());
#endif

    new_connection->start();
    new_connection.reset(new connection(service_, handler, *thread_pool, ctx_));
    acceptor.async_accept(
#ifdef BOOST_NETWORK_ENABLE_HTTPS
        new_connection->socket().next_layer(),
#else
        new_connection->socket(),
#endif
        boost::bind(&async_server_base<Tag, Handler>::handle_accept, this,
                    boost::asio::placeholders::error));
  }
开发者ID:EasonZhao,项目名称:http_parse,代码行数:30,代码来源:async_server.hpp

示例4: handle_accept

	inline void server::handle_accept(const boost::system::error_code& e) {
	    if (!e) {
		new_connection_->start();
		new_connection_.reset(new connection(io_service_, request_handler_));
		acceptor_.async_accept(new_connection_->socket(),
				       boost::bind(&server::handle_accept, this,
						   boost::asio::placeholders::error));
	    }
	}
开发者ID:RubenVerborgh,项目名称:SWObjects,代码行数:9,代码来源:WEBserver_asio.hpp

示例5: start

void connection_manager::start(connection_ptr c)
{
  connections_.insert(c);
  c->start();
}
开发者ID:Dagarman,项目名称:mame,代码行数:5,代码来源:connection_manager.cpp

示例6: start

void connection_manager::start(connection_ptr c)
{
    std::lock_guard<std::mutex> lock(mutex_);
    connections_.insert(c);
    c->start();
}
开发者ID:Dmitry666,项目名称:HTTPCommandService,代码行数:6,代码来源:connection_manager.cpp

示例7: handle_connect

 void handle_connect(connection_ptr con, websocketpp::lib::error_code const & ec)
 {
     BOOST_CHECK( !ec );
     con->start();
 }
开发者ID:anggamaulana,项目名称:websocketpp,代码行数:5,代码来源:timers.cpp

示例8: start

void ConnectionManager::start(connection_ptr c)
{
	m_connections.insert(c);
	c->start();
}
开发者ID:julienlopez,项目名称:Tournoyons,代码行数:5,代码来源:connectionmanager.cpp

示例9: handle_connect

 void handle_connect(connection_ptr con, websocketpp::lib::error_code const & ec)
 {
     boost_check( !ec );
     con->start();
 }
开发者ID:moorecoin,项目名称:MooreCoinService,代码行数:5,代码来源:timers.cpp


注:本文中的connection_ptr::start方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。