OSSP CVS Repository

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

ossp-pkg/xds/xds.h 1.6
/*
   $Source: /v/ossp/cvs/ossp-pkg/xds/Attic/xds.h,v $
   $Revision: 1.6 $

   Copyright (c) 2001 by Cable & Wireless Deutschland.

   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 distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   included license for more details.
*/

#ifndef __LIBXDS_H__
#define __LIBXDS_H__

#include <stdlib.h>
#include <stdarg.h>

struct xds_st;
typedef struct xds_st xds_t;

typedef int (*xds_fmt_cb_t)(xds_t* context,
			    void* fmt_context,
			    char* buf, size_t buf_size,
			    va_list args);

xds_t*  xds_init(void);
void    xds_destroy(xds_t* context);

int xds_register(xds_t* context,
		 const char* name, xds_fmt_cb_t callback,
		 void* formatter_context);
int xds_register_xdr(xds_t* context);
int xds_register_xml(xds_t* context);
int xds_register_asn1(xds_t* context);
int xds_unregister(xds_t* context, const char* name);

int xds_set_encode_buffer(xds_t* context, char* buf, size_t buf_size);
int xds_set_decode_buffer(xds_t* context, const char* buf, size_t buf_size);
int xds_get_encode_buffer(xds_t* context, char** buf, size_t* buf_size);

int xds_encode(xds_t* context, const char* fmt, ...);
int xds_decode(xds_t* context, const char* buf, const char* fmt, ...);

int xds_vencode(xds_t* context, const char* fmt, va_list args);
int xds_vdecode(xds_t* context, const char* fmt, va_list args);

#endif /* !defined(__LIBXDS_H__) */

CVSTrac 2.0.1