cleaned up code a little

This commit is contained in:
hyung-hwan 2009-07-24 22:11:07 +00:00
parent 9fabea2cd2
commit 4496e29945
3 changed files with 44 additions and 20 deletions

View File

@ -336,7 +336,7 @@ EXTRACT_ANON_NSPACES = NO
# various overviews, but no documentation section is generated. # various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled. # This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_MEMBERS = YES
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy. # undocumented classes that are normally visible in the class hierarchy.
@ -350,7 +350,7 @@ HIDE_UNDOC_CLASSES = NO
# If set to NO (the default) these declarations will be included in the # If set to NO (the default) these declarations will be included in the
# documentation. # documentation.
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = YES
# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
# documentation blocks found inside the body of a function. # documentation blocks found inside the body of a function.
@ -735,7 +735,7 @@ VERBATIM_HEADERS = NO
# of all compounds will be generated. Enable this if the project # of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces. # contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = NO ALPHABETICAL_INDEX = YES
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
@ -951,7 +951,7 @@ ENUM_VALUES_PER_LINE = 1
# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
# respectively. # respectively.
GENERATE_TREEVIEW = ALL GENERATE_TREEVIEW = NONE
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree # used to set the initial width (in pixels) of the frame in which the tree

View File

@ -1,5 +1,5 @@
/* /*
* $Id: pio.h 242 2009-07-23 13:01:52Z hyunghwan.chung $ * $Id: pio.h 243 2009-07-24 04:11:07Z hyunghwan.chung $
* *
Copyright 2006-2009 Chung, Hyung-Hwan. Copyright 2006-2009 Chung, Hyung-Hwan.
@ -24,34 +24,49 @@
#include <qse/cmn/tio.h> #include <qse/cmn/tio.h>
/** @file /** @file
* Pipe I/O * This file defines a piped interface to a child process. It provides more
* advanced interface than popen() and pclose().
*
* @todo * @todo
* - rename flags to option * - rename flags to option
* - write code for win32
*/ */
/**
* Open flags
*/
enum qse_pio_open_flag_t enum qse_pio_open_flag_t
{ {
/* enable ase_char_t based IO */ /** enable text based IO. */
QSE_PIO_TEXT = (1 << 0), QSE_PIO_TEXT = (1 << 0),
/* invoke the command through a system shell /** invoke the command through a system shell
* (/bin/sh on *nix, cmd.exe on windows) */ * (/bin/sh on *nix, cmd.exe on windows) */
QSE_PIO_SHELL = (1 << 1), QSE_PIO_SHELL = (1 << 1),
/** write to stdin of a child process */
QSE_PIO_WRITEIN = (1 << 8), QSE_PIO_WRITEIN = (1 << 8),
/** read stdout of a child process */
QSE_PIO_READOUT = (1 << 9), QSE_PIO_READOUT = (1 << 9),
/** read stderr of a child process */
QSE_PIO_READERR = (1 << 10), QSE_PIO_READERR = (1 << 10),
QSE_PIO_ERRTOOUT = (1 << 11), /* require QSE_PIO_READOUT */ /** redirect stderr to stdout(2>&1). require QSE_PIO_READOUT */
QSE_PIO_OUTTOERR = (1 << 12), /* require QSE_PIO_READERR */ QSE_PIO_ERRTOOUT = (1 << 11),
/** redirect stdout to stderr(1>&2). require QSE_PIO_READERR */
QSE_PIO_OUTTOERR = (1 << 12),
/** redirect stdin to the null device (</dev/null, <NUL) */
QSE_PIO_INTONUL = (1 << 13), QSE_PIO_INTONUL = (1 << 13),
/** redirect stdin to the null device (>/dev/null, >NUL) */
QSE_PIO_ERRTONUL = (1 << 14), QSE_PIO_ERRTONUL = (1 << 14),
/** redirect stderr to the null device (2>/dev/null, 2>NUL) */
QSE_PIO_OUTTONUL = (1 << 15), QSE_PIO_OUTTONUL = (1 << 15),
/** drop stdin */
QSE_PIO_DROPIN = (1 << 16), QSE_PIO_DROPIN = (1 << 16),
/** drop stdout */
QSE_PIO_DROPOUT = (1 << 17), QSE_PIO_DROPOUT = (1 << 17),
/** drop stderr */
QSE_PIO_DROPERR = (1 << 18), QSE_PIO_DROPERR = (1 << 18),
}; };
@ -65,16 +80,24 @@ enum qse_pio_hid_t
enum qse_pio_io_flag_t enum qse_pio_io_flag_t
{ {
/*QSE_PIO_READ_NOBLOCK = (1 << 0),*/ /*QSE_PIO_READ_NOBLOCK = (1 << 0),*/
/** do not reread if read has been interrupted */
QSE_PIO_READ_NORETRY = (1 << 1), QSE_PIO_READ_NORETRY = (1 << 1),
/*QSE_PIO_WRITE_NOBLOCK = (1 << 2),*/ /*QSE_PIO_WRITE_NOBLOCK = (1 << 2),*/
/** do not rewrite if write has been interrupted */
QSE_PIO_WRITE_NORETRY = (1 << 3), QSE_PIO_WRITE_NORETRY = (1 << 3),
QSE_PIO_WAIT_NOBLOCK = (1 << 4), QSE_PIO_WAIT_NOBLOCK = (1 << 4),
/** do not wait again if waitpid has been interrupted */
QSE_PIO_WAIT_NORETRY = (1 << 5) QSE_PIO_WAIT_NORETRY = (1 << 5)
}; };
enum qse_pio_errnum_t enum qse_pio_errnum_t
{ {
QSE_PIO_ENOERR = 0, QSE_PIO_ENOERR = 0, /**< no error */
QSE_PIO_ENOMEM, /**< out of memory */ QSE_PIO_ENOMEM, /**< out of memory */
QSE_PIO_ENOHND, /**< no handle available */ QSE_PIO_ENOHND, /**< no handle available */
QSE_PIO_ECHILD, /**< the child is not valid */ QSE_PIO_ECHILD, /**< the child is not valid */
@ -135,8 +158,9 @@ QSE_DEFINE_COMMON_FUNCTIONS (pio)
/** /**
* The qse_pio_open() function opens pipes to a child process. * The qse_pio_open() function opens pipes to a child process.
* QSE_PIO_SHELL drives the function to execute the command via /bin/sh. * QSE_PIO_SHELL drives the function to execute the command via the default
* If flags is clear of QSE_PIO_SHELL, you should pass the full program path. * shell of an underlying system: /bin/sh on *nix, cmd.exe on win32.
* If @a flags is clear of QSE_PIO_SHELL, you should pass the full program path.
*/ */
qse_pio_t* qse_pio_open ( qse_pio_t* qse_pio_open (
qse_mmgr_t* mmgr, /**< a memory manager */ qse_mmgr_t* mmgr, /**< a memory manager */

View File

@ -125,7 +125,7 @@ static int test1 (void)
return pio1 ( return pio1 (
#ifdef _WIN32 #ifdef _WIN32
QSE_T("sll.exe"), QSE_T("dir /a"),
#else #else
QSE_T("ls -laF"), QSE_T("ls -laF"),
#endif #endif
@ -138,7 +138,7 @@ static int test2 (void)
{ {
return pio1 ( return pio1 (
#ifdef _WIN32 #ifdef _WIN32
QSE_T("sll.exe"), QSE_T("dir /a"),
#else #else
QSE_T("ls -laF"), QSE_T("ls -laF"),
#endif #endif
@ -164,7 +164,7 @@ static int test4 (void)
{ {
return pio2 ( return pio2 (
#ifdef _WIN32 #ifdef _WIN32
QSE_T("sll.exe"), QSE_T("dir /a"),
#else #else
QSE_T("ls -laF"), QSE_T("ls -laF"),
#endif #endif
@ -177,7 +177,7 @@ static int test5 (void)
{ {
return pio2 ( return pio2 (
#ifdef _WIN32 #ifdef _WIN32
QSE_T("sll.exe"), QSE_T("dir /a"),
#else #else
QSE_T("ls -laF"), QSE_T("ls -laF"),
#endif #endif