/* * ストリームの抽象化の試み * ・apr_file_t へのラッパー * ・apr_socket_t へのラッパー */ #ifndef _MYIO_APR_H_ #define _MYIO_APR_H_ #ifndef _MYIO_H_ #include "myio.h" #endif #ifndef APR_FILE_IO_H #include "apr_file_io.h" #endif #ifndef APR_NETWORK_IO_H #include "apr_network_io.h" #endif #ifndef APR_STRINGS_H #include "apr_strings.h" #endif /* * apr_file_t をラップする MYIO オブジェクトの生成 */ MYIO *MYIO_fp_new ( apr_file_t *fp /* ファイルポインタ */ , int flag /* ストリームの種類 0:入力 1:出力 */ , apr_pool_t *pool /* メモリプール */ ); /* * ファイルへのストリームをオープンし、 * そのストリームをラップする MYIO オブジェクトの生成する関数 */ MYIO *MYIO_fp_open ( const char * fname /* オープンするファイル名 */ , apr_int32_t flag /* オープンフラグ(apr_file_open のフラグ) */ , apr_fileperms_t perm /* パーミッション(apr_file_open のパーミッション) */ , apr_pool_t *pool /* メモリプール */ ); /* * MYIO オブジェクトからファイルポインタを取り出す関数 */ apr_file_t *MYIO_fp_get_fp ( MYIO *myio ); /* * MYIO オブジェクトのファイルポインタをクローズする関数 */ void MYIO_fp_close ( MYIO *myio ); /* * 簡易ソケット接続関数 */ apr_socket_t *my_connect ( char *hostname , int port , apr_pool_t * pool ); /* * apr_socket_t をラップする MYIO オブジェクトの生成 */ MYIO *MYIO_sock_new ( apr_socket_t *sock , apr_pool_t *pool ); /* * ソケットをオープンし、ラップする MYIO オブジェクトの生成する関数 */ MYIO *MYIO_sock_connect( char *hostname /* 接続先ホスト名 */ , int port /* 接続先ポート番号 */ , apr_pool_t * pool ); /* * MYIO オブジェクトからソケットを取り出す関数 */ apr_socket_t *MYIO_sock_get_sock ( MYIO *myio ); /* * MYIO オブジェクトのソケットをクローズする関数 */ void MYIO_sock_close( MYIO *myio ); /* * printf スタイルな書式付き出力関数 */ int MYIO_apr_printf(MYIO *myio, const char *fmt, ...); #endif /* _MYIO_APR_H_ */