OSSP CVS Repository

ossp - ossp-pkg/rc/rc.h 1.43
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/rc/rc.h 1.43
/*  OSSP rc - Run-command processor
**  Copyright (c) 2002 Ralf S. Engelschall
**  Copyright (c) 2002 Cable & Wireless Deutschland GmbH
**  Copyright (c) 2002 The OSSP Project <http://www.ossp.org/>
**
**  This file is part of OSSP rc, a portable Run-command processor
**  which can be found at http://www.ossp.org/pkg/lib/rc/
**
**  Permission to use, copy, modify, and distribute this software for
**  any purpose with or without fee is hereby granted, provided that
**  the above copyright notice and this permission notice appear in all
**  copies.
**
**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
**  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
**  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
**  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
**  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
**  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
**  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
**  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
**  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
**  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
**  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
**  SUCH DAMAGE.
**
**  rc.h: Run-command processor ISO C public header file
*/

#ifndef __OSSPRC_H__
#define __OSSPRC_H__

/* compensate for poor standard environments */
#ifndef NULL
#define NULL (void *)0
#endif

#ifndef FALSE
#define FALSE (0)
#endif

#ifndef TRUE
#define TRUE (!FALSE)
#endif

/* Return and error code macro helpers */
#define WARNING(scode)    (scode >= RC_WRN_0)
#define FAILED(scode)    ((scode >= RC_ERR_0) && !WARNING(scode))
#define SUCCEEDED(scode) ((scode == RC_OK)    ||  WARNING(scode))

#include "rc_private.h"

/* Rc return codes */
typedef enum {
    RC_OK      = 1,  /* Success                  */
    RC_ERR_0   = 2,  /* Error base               */
    RC_ERR_USE = 3,  /* Usage error              */
    RC_ERR_MEM = 4,  /* Memory error             */
    RC_ERR_SYS = 5,  /* System error (see errno) */
    RC_ERR_IO  = 6,  /* Input/output error       */
    RC_ERR_INT = 7,  /* Internal error           */
    RC_ERR_FNC = 8,  /* Func file not found      */
    RC_ERR_DIR = 9,  /* Location dir not found   */
    RC_ERR_RCF = 10, /* Rc file not found        */
    RC_ERR_TRM = 11, /* Request to terminate app */
    RC_WRN_0   = 12, /* Warning base             */
    RC_WRN_OWR = 13, /* Overwrite warning        */
    RC_WRN_NUL = 14  /* NULL pointer warning     */
} rc_return_t;

/* Config function prototypes */
rc_return_t configNew(void);
rc_return_t configLoad(int, const char **);
rc_return_t configInfo(void);
rc_return_t configVerify(void);
rc_return_t configDefaults(void);
rc_return_t configDelete(void);

/* Config accessor prototypes */
const char *configGetval(rc_opt_t);
const char *configGetname(rc_opt_t);
const char *configGetrcfile(void);
const char **configGetsecs(void);

/* Command line function prototypes */
rc_return_t clioptNew(void);
rc_return_t clioptPrintusage(void);
rc_return_t clioptProcess(int, const char *);
rc_return_t clioptParseopts(int, const char **);
rc_return_t clioptParseargs(void);
rc_return_t clioptDelete(void);

/* Command line accessor prototypes */
const char *clioptGetval(rc_opt_t);
const char *clioptGetrcfile(void);
const char **clioptGetsecs(void);
rc_return_t clioptSetval(rc_opt_t, const char *);
rc_return_t clioptSetrcfile(const char *);
rc_return_t clioptSetsecs(const char **);

/* Analyser function prototypes */
rc_anal_t *analNew(void);
rc_return_t analDelete(rc_anal_t *);
rc_return_t analRcs(rc_anal_t **, const char *);
rc_return_t analTmp(rc_anal_t **, const char *);
rc_return_t analFuncs(rc_anal_t **, const char *);
rc_return_t analLocs(rc_anal_t **, const char *);
rc_return_t analSecs(rc_anal_t **, const char **);
rc_return_t analGloblocs(rc_anal_t **);
rc_return_t analParse(rc_anal_t *);

/* Script function prototypes */
rc_script_t *scriptNew(void);
rc_return_t scriptAppend(rc_script_t *, const char *, size_t);
rc_section_t *scriptSection(rc_script_t *, const char *);
rc_return_t scriptDump(rc_script_t *);
const char *scriptTostring(rc_script_t *);
rc_return_t scriptDelete(rc_script_t *);

/* Section function prototypes */
rc_section_t *sectionNew(void);
rc_section_t *sectionCopy(rc_section_t *);
const int sectionGetpri(rc_section_t *);
const int sectionGetuid(rc_section_t *);
const char *sectionGetlogin(rc_section_t *);
const char *sectionGetdata(rc_section_t *);
size_t sectionGetlen(rc_section_t *);
rc_return_t sectionSetpri(rc_section_t *, long);
rc_return_t sectionSetuid(rc_section_t *, long);
rc_return_t sectionSetlogin(rc_section_t *, const char *);
rc_return_t sectionSetdata(rc_section_t *, const char *);
rc_return_t sectionSetndata(rc_section_t *, const char *, size_t);
rc_return_t sectionDump(rc_section_t *);
rc_return_t sectionDelete(rc_section_t *);

/* Processor function prototypes */
rc_proc_t *procNew(void);
rc_return_t procDelete(rc_proc_t *);
rc_return_t procReadfuncs(rc_proc_t *, const char *);
rc_return_t procReadtmp(rc_proc_t *, const char *);
rc_return_t procReadrc(rc_proc_t *, const char *);
rc_return_t procSection(rc_proc_t *, const char *);
rc_return_t procParse(rc_proc_t *);
rc_return_t procPopulate(rc_proc_t *);
rc_return_t procRun(rc_proc_t *);

/* Utility (nonbounded) function prototypes */
char *strErr(rc_return_t);
char **vectorCopy(const char **);
short vectorCount(const char **);
rc_return_t vectorDel(char **);
int priCompare(const void *, const void *);

/* Other function prototypes */
void rcError(ex_t);

/*rc_result_t rc_Err              (void);
rc_result_t rc_Warn             (void);
rc_result_t rc_PathAppend       (int bExists, char **pszPaths);
rc_result_t rc_PathPrepend      (int bExists, char **pszPaths);
rc_result_t rc_EnvDel           (char *szVar, char **pszVals);
rc_result_t rc_QueryVar         (char *szVar, char **pszVal);
rc_result_t rc_ServiceState     (char *szService, char **pszServState);
rc_result_t rc_TmpDirGen        (char *szProgram);
rc_result_t rc_TmpDirFile       (char *szProgram, char *szFilename, *szVar);
rc_result_t rc_TmpDirDel        (char *szProgram);*/

#endif /* __OSSPRC_H__ */

CVSTrac 2.0.1