Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

/MbsAPI/f_evt.h

Go to the documentation of this file.
00001 //---------------------------------------------------------------
00002 //        Go4 Release Package v2.10-5 (build 21005) 
00003 //                      03-Nov-2005
00004 //---------------------------------------------------------------
00005 //       The GSI Online Offline Object Oriented (Go4) Project
00006 //       Experiment Data Processing at DVEE department, GSI
00007 //---------------------------------------------------------------
00008 //
00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI
00010 //                    Planckstr. 1, 64291 Darmstadt, Germany
00011 //Contact:            http://go4.gsi.de
00012 //----------------------------------------------------------------
00013 //This software can be used under the license agreements as stated
00014 //in Go4License.txt file which is part of the distribution.
00015 //----------------------------------------------------------------
00016 /*****************  f_evt.h ******************************/
00017 #ifndef GETEVT
00018 #define GETEVT
00019 
00020 #include "typedefs.h"
00021 
00022 #define MAX_BUF_LGTH 32768
00023 #define MIN_BUF_LGTH 512
00024 #define MAX_BUFS_IN_STREAM 100    /* at a maximum, 100 buffers per stream */
00025 #define MAX_LONG 99999999         /* maximum long data */
00026 
00027 typedef struct
00028 {
00029   INTS4 l_endian;
00030   INTS4 l_version;
00031   INTS4 l_bufsize;
00032   INTS4 l_buffers;
00033   INTS4 l_events;
00034   INTS4 l_filesize;
00035   INTS4 l_first;
00036   INTS4 l_last;
00037   INTS4 l_linear;
00038 } s_taghe;
00039 typedef struct
00040 {
00041   INTS4 l_event;
00042   INTS4 l_offset;
00043 } s_tag;
00044 typedef struct
00045 {
00046    INTS4    l_server_type;    /* number specifying input source */
00047    INTS4    l_buf_type;       /* buffer type number               */
00048    INTS4    l_buf_subtype;    /* buffer subtype number            */
00049    INTS4    l_channel_no;     /* file descripter or server No.    */
00050    INTS4    l_buf_size;       /* buffer size                      */
00051    INTS4    l_buf_no;
00052    INTS4    l_buf_posi;
00053    INTS4    l_buf_lmt;
00054    INTS4    l_bufs_in_stream; /* # of buffers per stream          */
00055    INTS4    l_stream_bufs;
00056    INTS4    l_io_buf_size;    /* I/O buffer size=l_buf_size*l_bufs_in_stream */
00057    INTS4    l_io_buf_posi;
00058    INTS4    l_evt_buf_size;   /* internal buffer size             */
00059    INTS4    l_evt_buf_posi;
00060    INTS4    l_evt_size;
00061    INTS4    l_timeout;        /* -1 (default) no timeout */
00062    INTS4    l_events;         /* events since open             */
00063    INTS4    l_buffers;        /* buffers since open             */
00064    INTS4    l_kbytes;         /* kbytes since open             */
00065    INTS4    l_first_get;
00066    INTS4    l_first_put;
00067    INTS4    l_first_buf;
00068    INTS4    l_frag_len;
00069    CHARS    *pc_io_buf;       /* pointer to I/O buffer to server  */
00070    CHARS    *pc_evt_buf;      /* pointer to internal event buffer */
00071    s_bufhe  *ps_bufhe;
00072    s_bufhe  s_bufhe_1;        /* keep buffer header of 1st buffer for spanned event */
00073    s_ve10_1 *ps_ve10_1;
00074    CHARS    c_channel[128];   /* channel name */
00075    INTS4    l_tagfile_no;     /* file descripter or server No.    */
00076    INTS4    l_tagswap;
00077    INTS4    l_lmdswap;
00078    s_taghe  *ps_taghe;
00079    s_tag    *ps_tag;
00080 } s_evt_channel;
00081 
00082 INTS4 f_evt_cre_tagfile(CHARS *,CHARS *, INTS4 (*)());
00083 INTS4 f_evt_get_tagopen(s_evt_channel *,CHARS *,CHARS *,CHARS **,INTS4);
00084 INTS4 f_evt_get_tagevent(s_evt_channel *,INTS4,INTS4,INTS4 **);
00085 INTS4 f_evt_get_tagnext(s_evt_channel *,INTS4,INTS4 **);
00086 INTS4 f_evt_get_tagclose(s_evt_channel *);
00087 INTS4 f_evt_get_open(INTS4, CHARS *, s_evt_channel *, CHARS **, INTS4, INTS4);
00088 INTS4 f_evt_get_event(s_evt_channel *, INTS4 **, INTS4 **);
00089 INTS4 f_evt_get_subevent(s_ve10_1 *,INTS4,INTS4 **,INTS4 **,INTS4 *);
00090 INTS4 f_evt_get_buffer(s_evt_channel *, INTS4 *);
00091 INTS4 f_evt_get_close(s_evt_channel *);
00092 CHARS * f_evt_get_buffer_ptr(s_evt_channel *);
00093 INTS4 f_evt_skip_buffer(s_evt_channel *, INTS4);
00094 INTS4 f_evt_put_open(CHARS *,INTS4,INTS4,INTS4,INTS4,s_evt_channel *,CHARS *);
00095 INTS4 f_evt_put_event(s_evt_channel *, INTS4 *);
00096 INTS4 f_evt_put_buffer(s_evt_channel *, s_bufhe *);
00097 INTS4 f_evt_put_close(s_evt_channel *);
00098 INTS4 f_evt_type(s_bufhe *,s_evhe *,INTS4,INTS4,INTS4,INTS4);
00099 INTS4 f_evt_error( INTS4 , CHARS * , INTS4 );
00100 INTS4 f_evt_timeout(s_evt_channel *, INTS4 );
00101 INTS4 f_evt_rev_port(INTS4);
00102 INTS4 f_evt_swap(CHARS *, INTS4);
00103 
00104 /* ******************************/
00105 /*  Input selector              */
00106 /* ******************************/
00107 #define GETEVT__FILE     1
00108 #define GETEVT__STREAM   2
00109 #define GETEVT__TRANS    3
00110 #define GETEVT__EVENT    4
00111 #define GETEVT__REVSERV  5
00112 #define GETEVT__RFIO     6
00113 #define GETEVT__TAGINDEX  10
00114 #define GETEVT__TAGNUMBER 11
00115 /* ********************************************************************** */
00116 /*                   error messages                                       */
00117 /* ********************************************************************** */
00118 #define GETEVT__SUCCESS     0
00119 #define GETEVT__FAILURE     1
00120 #define GETEVT__FRAGMENT    2
00121 #define GETEVT__NOMORE      3
00122 #define GETEVT__NOFILE      4
00123 #define GETEVT__NOSERVER    5
00124 #define GETEVT__RDERR       6
00125 #define GETEVT__CLOSE_ERR   7
00126 #define GETEVT__NOCHANNEL   8
00127 #define GETEVT__TIMEOUT     9
00128 #define GETEVT__NOTAGFILE  10
00129 #define GETEVT__NOTAG      11
00130 #define GETEVT__TAGRDERR   12
00131 #define GETEVT__TAGWRERR   13
00132 #define GETEVT__NOLMDFILE  14
00133 
00134 #define PUTEVT__SUCCESS     0
00135 #define PUTEVT__FILE_EXIST  101
00136 #define PUTEVT__FAILURE     102
00137 #define PUTEVT__TOOBIG      103
00138 #define PUTEVT__TOO_SMALLS  104
00139 #define PUTEVT__CLOSE_ERR   105
00140 #define PUTEVT__WRERR       106
00141 #define PUTEVT__NOCHANNEL   107
00142 
00143 #endif
00144 /*****************  End f_evt.h ******************************/
00145 
00146 //----------------------------END OF GO4 SOURCE FILE ---------------------

Generated on Tue Nov 8 10:56:08 2005 for Go4-v2.10-5 by doxygen1.2.15