OSSP CVS Repository

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

ossp-pkg/val/val.h 1.2
/*
**  val - OSSP Value Library
**  Copyright (c) 2002 Ralf S. Engelschall <rse@engelschall.com>
**  Copyright (c) 2002 The OSSP Project <http://www.ossp.org/>
**  Copyright (c) 2002 Cable & Wireless Deutschland <http://www.cw.com/de/>
**
**  This file is part of OSSP val, a Value library which
**  can be found at http://www.ossp.org/pkg/val/.
**
**  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.
**
**  val.h: library API
*/

#ifndef __VAL_H__
#define __VAL_H__

#include <stdarg.h>

enum {
    VAL_TYPE_VAL    = 1<<0,
    VAL_TYPE_PTR    = 1<<1,
    VAL_TYPE_CHAR   = 1<<2,
    VAL_TYPE_SHORT  = 1<<3,
    VAL_TYPE_INT    = 1<<4,
    VAL_TYPE_LONG   = 1<<5,
    VAL_TYPE_FLOAT  = 1<<6,
    VAL_TYPE_DOUBLE = 1<<7
};

typedef enum {
    VAL_OK,
    VAL_ERR_ARG,
    VAL_ERR_USE,
    VAL_ERR_MEM,
    VAL_ERR_SYS
} val_rc_t;

struct val_s;
typedef struct val_s val_t;

typedef val_rc_t (*val_cb_t)(void *, const char *, int, const char *, void *);

val_rc_t val_create  (val_t **);
val_rc_t val_destroy (val_t *);
val_rc_t val_reg     (val_t *, const char *, int, const char *, void *);
val_rc_t val_set     (val_t *, const char *, ...);
val_rc_t val_get     (val_t *, const char *, ...);
val_rc_t val_vset    (val_t *, const char *, va_list);
val_rc_t val_vget    (val_t *, const char *, va_list);
val_rc_t val_apply   (val_t *, const char *, int, val_cb_t, void *);

#endif /* __VAL_H__ */


CVSTrac 2.0.1