GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
f_evt.h
Go to the documentation of this file.
1 // $Id$
2 //-----------------------------------------------------------------------
3 // The GSI Online Offline Object Oriented (Go4) Project
4 // Experiment Data Processing at EE department, GSI
5 //-----------------------------------------------------------------------
6 // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7 // Planckstr. 1, 64291 Darmstadt, Germany
8 // Contact: http://go4.gsi.de
9 //-----------------------------------------------------------------------
10 // This software can be used under the license agreements as stated
11 // in Go4License.txt file which is part of the distribution.
12 //-----------------------------------------------------------------------
13 
14 #ifndef F_EVT_H
15 #define F_EVT_H
16 
17 #include "typedefs.h"
18 
19 /* ++++++++++++++++ include UNIX standard headers +++++++++++++++++++++++++ */
20 
21 #include "s_ve10_1.h"
22 #include "s_ves10_1.h"
23 #include "s_evhe.h"
24 #include "s_bufhe.h"
25 
26 #define MAX_BUF_LGTH 32768
27 #define MIN_BUF_LGTH 512
28 #define MAX_BUFS_IN_STREAM 100 /* at a maximum, 100 buffers per stream */
29 #define MAX_LONG 99999999 /* maximum long data */
30 
31 typedef struct
32 {
42 } s_taghe;
43 
44 typedef struct
45 {
48 } s_tag;
49 
50 struct sLmdControl;
51 
52 
53 typedef struct
54 {
55  INTS4 l_server_type; /* number specifying input source */
56  INTS4 l_buf_type; /* buffer type number */
57  INTS4 l_buf_subtype; /* buffer subtype number */
58  INTS4 l_channel_no; /* file descripter or server No. */
59  INTS4 l_buf_size; /* buffer size */
63  INTS4 l_bufs_in_stream; /* # of buffers per stream */
65  INTS4 l_io_buf_size; /* I/O buffer size=l_buf_size*l_bufs_in_stream */
67  INTS4 l_evt_buf_size; /* internal buffer size */
70  INTS4 l_timeout; /* -1 (default) no timeout */
71  INTS4 l_events; /* events since open */
72  INTS4 l_buffers; /* buffers since open */
73  INTS4 l_kbytes; /* kbytes since open */
78  CHARS *pc_io_buf; /* pointer to I/O buffer to server */
79  CHARS *pc_evt_buf; /* pointer to internal event buffer */
81  s_bufhe s_bufhe_1; /* keep buffer header of 1st buffer for spanned event */
83  CHARS c_channel[128]; /* channel name */
84  INTS4 l_tagfile_no; /* file descripter or server No. */
90  void (*cb_polling)(void); /* function to call when polling for timeout */
92 
113 INTS4 f_evt_rev_port(INTS4); /* obsolete */
116 
117 /* ******************************/
118 /* Input selector */
119 /* ******************************/
120 #define GETEVT__FILE 1
121 #define GETEVT__STREAM 2
122 #define GETEVT__TRANS 3
123 #define GETEVT__EVENT 4
124 #define GETEVT__REVSERV 5
125 #define GETEVT__RFIO 6
126 #define GETEVT__TAGINDEX 10
127 #define GETEVT__TAGNUMBER 11
128 /* ********************************************************************** */
129 /* error messages */
130 /* ********************************************************************** */
131 #define GETEVT__SUCCESS 0
132 #define GETEVT__FAILURE 1
133 #define GETEVT__FRAGMENT 2
134 #define GETEVT__NOMORE 3
135 #define GETEVT__NOFILE 4
136 #define GETEVT__NOSERVER 5
137 #define GETEVT__RDERR 6
138 #define GETEVT__CLOSE_ERR 7
139 #define GETEVT__NOCHANNEL 8
140 #define GETEVT__TIMEOUT 9
141 #define GETEVT__NOTAGFILE 10
142 #define GETEVT__NOTAG 11
143 #define GETEVT__TAGRDERR 12
144 #define GETEVT__TAGWRERR 13
145 #define GETEVT__NOLMDFILE 14
146 
147 #define PUTEVT__SUCCESS 0
148 #define PUTEVT__FILE_EXIST 101
149 #define PUTEVT__FAILURE 102
150 #define PUTEVT__TOOBIG 103
151 #define PUTEVT__TOO_SMALLS 104
152 #define PUTEVT__CLOSE_ERR 105
153 #define PUTEVT__WRERR 106
154 #define PUTEVT__NOCHANNEL 107
155 
156 #endif
157 /***************** End f_evt.h ******************************/
INTS4 f_evt_put_buffer(s_evt_channel *, s_bufhe *)
Definition: f_evt.c:1448
INTS4 l_buf_type
Definition: f_evt.h:56
INTS4 f_evt_timeout(s_evt_channel *, INTS4)
Definition: f_evt.c:1833
INTS4 l_last
Definition: f_evt.h:40
INTS4 f_evt_cre_tagfile(CHARS *, CHARS *, INTS4(*)())
INTS4 l_channel_no
Definition: f_evt.h:58
s_tag * ps_tag
Definition: f_evt.h:88
CHARS * pc_evt_buf
Definition: f_evt.h:79
INTS4 l_first_buf
Definition: f_evt.h:76
INTS4 l_buffers
Definition: f_evt.h:36
INTS4 l_lmdswap
Definition: f_evt.h:86
sLmdControl * pLmd
Definition: f_evt.h:89
INTS4 f_evt_get_buffer(s_evt_channel *, INTS4 *)
Definition: f_evt.c:1693
s_bufhe s_bufhe_1
Definition: f_evt.h:81
INTS4 l_buffers
Definition: f_evt.h:72
INTS4 l_first_get
Definition: f_evt.h:74
s_bufhe * ps_bufhe
Definition: f_evt.h:80
INTS4 l_buf_size
Definition: f_evt.h:59
INTS4 f_evt_get_tagnext(s_evt_channel *, INTS4, INTS4 **)
Definition: f_evt.c:2594
Definition: s_evhe.h:32
INTS4 l_bufs_in_stream
Definition: f_evt.h:63
INTS4 f_evt_get_close(s_evt_channel *)
Definition: f_evt.c:1101
INTS4 l_first_put
Definition: f_evt.h:75
INTS4 l_kbytes
Definition: f_evt.h:73
INTS4 l_filesize
Definition: f_evt.h:38
INTS4 l_buf_no
Definition: f_evt.h:60
INTS4 f_evt_put_open(CHARS *, INTS4, INTS4, INTS4, INTS4, s_evt_channel *, CHARS *)
Definition: f_evt.c:1192
s_taghe * ps_taghe
Definition: f_evt.h:87
CHARS * pc_io_buf
Definition: f_evt.h:78
INTS4 l_evt_buf_posi
Definition: f_evt.h:68
INTS4 l_offset
Definition: f_evt.h:47
INTS4 f_evt_source_port(INTS4 l_port)
Definition: f_evt.c:486
INTS4 l_stream_bufs
Definition: f_evt.h:64
INTS4 l_first
Definition: f_evt.h:39
INTS4 l_tagswap
Definition: f_evt.h:85
INTS4 f_evt_error(INTS4, CHARS *, INTS4)
Definition: f_evt.c:1586
int INTS4
Definition: typedefs.h:28
INTS4 l_tagfile_no
Definition: f_evt.h:84
CHARS * f_evt_get_buffer_ptr(s_evt_channel *)
Definition: f_evt.c:1928
INTS4 l_version
Definition: f_evt.h:34
INTS4 f_evt_put_event(s_evt_channel *, INTS4 *)
Definition: f_evt.c:1305
INTS4 f_evt_skip_buffer(s_evt_channel *, INTS4)
Definition: f_evt.c:1779
INTS4 f_evt_get_open(INTS4, CHARS *, s_evt_channel *, CHARS **, INTS4, INTS4)
Definition: f_evt.c:552
Definition: f_evt.h:31
INTS4 l_endian
Definition: f_evt.h:33
INTS4 l_evt_size
Definition: f_evt.h:69
INTS4 f_evt_get_tagevent(s_evt_channel *, INTS4, INTS4, INTS4 **)
Definition: f_evt.c:2643
INTS4 l_events
Definition: f_evt.h:37
INTS4 f_evt_get_event(s_evt_channel *, INTS4 **, INTS4 **)
Definition: f_evt.c:909
INTS4 l_frag_len
Definition: f_evt.h:77
INTS4 l_bufsize
Definition: f_evt.h:35
s_evt_channel * f_evt_control(void)
Definition: f_evt.c:2819
INTS4 l_timeout
Definition: f_evt.h:70
INTS4 l_io_buf_size
Definition: f_evt.h:65
INTS4 f_evt_get_tagopen(s_evt_channel *, CHARS *, CHARS *, CHARS **, INTS4)
Definition: f_evt.c:2470
INTS4 l_buf_posi
Definition: f_evt.h:61
Definition: f_evt.h:44
INTS4 f_evt_type(s_bufhe *, s_evhe *, INTS4, INTS4, INTS4, INTS4)
Definition: f_evt.c:298
INTS4 f_evt_swap(CHARS *, INTS4)
Definition: f_evt.c:1853
INTS4 l_linear
Definition: f_evt.h:41
INTS4 f_evt_get_tagclose(s_evt_channel *)
Definition: f_evt.c:2801
INTS4 l_event
Definition: f_evt.h:46
INTS4 l_events
Definition: f_evt.h:71
char CHARS
Definition: typedefs.h:21
INTS4 f_evt_get_subevent(s_ve10_1 *, INTS4, INTS4 **, INTS4 **, INTS4 *)
Definition: f_evt.c:235
INTS4 l_buf_subtype
Definition: f_evt.h:57
INTS4 f_evt_rev_port(INTS4)
Definition: f_evt.c:509
s_ve10_1 * ps_ve10_1
Definition: f_evt.h:82
INTS4 f_evt_put_close(s_evt_channel *)
Definition: f_evt.c:1493
INTS4 l_io_buf_posi
Definition: f_evt.h:66
INTS4 l_evt_buf_size
Definition: f_evt.h:67
INTS4 l_server_type
Definition: f_evt.h:55
INTS4 l_buf_lmt
Definition: f_evt.h:62