00001 // $Id: s_clntbuf.h 478 2009-10-29 12:26:09Z linev $ 00002 //----------------------------------------------------------------------- 00003 // The GSI Online Offline Object Oriented (Go4) Project 00004 // Experiment Data Processing at EE department, GSI 00005 //----------------------------------------------------------------------- 00006 // Copyright (C) 2000- GSI Helmholtzzentrum für Schwerionenforschung GmbH 00007 // Planckstr. 1, 64291 Darmstadt, Germany 00008 // Contact: http://go4.gsi.de 00009 //----------------------------------------------------------------------- 00010 // This software can be used under the license agreements as stated 00011 // in Go4License.txt file which is part of the distribution. 00012 //----------------------------------------------------------------------- 00013 00014 /*************************************************************************/ 00015 /* +++ GSI Darmstadt +++ */ 00016 /* +++ +++ */ 00017 /*************************************************************************/ 00018 /*+File name S_CLNTBUF.H */ 00019 /* */ 00020 /*************************************************************************/ 00021 /*+ Update Date Purpose */ 00022 /*- 10-Dec-1993 : Define testbit and low or high endian */ 00023 /* and some types changed and 2LW added */ 00024 /*- 27-Jan-1994 : CLNT_BUFH_LW changed to 11 (RSM) */ 00025 /*- 02-Feb-1994 : definitions in CLNT_BUF_DEF.H , */ 00026 /* def. names changed. (RSM) */ 00027 /*************************************************************************/ 00028 00029 /* RSM 19-MAR-1993 */ 00030 /* is a part of s_clntoutbuf */ 00031 00032 struct s_clntbuf 00033 { 00034 /* ------ first part of s_clntoutbuf omitted ----------- */ 00035 /* --- control byte ordering and machine type (2LW) ---- */ 00036 unsigned int l_testbit; /* bit pattern */ 00037 unsigned int l_endian; /* endian of sender */ 00038 /* ----------------------------------------------------- */ 00039 /* ----- length is CLNT__BUFHEAD ----------------------- */ 00040 int l_dlen; /* data length [bytes] */ 00041 int l_free; /* free length [bytes] */ 00042 int l_events; /* events in buffer */ 00043 int l_maxbufsiz; /* maximum buffer size */ 00044 int l_bytestosnd; /* sent bytes */ 00045 int l_numbuftosnd; /* number of buffers to send */ 00046 int l_client_con; /* currently connect clients */ 00047 int unsigned l_buffertype; /* type: data:1 msg:2 flush:4 */ 00048 /* last:8 1stBUF:16 */ 00049 /* (inclusive) (mask) */ 00050 int unsigned l_msgtyp; /* I:1 W:2 E:4 F:8 (exclusive)*/ 00051 char c_message[CLNT__MSGLEN]; /* error msg and other */ 00052 /* ----- part of s_control structure ------------------- */ 00053 /* ----- length is CLNT__INFO_CONTROL ------------------ */ 00054 int unsigned l_inbuf_read_cnt; /* count read buffer */ 00055 int unsigned l_inbuf_rdok_cnt; /* count read buffer that are o.k */ 00056 int unsigned l_inbuf_skip_cnt; /* count skipped buffer */ 00057 int unsigned l_inbuf_byrd_cnt; /* count read bytes */ 00058 int unsigned l_inbuf_proc_cnt; /* count processed buffer */ 00059 int unsigned l_inbuf_prev_cnt; /* count processed events */ 00060 /* ----- part of s_client structure -------------------- */ 00061 /* ----- length is CLNT__INFO_CLIENT ------------------- */ 00062 int unsigned l_clntoutbuf_sdev; /* sent events */ 00063 int unsigned l_clntoutbuf_sdby; /* sent bytes */ 00064 int unsigned l_clntoutbuf_sdbf; /* sent buffer */ 00065 int unsigned l_clntoutbuf_prev; /* processed evt since con */ 00066 int unsigned l_clntoutbuf_fltm; /* filter matched on evt */ 00067 /* ----------------------------------------------------------------- */ 00068 char c_buffer[GPS__OUTBUFSIZ]; 00069 };