Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

f_evt.h

Go to the documentation of this file.
00001 //-------------------------------------------------------------
00002 //        Go4 Release Package v3.04-01 (build 30401)
00003 //                      28-November-2008
00004 //---------------------------------------------------------------
00005 //   The GSI Online Offline Object Oriented (Go4) Project
00006 //   Experiment Data Processing at EE 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 F_EVT
00018 #define F_EVT
00019 
00020 #include "typedefs.h"
00021 
00022 /* ++++++++++++++++ include UNIX standard headers +++++++++++++++++++++++++ */
00023 
00024 #if MBS_ENDIAN == 1     
00025 #include "s_ve10_1.h"
00026 #include "s_ves10_1.h"
00027 #include "s_evhe.h"
00028 #include "s_bufhe.h"
00029 #else
00030 #include "s_ve10_1_swap.h"
00031 #include "s_ves10_1_swap.h"
00032 #include "s_evhe_swap.h"
00033 #include "s_bufhe_swap.h"
00034 #endif
00035 
00036 #include "fLmd.h"
00037 
00038 #define MAX_BUF_LGTH 32768
00039 #define MIN_BUF_LGTH 512
00040 #define MAX_BUFS_IN_STREAM 100    /* at a maximum, 100 buffers per stream */
00041 #define MAX_LONG 99999999         /* maximum long data */
00042 
00043 typedef struct
00044 {
00045   INTS4 l_endian;
00046   INTS4 l_version;
00047   INTS4 l_bufsize;
00048   INTS4 l_buffers;
00049   INTS4 l_events;
00050   INTS4 l_filesize;
00051   INTS4 l_first;
00052   INTS4 l_last;
00053   INTS4 l_linear;
00054 } s_taghe;
00055 
00056 typedef struct
00057 {
00058   INTS4 l_event;
00059   INTS4 l_offset;
00060 } s_tag;
00061 
00062 typedef struct
00063 {
00064    INTS4    l_server_type;    /* number specifying input source */
00065    INTS4    l_buf_type;       /* buffer type number               */
00066    INTS4    l_buf_subtype;    /* buffer subtype number            */
00067    INTS4    l_channel_no;     /* file descripter or server No.    */
00068    INTS4    l_buf_size;       /* buffer size                      */
00069    INTS4    l_buf_no;
00070    INTS4    l_buf_posi;
00071    INTS4    l_buf_lmt;
00072    INTS4    l_bufs_in_stream; /* # of buffers per stream          */
00073    INTS4    l_stream_bufs;
00074    INTS4    l_io_buf_size;    /* I/O buffer size=l_buf_size*l_bufs_in_stream */
00075    INTS4    l_io_buf_posi;
00076    INTS4    l_evt_buf_size;   /* internal buffer size             */
00077    INTS4    l_evt_buf_posi;
00078    INTS4    l_evt_size;
00079    INTS4    l_timeout;        /* -1 (default) no timeout */
00080    INTS4    l_events;         /* events since open             */
00081    INTS4    l_buffers;        /* buffers since open             */
00082    INTS4    l_kbytes;         /* kbytes since open             */
00083    INTS4    l_first_get;
00084    INTS4    l_first_put;
00085    INTS4    l_first_buf;
00086    INTS4    l_frag_len;
00087    CHARS    *pc_io_buf;       /* pointer to I/O buffer to server  */
00088    CHARS    *pc_evt_buf;      /* pointer to internal event buffer */
00089    s_bufhe  *ps_bufhe;
00090    s_bufhe  s_bufhe_1;        /* keep buffer header of 1st buffer for spanned event */
00091    s_ve10_1 *ps_ve10_1;
00092    CHARS    c_channel[128];   /* channel name */
00093    INTS4    l_tagfile_no;     /* file descripter or server No.    */
00094    INTS4    l_tagswap;
00095    INTS4    l_lmdswap;
00096    s_taghe  *ps_taghe;
00097    s_tag    *ps_tag;
00098    sLmdControl *pLmd;
00099 } s_evt_channel;
00100 
00101 INTS4 f_evt_cre_tagfile(CHARS *,CHARS *, INTS4 (*)());
00102 INTS4 f_evt_get_tagopen(s_evt_channel *,CHARS *,CHARS *,CHARS **,INTS4);
00103 INTS4 f_evt_get_tagevent(s_evt_channel *,INTS4,INTS4,INTS4 **);
00104 INTS4 f_evt_get_tagnext(s_evt_channel *,INTS4,INTS4 **);
00105 INTS4 f_evt_get_tagclose(s_evt_channel *);
00106 INTS4 f_evt_get_open(INTS4, CHARS *, s_evt_channel *, CHARS **, INTS4, INTS4);
00107 INTS4 f_evt_get_event(s_evt_channel *, INTS4 **, INTS4 **);
00108 INTS4 f_evt_get_subevent(s_ve10_1 *,INTS4,INTS4 **,INTS4 **,INTS4 *);
00109 INTS4 f_evt_get_buffer(s_evt_channel *, INTS4 *);
00110 INTS4 f_evt_get_close(s_evt_channel *);
00111 CHARS * f_evt_get_buffer_ptr(s_evt_channel *);
00112 INTS4 f_evt_skip_buffer(s_evt_channel *, INTS4);
00113 INTS4 f_evt_put_open(CHARS *,INTS4,INTS4,INTS4,INTS4,s_evt_channel *,CHARS *);
00114 INTS4 f_evt_put_event(s_evt_channel *, INTS4 *);
00115 INTS4 f_evt_put_buffer(s_evt_channel *, s_bufhe *);
00116 INTS4 f_evt_put_close(s_evt_channel *);
00117 INTS4 f_evt_type(s_bufhe *,s_evhe *,INTS4,INTS4,INTS4,INTS4);
00118 INTS4 f_evt_error( INTS4 , CHARS * , INTS4 );
00119 INTS4 f_evt_timeout(s_evt_channel *, INTS4 );
00120 INTS4 f_evt_rev_port(INTS4);
00121 INTS4 f_evt_swap(CHARS *, INTS4);
00122 s_evt_channel * f_evt_control();
00123 
00124 /* ******************************/
00125 /*  Input selector              */
00126 /* ******************************/
00127 #define GETEVT__FILE     1
00128 #define GETEVT__STREAM   2
00129 #define GETEVT__TRANS    3
00130 #define GETEVT__EVENT    4
00131 #define GETEVT__REVSERV  5
00132 #define GETEVT__RFIO     6
00133 #define GETEVT__TAGINDEX  10
00134 #define GETEVT__TAGNUMBER 11
00135 /* ********************************************************************** */
00136 /*                   error messages                                       */
00137 /* ********************************************************************** */
00138 #define GETEVT__SUCCESS     0
00139 #define GETEVT__FAILURE     1
00140 #define GETEVT__FRAGMENT    2
00141 #define GETEVT__NOMORE      3
00142 #define GETEVT__NOFILE      4
00143 #define GETEVT__NOSERVER    5
00144 #define GETEVT__RDERR       6
00145 #define GETEVT__CLOSE_ERR   7
00146 #define GETEVT__NOCHANNEL   8
00147 #define GETEVT__TIMEOUT     9
00148 #define GETEVT__NOTAGFILE  10
00149 #define GETEVT__NOTAG      11
00150 #define GETEVT__TAGRDERR   12
00151 #define GETEVT__TAGWRERR   13
00152 #define GETEVT__NOLMDFILE  14
00153 
00154 #define PUTEVT__SUCCESS     0
00155 #define PUTEVT__FILE_EXIST  101
00156 #define PUTEVT__FAILURE     102
00157 #define PUTEVT__TOOBIG      103
00158 #define PUTEVT__TOO_SMALLS  104
00159 #define PUTEVT__CLOSE_ERR   105
00160 #define PUTEVT__WRERR       106
00161 #define PUTEVT__NOCHANNEL   107
00162 
00163 #endif
00164 /*****************  End f_evt.h ******************************/
00165 
00166 //----------------------------END OF GO4 SOURCE FILE ---------------------

Generated on Fri Nov 28 12:59:32 2008 for Go4-v3.04-1 by  doxygen 1.4.2