myio_apr.h

最終更新:2009/11/14

myio_apr.h

001: /*
002:  * ストリームの抽象化の試み
003:  * ・apr_file_t へのラッパー
004:  * ・apr_socket_t へのラッパー
005:  */
006: 
007: #ifndef _MYIO_APR_H_
008: #define _MYIO_APR_H_
009: 
010: #ifndef _MYIO_H_
011: #include "myio.h"
012: #endif
013: 
014: #ifndef APR_FILE_IO_H
015: #include "apr_file_io.h"
016: #endif
017: 
018: #ifndef APR_NETWORK_IO_H
019: #include "apr_network_io.h"
020: #endif
021: 
022: #ifndef APR_STRINGS_H
023: #include "apr_strings.h"
024: #endif
025: 
026: /*
027:  * apr_file_t をラップする MYIO オブジェクトの生成
028:  */
029: 
030: MYIO *MYIO_fp_new (
031:   apr_file_t *fp     /* ファイルポインタ */
032:   , int flag         /* ストリームの種類 0:入力 1:出力 */
033:   , apr_pool_t *pool /* メモリプール */
034: );
035: 
036: /*
037:  * ファイルへのストリームをオープンし、
038:  * そのストリームをラップする MYIO オブジェクトの生成する関数
039:  */
040: MYIO *MYIO_fp_open (
041:   const char * fname     /* オープンするファイル名 */
042:   , apr_int32_t flag     /* オープンフラグ(apr_file_open のフラグ)  */
043:   , apr_fileperms_t perm /* パーミッション(apr_file_open のパーミッション) */
044:   , apr_pool_t *pool     /* メモリプール */
045: );
046: 
047: /*
048:  * MYIO オブジェクトからファイルポインタを取り出す関数
049:  */
050: apr_file_t *MYIO_fp_get_fp (
051:   MYIO *myio
052: );
053: 
054: /*
055:  * MYIO オブジェクトのファイルポインタをクローズする関数
056:  */
057: 
058: void MYIO_fp_close (
059:   MYIO *myio
060: );
061: 
062: /*
063:  * 簡易ソケット接続関数
064:  */
065: apr_socket_t *my_connect (
066:   char *hostname
067:   , int port
068:   , apr_pool_t * pool
069: );
070: 
071: /*
072:  * apr_socket_t をラップする MYIO オブジェクトの生成
073:  */
074: 
075: MYIO *MYIO_sock_new (
076:   apr_socket_t *sock
077:   , apr_pool_t *pool
078: );
079: 
080: /*
081:  * ソケットをオープンし、ラップする MYIO オブジェクトの生成する関数
082:  */
083: 
084: MYIO *MYIO_sock_connect(
085:   char *hostname /* 接続先ホスト名 */
086:   , int port     /* 接続先ポート番号 */
087:   , apr_pool_t * pool
088: );
089: 
090: /*
091:  * MYIO オブジェクトからソケットを取り出す関数
092:  */
093:  
094: apr_socket_t *MYIO_sock_get_sock (
095:   MYIO *myio
096: );
097: 
098: /*
099:  * MYIO オブジェクトのソケットをクローズする関数
100:  */
101: void MYIO_sock_close(
102:   MYIO *myio
103: );
104: 
105: /*
106:  * printf スタイルな書式付き出力関数
107:  */
108: int MYIO_apr_printf(MYIO *myio, const char *fmt, ...);
109: #endif /* _MYIO_APR_H_ */
Copyright (C) KAKU PROJECT (2009)KAKU PROJECT (2009)