rationale.qbk
来自「Boost provides free peer-reviewed portab」· QBK 代码 · 共 55 行
QBK
55 行
[/ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com) / / Distributed under the Boost Software License, Version 1.0. (See accompanying / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) /][section:rationale Rationale]Most programs interact with the outside world in some way, whether it be via afile, a network, a serial cable, or the console. Sometimes, as is the case withnetworking, individual I/O operations can take a long time to complete. Thisposes particular challenges to application development.Boost.Asio provides the tools to manage these long running operations, withoutrequiring programs to use concurrency models based on threads and explicitlocking.The Boost.Asio library is intended for programmers using C++ for systems programming,where access to operating system functionality such as networking is oftenrequired. In particular, Boost.Asio addresses the following goals:* [*Portability.] The library should support a range of commonly used operatingsystems, and provide consistent behaviour across these operating systems.* [*Scalability.] The library should facilitate the development of networkapplications that scale to thousands of concurrent connections. The libraryimplementation for each operating system should use the mechanism that bestenables this scalability.* [*Efficiency.] The library should support techniques such as scatter-gatherI/O, and allow programs to minimise data copying.* [*Model concepts from established APIs, such as BSD sockets.] TheBSD socket API is widely implemented and understood, and is covered in muchliterature. Other programming languages often use a similar interface fornetworking APIs. As far as is reasonable, Boost.Asio should leverage existingpractice.* [*Ease of use.] The library should provide a lower entry barrier for newusers by taking a toolkit, rather than framework, approach. That is, it shouldtry to minimise the up-front investment in time to just learning a few basicrules and guidelines. After that, a library user should only need to understandthe specific functions that are being used.* [*Basis for further abstraction.] The library should permit the developmentof other libraries that provide higher levels of abstraction. For example,implementations of commonly used protocols such as HTTP.Although Boost.Asio started life focused primarily on networking, its concepts ofasynchronous I/O have been extended to include other operating system resourcessuch as serial ports, file descriptors, and so on.[endsect]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?