/*
* Copyright (C) 2005 Laurent Sansonetti <lrz@gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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 GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __RBZOOM_H_
#define __RBZOOM_H_
#include <yaz/zoom.h>
#include <ruby.h>
#include <assert.h>
/* initialization */
void Init_zoom (void);
void Init_zoom_connection (VALUE mZoom);
void Init_zoom_query (VALUE mZoom);
void Init_zoom_resultset (VALUE mZoom);
void Init_zoom_record (VALUE mZoom);
/* rbzoomoptions.c */
ZOOM_options ruby_hash_to_zoom_options (VALUE hash);
VALUE zoom_option_value_to_ruby_value (const char *value);
void define_zoom_option (VALUE klass, const char *option);
/* rbzoomparse.c */
ZOOM_query rbz_query_get (VALUE obj);
/* rbzoomresultset.c */
VALUE rbz_resultset_make (ZOOM_resultset resultset);
/* rbzoomrecord.c */
VALUE rbz_record_make (ZOOM_record record);
/* useful macros */
#if !defined (RVAL2CSTR)
# define RVAL2CSTR(x) (NIL_P (x) ? NULL : STR2CSTR(x))
#endif
#if !defined (CSTR2RVAL)
# define CSTR2RVAL(x) (x == NULL ? Qnil : rb_str_new2(x))
#endif
#if !defined (RVAL2CBOOL)
# define RVAL2CBOOL(x) (RTEST (x))
#endif
#if !defined (CBOOL2RVAL)
# define CBOOL2RVAL(x) (x ? Qtrue : Qfalse)
#endif
#endif /* __RBZOOM_H_ */
syntax highlighted by Code2HTML, v. 0.9.1