Lely core libraries  1.9.2
doc/io/overview.md
1 I/O library overview
2 ====================
3 
4 All I/O devices are represented by the same handle (#io_handle_t,
5 see lely/io/io.h), providing a uniform interface. This handle is a
6 reference-counted wrapper around a platform-specific file descriptor or handle.
7 A C++ interface for I/O device handles can be found in lely/io/io.hpp.
8 
9 The following I/O devices are supported:
10 - CAN devices (lely/io/can.h, lely/io/can.hpp)
11 - regular files (lely/io/file.h, lely/io/file.hpp)
12 - pipes (lely/io/pipe.h, lely/io/pipe.hpp)
13 - serial I/O devices (lely/io/serial.h, lely/io/serial.hpp)
14 - network sockets (lely/io/sock.h, lely/io/sock.hpp)
15 
16 Additionally, serial I/O device attributes can be manipulated with the functions
17 in lely/io/attr.h, while network addresses and interfaces can be queried and
18 manipulated with the functions in lely/io/addr.h and lely/io/if.h, respectively.
19 
20 Depending on the platform, some or all of the I/O devices can be polled for
21 events. Combined with non-blocking access, this allows an application to use the
22 reactor pattern to concurrently handle multiple I/O channels. The polling
23 interface is provided by lely/io/poll.h (see lely/io/poll.hpp for the C++
24 interface).
25