/************************************************************************/
/* Copyright 1992 MBARI							*/
/************************************************************************/
/* $Header: /usr/tiburon/unix/gui/proto/RCS/rdmif.h,v 1.1 1998/01/28 16:17:59 oreilly Exp $		*/
/* Summary  : Definitions for Remote Data Manager Interface 		*/
/* Filename : rdmif.h							*/
/* Author   : Bob Herlien (rah)						*/
/* Project  : New ROV							*/
/* $Revision: 1.1 $							*/
/* Created  : 03/02/93							*/
/************************************************************************/
/* Modification History:						*/
/* $Log: rdmif.h,v $
 * Revision 1.1  1998/01/28 16:17:59  oreilly
 * Initial revision
 *
 * Revision 2.2  96/05/15  11:15:24  11:15:24  bobh (Bob Herlien)
 * Still supporting proto during final vehicle build
 * 
 * Revision 2.0  95/09/20  14:22:55  14:22:55  hebo (Bob Herlien)
 * Support for final vehicle integration.  AC, PDU micros.
 * 
 * Revision 1.8  94/08/19  17:20:15  17:20:15  hebo (Bob Herlien)
 * Interface to Unix version of Data Manager
 * 
 * Revision 1.6  93/12/17  15:04:42  15:04:42  hebo (Bob Herlien)
 * December Wet Test
 * 
 * Revision 1.5  93/07/08  18:10:45  18:10:45  hebo (Bob Herlien)
 * Prior to Prototype Phase I testing
 * 
 * Revision 1.4  93/05/27  15:47:52  15:47:52  hebo (Bob Herlien)
 * Data Manager Interface
 * 
*/
/* 02mar93, rah, created from rdmif.c					*/
/************************************************************************/

#ifndef INCrdmifh
#define INCrdmifh	1

#include <mbari/types.h>
typedef Void 	*SEM_ID;		/* So we don't have to include	*/
					/*  all the VxWorks garbage	*/
#include <time.h>
#include <datamgr.h>


Errno		rdm_init( Void );
MBool		rdm_exist( Void );
Errno		rdm_create( char *name, Nat32 nitems, DM_Item *rtn_items,
			    DM_Type dmtype, DM_Num num_elts );
Errno		rdm_create_items( DM_Define *itmp );
DM_Item		rdm_lookup( char *name, Nat32 elt_no );
Errno		rdm_item_status( DM_Item item, DmItemSts *sts );
Errno		rdm_item_status_free( DmItemSts *sts );
DM_Item		rdm_search( char *name, DM_Item from, DM_Num *nitems );
Errno		rdm_start_provider( DM_Item item, Nat32 period );
Errno		rdm_start_multiple( DM_Item item );
Errno		rdm_stop_provider( DM_Item item );
Errno		rdm_start_cnsmr( DM_Item item, Nat32 period, SEM_ID sem );
Errno		rdm_start_consumer( DM_Item item, Nat32 period, SEM_ID sem );
Errno		rdm_stop_consumer( DM_Item item );
Errno		rdm_set_period( DM_Item item, Nat32 period );
Errno		rdm_read( DM_Item item, char *buffer, Nat32 size );
Errno		rdm_readtm(DM_Item item, char *buffer, Nat32 size, DM_Time *tm);
Errno		rdm_write_once( DM_Item item, char *buffer, Nat32 size );
DM_Group	rdm_create_group( char *s );
Errno		rdm_group_add_item( DM_Group gid, DM_Item dmid, DWord *id_bit );
Errno		rdm_group_delete_item( DM_Group gid, DM_Item dmid );
DWord		rdm_get_group_changes( DM_Group gid );
Errno		rdm_delete_group( DM_Group gid );

#endif /* INCrdmifh */
