File: [Development] / xfs-cmds / xfsdump / common / dlog.h (download)
Revision 1.4, Tue Jun 4 22:53:09 2002 UTC (15 years, 4 months ago) by sandeen
Branch: MAIN
Changes since 1.3: +1 -1
lines
Undoes mod: xfs-cmds:slinx:120772a
Undo xfs-cmds:slinx:120772a, inadvertently whacked a previous mod.
|
/*
* Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it would be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Further, this software is distributed without any warranty that it is
* free of the rightful claim of any third person regarding infringement
* or the like. Any license provided herein, whether implied or
* otherwise, applies only to this software file. Patent licenses, if
* any, provided herein do not apply to combinations of this program with
* other software, or any other product whatsoever.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write the Free Software Foundation, Inc., 59
* Temple Place - Suite 330, Boston MA 02111-1307, USA.
*
* Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
* Mountain View, CA 94043, or:
*
* http://www.sgi.com
*
* For further information regarding this notice, see:
*
* http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
*/
#ifndef DLOG_H
#define DLOG_H
/* dlog.[hc] - operator dialog abstraction
*
* abstracts dialogs with the operator
*/
extern bool_t dlog_init( int argc, char *argv[ ] );
/* tells if dialogs are allowed;
* will be false if invoked to right of unnamed pipe,
* or if pipe to left breaks.
*/
extern bool_t dlog_allowed( void );
/* allows signal handler to notify dlog of broken write pipe
*/
extern void dlog_desist( void );
/* returns the dialog tty file descriptor. returns -1 if none
*/
extern intgen_t dlog_fd( void );
/* bracket a dialog session
*/
extern void dlog_begin( char *preamblestr[ ], size_t preamblecnt );
extern void dlog_end( char *postamblestr[ ], size_t postamblecnt );
/* multiple choice question abstraction. if any exception event index
* set to IXMAX, that event will be ignored. returns index of selected
* choice, or exception index if exception occured.
*/
extern ix_t dlog_multi_query( char *querystr[ ], /* pre-choices output */
size_t querycnt, /* length of above */
char *choicestr[ ], /* choices */
size_t choicecnt, /* length of above */
char *hilitestr, /* to distinguish */
ix_t hiliteix, /* highlighted choice */
char *defaultstr, /* to distinguish */
ix_t defaultix, /* return if cr */
time32_t timeout, /* secs b4 giving up */
ix_t timeoutix, /* return if timeout */
ix_t sigintix, /* return if SIGINT */
ix_t sighupix, /* return if SIGHUP */
ix_t sigquitix ); /* return if SIGQUIT */
extern void dlog_multi_ack( char *ackstr[ ], size_t ackcnt );
/* call the caller's callback to display whatever, using provided print
* function, then prompt for and return an arbitrary string. two types
* defined: pointer to the caller's function to print, and pointer to
* function used by that function to do output. returns okix if successful,
* timeoutix if times out, sigintix if SIGINT recieved, sighupix if SIGHUP
* received, sigquitix if SIGQUIT received. if any of the exception indices
* are set to IXMAX by the caller, those events will be ignored.
*/
typedef void ( * dlog_pcbp_t )( void *pctxp, char *s, ... );
typedef void ( * dlog_ucbp_t )( void *uctxp, dlog_pcbp_t pcb, void *pctxp );
extern ix_t dlog_string_query( dlog_ucbp_t ucb, /* user's print func */
void *uctxp, /* user's context for above */
char *bufp, /* typed string returned in */
size_t bufsz, /* buffer size */
time32_t timeout, /* secs b4 giving up */
ix_t timeoutix, /* return if timeout */
ix_t sigintix, /* return if SIGINT */
ix_t sighupix, /* return if SIGHUP */
ix_t sigquitix, /* return if SIGQUIT */
ix_t okix ); /* return if successful */
extern void dlog_string_ack( char *ackstr[ ], size_t ackcnt );
#endif /* DLOG_H */