OSSP CVS Repository

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

ossp-pkg/xds/xds_p.h 1.1
/* 
 * XDS - OSSP Extensible Data Serialization Library Copyright (c) 2001 The
 * OSSP Project (http://www.ossp.org/) Copyright (c) 2001 Cable & Wireless
 * Deutschland (http://www.cw.com/de/)
 * 
 * This file is part of OSSP XDS, an extensible data serialization library
 * which can be found at http://www.ossp.com/pkg/xds/.
 * 
 * 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.
 * 
 * internal.h: internal C API */

#ifndef __INTERNAL_H__
#define __INTERNAL_H__

#include "xds.h"

#define XDS_INITIAL_BUFFER_CAPACITY  512
#define XDS_INITIAL_ENGINES_CAPACITY  32

typedef struct {
    char *name;
    xds_engine_t engine;
    void *context;
} engine_map_t;

struct xds_context {
    xds_mode_t mode;

    char *buffer;
    size_t buffer_len;
    size_t buffer_capacity;
    int we_own_buffer;

    engine_map_t *engines;
    size_t engines_len;
    size_t engines_capacity;
};

int xds_find_engine(const engine_map_t * engines, size_t last,
                    const char *name, size_t * pos);
int xds_set_capacity(void **array, size_t * array_capacity,
                     size_t new_capacity, size_t elem_size,
                     size_t initial_capacity);

#endif /* !defined(__INTERNAL_H__) */

CVSTrac 2.0.1