One or more embodiments provide a completion object comprised of various
states of completion of a client request. The completion object may be
manipulated to transition from one state to another by both the client and
server. The following states of completion may be provided: idle, ready,
active, completing, completed, and acknowledged. In the idle state, the
completion object is obtained by the client (by constructing a new object
or retrieving an existing object that has been recycled). In the ready
state, the request has been initialized but not yet issued to the server
or I/O device. In the active state, the server processes the I/O request.
In the completing state, the server has completed the I/O operations
requested but has not yet stored the results. In the completed state, the
server stores the results to be returned to the client and notifies the
client. At the acknowledged state, the client examines the results,
performs additional operations and frees up the completion object for use
by another client request.
Unas o más encarnaciones proporcionan un objeto de la terminación abarcado de varios estados de la terminación de una petición del cliente. El objeto de la terminación se puede manipular a la transición a partir de un estado a otro por el cliente y el servidor. Los estados siguientes de la terminación pueden ser proporcionados: ocioso, listo, activo, el terminar, terminado, y reconocido. En el estado IDLE, el objeto de la terminación es obtenido por el cliente (construyendo un nuevo objeto o recuperando un objeto existente se ha reciclado que). En el estado READY, se ha inicializado pero no todavía se ha publicado la petición al servidor o al dispositivo de I/O. En el estado activo, el servidor procesa la petición de I/O. En el estado que terminaba, el servidor ha terminado las operaciones de I/O solicitadas pero todavía no ha almacenado los resultados. En el estado terminado, el servidor almacena los resultados que se volverán al cliente y notifica a cliente. En el estado reconocido, el cliente examina los resultados, realiza operaciones adicionales y libera para arriba el objeto de la terminación para el uso por otra petición del cliente.