The asiolink library is intended to provide an abstraction layer between BIND10 modules and the socket I/O subsystem we are using (currently, the headers-only version of ASIO, release 1.43). This has several benefits, including: - Simple interface - Back-end flexibility: It would be easy to switch from using ASIO to boost::asio, and even relatively straightforward to switch to any other asynchronous I/O system. - Cleaner compilation: The ASIO headers include code which can generate warnings in some compilers due to unused parameters and such. Including ASIO header files throughout the BIND 10 tree would require us to relax the strictness of our error checking. Including them in only one place allows us to relax strictness here, while leaving it in place elsewhere. Some of the classes defined here--for example, IOSocket, IOEndpoint, and IOAddress--are to be used by BIND 10 modules as wrappers around ASIO-specific classes. Logging ------- At this point, nothing is logged by this low-level library. We may revisit that in the future, if we find suitable messages to log, but right now there are also no loggers initialized or called.