当前位置: 首页> 游戏> 游戏 > php一键建站_网站设计专业建站公司_小红书代运营_武汉seo排名

php一键建站_网站设计专业建站公司_小红书代运营_武汉seo排名

时间:2025/7/12 10:44:30来源:https://blog.csdn.net/jiemashizhen/article/details/145785648 浏览次数:0次
php一键建站_网站设计专业建站公司_小红书代运营_武汉seo排名

BmcWeb是OpenBMC的一个核心模块,对外负责响应Redfish请求,并且由于OpenBMC的Web使用的Redfish api,所以BmcWeb也是Web的后台。

1.main函数

//src\webserver_main.cpp
#include "webserver_run.hpp"int main(int /*argc*/, char** /*argv*/) noexcept(false)
{return run();
}

2.main函数调用的run函数

//src\webserver_run.cppint run()
{boost::asio::io_context& io = getIoContext();App app;...
}
//include\io_context_singleton.hppinline boost::asio::io_context& getIoContext()
{static boost::asio::io_context io;return io;
}

这里getIoContext相当于一个单例模式,用于产生一个io对象

然后实例化app对象

 3.App类

//http\app.hpp
namespace crow
{
class App
{public:using raw_socket_t = boost::asio::ip::tcp::socket;using server_type = Server<App, raw_socket_t>;...std::optional<server_type> server;};
} // namespace crow
using App = crow::App;

 App这个类里面有一optional<server_type>类型的对象server

在实例化app对象时,目前还没有真正的实例化serrver对象

 4.Server类

//http\http_server.hppnamespace crow
{struct Acceptor
{boost::asio::ip::tcp::acceptor acceptor;HttpType httpType;
};template <typename Handler, typename Adaptor = boost::asio::ip::tcp::socket>
class Server
{using self_t = Server<Handler, Adaptor>;public:Server(Handler* handlerIn, std::vector<Acceptor>&& acceptorsIn) :acceptors(std::move(acceptorsIn)),// NOLINTNEXTLINE(misc-include-cleaner)signals(getIoContext(), SIGINT, SIGTERM, SIGHUP), handler(handlerIn){}...private:boost::asio::signal_set signals;Handler* handler;};
} // namespace crow

Server类是个模版类,类的实例化传入了App和boost::asio::ip::tcp::socket两个模版参数

其中App类作为Handler的模版实参,用于定义一个反向指回App类的handler类指针

构造函数的std::vector<Acceptor>&& acceptorsIn参数后续再进行解释

signals设置了进程响应的几个信号

关键字:php一键建站_网站设计专业建站公司_小红书代运营_武汉seo排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: