/*
 * vpbs-db-@template@.h -- declarations for the @template@ table
 * Copyright(c) 2007 Wouter Verhelst, NixSys BVBA
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice and this list of conditions.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice and this list of conditions in the documentation and/or
 *    other materials provided with the distribution, if any such
 *    documentation or materials exist.
 * 3. Neither the name of NixSys nor the names of its contributors,
 *    associates, and other partners may be used to endorse or promote
 *    products derived from this software without specific prior written
 *    permission.
 *
 * @TEMPLATE_DISCLAIMER@
 */
#ifndef VPBS_DB_@TEMPLATE@_H
#define VPBS_DB_@TEMPLATE@_H

#include <glib-object.h>
#include <gnodbify-object.h>
@FOREIGNINCLS@ 
#define VPBS_DB_@TEMPLATE@_TYPE	(vpbs_db_@template@_get_type())
#define VPBS_DB_@TEMPLATE@(obj)	(G_TYPE_CHECK_INSTANCE_CAST((obj), VPBS_DB_@TEMPLATE@_TYPE, VpbsDb@Template@))
#define VPBS_DB_@TEMPLATE@_CLASS(vtable)	(G_TYPE_CHECK_CLASS_CAST((vtable), VPBS_DB_@TEMPLATE@_TYPE, VpbsDb@Template@Class))
#define VPBS_IS_DB_@TEMPLATE@(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), VPBS_DB_@TEMPLATE@_TYPE))
#define VPBS_IS_DB_@TEMPLATE@_CLASS(vtable)  (G_TYPE_CHECK_CLASS_TYPE((vtable), VPBS_DB_@TEMPLATE@_TYPE))
#define VPBS_DB_@TEMPLATE@_GET_CLASS(inst)   (G_TYPE_INSTANCE_GET_CLASS((inst), VPBS_DB_@TEMPLATE@_TYPE, VpbsDb@Template@Class))

typedef struct _VpbsDb@Template@ VpbsDb@Template@;
typedef struct _VpbsDb@Template@Class VpbsDb@Template@Class;
typedef struct _VpbsDb@Template@Private VpbsDb@Template@Private;

struct _VpbsDb@Template@ {
	GNoDbifyObject parent;
	VpbsDb@Template@Private* priv;
};

struct _VpbsDb@Template@Class {
	GNoDbifyObjectClass parent;
};

GType vpbs_db_@template@_get_type() G_GNUC_PURE;
VpbsDb@Template@* vpbs_db_@template@_lookup(guint id, GError** err);
VpbsDb@Template@* vpbs_db_@template@_new(@NEWARGS@);
GArray* vpbs_db_@template@_get_all(GError**);
GArray* vpbs_db_@template@_get_all_ordered(GError**);
gboolean vpbs_db_@template@_destroy(VpbsDb@Template@*, GError**);
@FOREIGNDECLS@ 
#endif /* VPBS_DB_@TEMPLATE@_H */

