Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| SHA1 Hash: | aa36c6cf41f16ea2ad87543617c94479c2e01add |
|---|---|
| Date: | 2008-11-13 20:42:32 |
| User: | stephan |
| Comment: | doc additions |
Changes
Changes to include/s11n.net/c11n/io/c11n_io.h
| Old (5114d970cb224ba4) | New (2d54f0a8f425c1c9) | |||
|---|---|---|---|---|
| 1 | #ifndef S11N_NET_C11N_IO_H_INCLUDED | 1 | #ifndef S11N_NET_C11N_IO_H_INCLUDED | |
| 2 | #define S11N_NET_C11N_IO_H_INCLUDED 1 | 2 | #define S11N_NET_C11N_IO_H_INCLUDED 1 | |
| 3 | /* | 3 | /* | |
| 4 | This file contains declarations and documentation for the generic | 4 | This file contains declarations and documentation for the generic | |
| 5 | i/o routines for c11n. The core does not know about this API and no | 5 | i/o routines for c11n. The core does not know about this API and no | |
| 200 hidden lines | ||||
| 206 | 206 | |||
| 207 | Some rationale for the specifics of this API: | 207 | Some rationale for the specifics of this API: | |
| 208 | 208 | |||
| 209 | For the generic case (what this library aims to provide), | 209 | For the generic case (what this library aims to provide), | |
| 210 | de/serialization only requires sequential access to streams. Thus | 210 | de/serialization only requires sequential access to streams. Thus | |
| 211 | this API does not have routines which either require | | | 211 | this API does not have routines which require non-sequential |
| 212 | non-sequential access. Also, routines which can be easily | | | 212 | access. Also, routines which can be easily implemented in terms of |
| 213 | implemented in terms of the sequential read/write routines are | | | 213 | the sequential read/write routines are implemented as non-member |
| 214 | implemented as non-member functions (e.g. c11n_stream_getchar()) | | | 214 | functions (e.g. c11n_stream_getchar()) because the implementation |
| 215 | because the implementation is the same regardless of the stream | | | 215 | is the same regardless of the stream type, and there would be no |
| 216 | type, and there would be no use in requiring all subclasses to | | | 216 | use in requiring all subclasses to specifically set up the exact |
| 217 | specifically set up the exact same functions in their struct | | | 217 | same functions in their struct initializers. This API contains |
| 218 | initializers. This API contains only functions which rely on some | | | 218 | only functions which rely on some specific underlying stream type |
| 219 | specifically underlying stream type (e.g. FILE handle or socket). | | | 219 | (e.g. FILE handle or socket). |
| 220 | 220 | |||
| 221 | Note that this type contains no function for creating streams but | 221 | Note that this type contains no function for creating streams but | |
| 222 | does contain a destroy() function. The rationale is: the public | 222 | does contain a destroy() function. The rationale is: the public | |
| 223 | API required for destruction is uniform, regardless of the | 223 | API required for destruction is uniform, regardless of the | |
| 224 | underlying stream type. Specific implementations have to ensure | 224 | underlying stream type. Specific implementations have to ensure | |
| 662 hidden lines | ||||
| 887 | #ifdef __cplusplus | 887 | #ifdef __cplusplus | |
| 888 | } /* extern "C" */ | 888 | } /* extern "C" */ | |
| 889 | #endif | 889 | #endif | |
| 890 | 890 | |||
| 891 | #endif // S11N_NET_C11N_IO_H_INCLUDED | 891 | #endif // S11N_NET_C11N_IO_H_INCLUDED | |