/* * 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__) */