![]()  | 
Home | Libraries | People | FAQ | More | 
A descriptor service must meet the requirements for an I/O object service with support for movability, as well as the additional requirements listed below.
        In the table below, X denotes
        a descriptor service class, a
        and ao denote values of type
        X, b
        and c denote values of type
        X::implementation_type, n
        denotes a value of type X::native_handle_type,
        ec denotes a value of type
        error_code, i denotes a value meeting IoControlCommand requirements, and
        u and v
        denote identifiers.
      
Table 9. DescriptorService requirements
| 
                 expression  | 
                 return type  | 
                 
                  assertion/note  | 
|---|---|---|
| 
                 
                    | 
                 
                  The implementation-defined native representation of a descriptor.
                  Must satisfy the requirements of   | 
|
| 
                 
                    | 
                 
                  From IoObjectService
                  requirements.  | 
|
| 
                 
                    | 
                 
                  From IoObjectService
                  requirements. Implicitly cancels asynchronous operations, as if
                  by calling   | 
|
| 
                 
 a.move_construct(b, c); 
  | 
                 
                  From IoObjectService
                  requirements. The underlying native representation is moved from
                    | 
|
| 
                 
 a.move_assign(b, ao, c); 
  | 
                 
                  From IoObjectService
                  requirements. Implicitly cancels asynchronous operations associated
                  with   | 
|
| 
                 
 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_handle(b); 
  | 
                 
                    | 
|
| 
                 
 a.cancel(b, ec); 
  | 
                 
                    | 
                 
                  pre:   | 
| 
                 
 a.io_control(b, i, ec); 
  | 
                 
                    | 
                 
                  pre:   |