/* ****************************************************
 * *                                                  *
 * *             RTDISP library header file           *
 * *                                                  *
 * ****************************************************
 * File: include/rtdisp_lib.h
 *
 *                       COPYRIGHT (c) 2003 BY
 *          SIGMET INCORPORATED, WESTFORD MASSACHUSETTS, U.S.A.
 *
 * THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
 * ONLY  IN  ACCORDANCE WITH  THE  TERMS  OF  SUCH  LICENSE  AND WITH THE
 * INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE  OR  ANY OTHER
 * COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
 * OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
 * TRANSFERED.
 */
#ifndef SIGMET_RTQ_LIB_H
#define SIGMET_RTQ_LIB_H 1

#ifdef __cplusplus
extern "C" {
#endif


#define RTQ_CLIENT_DISABLED (0)  /* Disabled writer */
#define RTQ_CLIENT_WRITER   (1)
#define RTQ_CLIENT_READER   (2)
#ifdef SIGMET_SIG_RTDISP_H
MESSAGE RtqBufferAttach
( volatile struct rtdisp_control **pRtGlobal_a,
  int  iClientType_a );
#endif  /* #ifdef SIGMET_SIG_RTDISP_H */

#ifdef SIGMET_SIG_RTDISP_H
MESSAGE RtqBufferRelease
( volatile struct rtdisp_control *pRtGlobal_a );
#endif  /* #ifdef SIGMET_SIG_RTDISP_H */

#ifdef SIGMET_SIG_RTDISP_H
UINT1 RtqWriterStatus
( volatile const struct rtdisp_control *pRtGlobal_a );
#endif  /* #ifdef SIGMET_SIG_RTDISP_H */

#ifdef SIGMET_SIG_RTDISP_H
UINT4 RtqGetCurrentSequence
( volatile const struct rtdisp_control *pRtGlobal_a );
#endif  /* #ifdef SIGMET_SIG_RTDISP_H */

#ifdef SIGMET_SIG_RTDISP_H
void RtqInsertRay
( volatile struct rtdisp_control *pRtGlobal_a,
  const struct RtqQueueElement *pElement_a );  /* Data to write */
#endif  /* #ifdef SIGMET_SIG_RTDISP_H */

#ifdef SIGMET_SIG_RTDISP_H
UINT1 RtqGetRay
( volatile const struct rtdisp_control *pRtGlobal_a,
  struct RtqQueueElement *pElement_a,    /* Data read */
  UINT4 iLastSequenceNum_a );   /* The sequence number of the last ray read */
#endif  /* #ifdef SIGMET_SIG_RTDISP_H */

#ifdef __cplusplus
}
#endif

#endif /* #ifndef SIGMET_RTQ_LIB_H */
