An abstract class to define a callback for Open() call.
This abstract class defines the callback interface for Open() calls. When passed, the request is done in the background. When a callback object is supplied, the method always return -1. However, if started successfully, the method sets errno to EINPROGRESS. Otherwise, errno contain the reason the request immediately failed. Upon completion, the the callback's Compete() method is invoked. The Result parameter contains what the method would have returned if it were executed synchronously: for succsessful Open() it is a non-negative file descriptor but on failure -1 with errno indicating why Open() failed. The caller is responsible for deleting the callback object after it has been invoked. Callbacks are executed in a separate thread.