...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A serial port service must meet the requirements for an I/O object service, as well as the additional requirements listed below.
In the table below, X
denotes
a serial port service class, a
denotes a value of type X
,
d
denotes a serial port device
name of type std::string
, b
denotes a value of type X::implementation_type
,
n
denotes a value of type
X::native_type
, ec
denotes a value of type error_code
,
s
denotes a value meeting
SettableSerialPortOption
requirements,
g
denotes a value meeting
GettableSerialPortOption
requirements,
mb
denotes a value satisfying
mutable buffer
sequence requirements, rh
denotes a value meeting ReadHandler
requirements, cb
denotes a value satisfying constant
buffer sequence requirements, and wh
denotes a value meeting WriteHandler
requirements. and
u
and v
denote identifiers.
Table 23. SerialPortService requirements
expression |
return type |
assertion/note |
---|---|---|
|
|
The implementation-defined native representation of a serial port.
Must satisfy the requirements of |
|
|
From IoObjectService
requirements. |
|
|
From IoObjectService
requirements. Implicitly cancels asynchronous operations, as if by
calling |
const std::string& u = d; a.open(b, u, ec);
|
|
pre: |
a.assign(b, n, ec);
|
|
pre: |
a.is_open(b);
|
|
|
const X& u = a; const X::implementation_type& v = b; u.is_open(v);
|
|
|
a.close(b, ec);
|
|
If |
a.native(b);
|
|
|
a.cancel(b, ec);
|
|
pre: |
a.set_option(b, s, ec);
|
|
pre: |
a.get_option(b, g, ec);
|
|
pre: |
const X& u = a; const X::implementation_type& v = b; u.get_option(v, g, ec);
|
|
pre: |
a.send_break(b, ec);
|
|
pre: |
|
|
pre: |
|
|
pre: |
|
|
pre: |
|
|
pre: |