| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef ANDROID_ASYNC_IO_COMMON_H_ |
| #define ANDROID_ASYNC_IO_COMMON_H_ |
| |
| /* |
| * Contains declarations common for asynchronous socket I/O |
| */ |
| |
| /* Enumerates asynchronous I/O states. |
| * Values from this enum are passed to callbacks associated with an I/O, |
| * indicating at what state the I/O is. */ |
| typedef enum AsyncIOState { |
| /* Asynchronous I/O has been queued. (0) */ |
| ASIO_STATE_QUEUED, |
| /* Asynchronous I/O has started. This state indicates that I/O has been |
| * performed for the first time. (1) */ |
| ASIO_STATE_STARTED, |
| /* Asynchronous I/O is continuing. This state indicates that I/O has been |
| * invoked for the second (or more) time. (2) */ |
| ASIO_STATE_CONTINUES, |
| /* Asynchronous I/O is about to be retried. (3) */ |
| ASIO_STATE_RETRYING, |
| /* Asynchronous I/O has been successfuly completed. (4) */ |
| ASIO_STATE_SUCCEEDED, |
| /* Asynchronous I/O has failed. (5) */ |
| ASIO_STATE_FAILED, |
| /* Asynchronous I/O has timed out. (6) */ |
| ASIO_STATE_TIMED_OUT, |
| /* Asynchronous I/O has been cancelled (due to disconnect, for |
| * instance). (7) */ |
| ASIO_STATE_CANCELLED, |
| /* Asynchronous I/O is finished and is about to be discarder. This state is |
| * useful in case there is an association between an I/O and some client's |
| * component, that holds a reference associated with this I/O. When callback |
| * is invoked with this state, it means that it's safe to drop that extra |
| * reference associated with the I/O (8) */ |
| ASIO_STATE_FINISHED, |
| } AsyncIOState; |
| |
| /* Enumerates actions to perform with an I/O on state transition. |
| * Values from this enum are returned from async I/O callbacks, indicating what |
| * action should be performed with the I/O by I/O handler. */ |
| typedef enum AsyncIOAction { |
| /* I/O is done. Perform default action depending on I/O type. */ |
| ASIO_ACTION_DONE, |
| /* Abort the I/O. */ |
| ASIO_ACTION_ABORT, |
| /* Retry the I/O. */ |
| ASIO_ACTION_RETRY, |
| } AsyncIOAction; |
| |
| #endif /* ANDROID_ASYNC_IO_COMMON_H_ */ |