et.h

Go to the documentation of this file.
00001 /*----------------------------------------------------------------------------*
00002  *  Copyright (c) 1998        Southeastern Universities Research Association, *
00003  *                            Thomas Jefferson National Accelerator Facility  *
00004  *                                                                            *
00005  *    This software was developed under a United States Government license    *
00006  *    described in the NOTICE file included as part of this distribution.     *
00007  *                                                                            *
00008  *    Author:  Carl Timmer                                                    *
00009  *             timmer@jlab.org                   Jefferson Lab, MS-12H        *
00010  *             Phone: (757) 269-5130             12000 Jefferson Ave.         *
00011  *             Fax:   (757) 269-5800             Newport News, VA 23606       *
00012  *                                                                            *
00013  *----------------------------------------------------------------------------*
00014  *
00015  * Description:
00016  *      Header file for ET system
00017  *
00018  *----------------------------------------------------------------------------*/
00019 
00020 #ifndef _ET_H_
00021 #define _ET_H_
00022 
00023 #include <stdio.h>
00024 #include <stdlib.h>
00025 #include <string.h>
00026 #include <pthread.h>
00027 
00028 #if  !(defined VXWORKS || defined sun)
00029 #include <stdint.h>
00030 #endif
00031 
00032 
00033 #ifdef VXWORKS
00034 
00035 #include <vxWorks.h>
00036 #include <time.h>
00037 #include <semLib.h>
00038 #define INET_ATON_ERR   ERROR
00039 
00040 #else
00041 
00042 #define INET_ATON_ERR   0
00043 #include <inttypes.h>
00044 
00045 #endif
00046 
00047 #ifdef  __cplusplus
00048 extern "C" {
00049 #endif
00050 
00051 
00052 /*********************************************************************/
00053 /*            The following default values may be changed            */
00054 /*********************************************************************/
00055 /* station stuff */
00056 #define ET_STATION_CUE      10   
00057 #define ET_STATION_PRESCALE 1    
00059 /* system stuff */
00060 #define ET_SYSTEM_EVENTS    300  
00061 #define ET_SYSTEM_NTEMPS    300  
00062 #define ET_SYSTEM_ESIZE     1000 
00063 #define ET_SYSTEM_NSTATS    200  
00065 /* network stuff */
00066 #define ET_MULTICAST_PORT  11111 
00067 #define ET_BROADCAST_PORT  11111 
00068 #define ET_SERVER_PORT     11111 
00070 #define ET_MULTICAST_ADDR  "239.200.0.0"    
00072 #define ET_EVENT_GROUPS_MAX 200 
00074 /*********************************************************************/
00075 /*                              WARNING                              */
00076 /* Changing ET_STATION_SELECT_INTS requires a full recompile of all  */
00077 /* ET libraries (local & remote) whose users interact in any way.    */
00078 /*********************************************************************/
00079 
00081 #define ET_STATION_SELECT_INTS 6
00082 
00083 /*********************************************************************/
00084 /*             DO NOT CHANGE ANYTHING BELOW THIS LINE !!!            */
00085 /*********************************************************************/
00086 
00088 #define ET_MULTICAST_TTL   32
00089 
00090 /* ET server is on host that is ... */
00091 #define ET_HOST_LOCAL      ".local"      
00092 #define ET_HOST_REMOTE     ".remote"     
00093 #define ET_HOST_ANYWHERE   ".anywhere"   
00095 /* Treat local ET server as local or remote? */
00096 #define ET_HOST_AS_LOCAL   1  
00097 #define ET_HOST_AS_REMOTE  0  
00099 /* Policy to pick a single responder from many after broad/multicast */
00100 #define ET_POLICY_FIRST  0   
00101 #define ET_POLICY_LOCAL  1   
00102 #define ET_POLICY_ERROR  2   
00104 /* Name lengths */
00105 #define ET_FILENAME_LENGTH  100 
00106 #define ET_FUNCNAME_LENGTH  48  
00107 #define ET_STATNAME_LENGTH  48  
00109 #define ET_TEMPNAME_LENGTH  (ET_FILENAME_LENGTH+12)
00110 
00111 /*----------------*/
00112 /* Station stuff. */
00113 /*----------------*/
00114 
00115 #define ET_GRANDCENTRAL 0  
00117 /* Station status. */
00118 #define ET_STATION_UNUSED   0            
00119 #define ET_STATION_CREATING 1            
00120 #define ET_STATION_IDLE     2            
00121 #define ET_STATION_ACTIVE   3            
00123 /* How many user process can attach */
00124 #define ET_STATION_USER_MULTI  0         
00125 #define ET_STATION_USER_SINGLE 1         
00127 /* Can block for event flow or not */
00128 #define ET_STATION_NONBLOCKING 0         
00129 #define ET_STATION_BLOCKING    1         
00132 /* Criterion for event selection */
00133 #define ET_STATION_SELECT_ALL      1     
00134 #define ET_STATION_SELECT_MATCH    2     
00135 #define ET_STATION_SELECT_USER     3     
00136 #define ET_STATION_SELECT_RROBIN   4     
00137 #define ET_STATION_SELECT_EQUALCUE 5     
00140 /* How to restore events in dead user process */
00141 #define ET_STATION_RESTORE_OUT 0        
00142 #define ET_STATION_RESTORE_IN  1        
00143 #define ET_STATION_RESTORE_GC  2        
00144 #define ET_STATION_RESTORE_REDIST 3     
00147 /* How events flow through a (group of) station(s) */
00148 #define ET_STATION_SERIAL        0      
00149 #define ET_STATION_PARALLEL      1      
00151 #define ET_STATION_PARALLEL_HEAD 2      
00163 #define ET_OK              0   
00164 #define ET_ERROR          -1   
00165 #define ET_ERROR_TOOMANY  -2   
00166 #define ET_ERROR_EXISTS   -3   
00167 #define ET_ERROR_WAKEUP   -4   
00168 #define ET_ERROR_TIMEOUT  -5   
00169 #define ET_ERROR_EMPTY    -6   
00170 #define ET_ERROR_BUSY     -7   
00171 #define ET_ERROR_DEAD     -8   
00172 #define ET_ERROR_READ     -9   
00173 #define ET_ERROR_WRITE    -10  
00174 #define ET_ERROR_REMOTE   -11  
00175 #define ET_ERROR_NOREMOTE -12  
00176 #define ET_ERROR_TOOBIG   -13  
00177 #define ET_ERROR_NOMEM    -14  
00178 #define ET_ERROR_BADARG   -15  
00179 #define ET_ERROR_SOCKET   -16  
00180 #define ET_ERROR_NETWORK  -17  
00181 #define ET_ERROR_CLOSED   -18  
00182 #define ET_ERROR_JAVASYS  -19  
00185 /* Debug levels */
00186 #define ET_DEBUG_NONE   0   
00187 #define ET_DEBUG_SEVERE 1   
00188 #define ET_DEBUG_ERROR  2   
00189 #define ET_DEBUG_WARN   3   
00190 #define ET_DEBUG_INFO   4   
00192 /* Event priority */
00193 #define ET_LOW  0           
00194 #define ET_HIGH 1           
00196 #define ET_PRIORITY_MASK 1  
00199 #define ET_SYS -1
00200 
00201 #define ET_END -1
00202 
00204 #define ET_NEWHEAD -2
00205 
00206 /* Event is temporary or not */
00207 #define ET_EVENT_TEMP   1    
00209 #define ET_EVENT_NORMAL 0    
00211 /* Event is new (obtained thru et_event(s)_new) or not */
00212 #define ET_EVENT_NEW  1      
00214 #define ET_EVENT_USED 0      
00216 /* Event get/new routines' wait mode flags */
00217 #define ET_SLEEP  0          
00218 #define ET_TIMED  1          
00220 #define ET_ASYNC  2          
00221 #define ET_WAIT_MASK  3      
00222 /* event get/new routines' event flow flags */
00223 #define ET_MODIFY 4          
00224 #define ET_MODIFY_HEADER 8   
00225 #define ET_DUMP          16  
00227 #define ET_NOALLOC       32  
00229 /* et_open waiting modes */
00230 #define ET_OPEN_NOWAIT 0    
00231 #define ET_OPEN_WAIT   1    
00233 /* Are we remote or local? */
00234 #define ET_REMOTE        0  
00235 #define ET_LOCAL         1  
00236 #define ET_LOCAL_NOSHARE 2  
00238 /* Use broadcast, multicast, both or direct connection to find server port */
00239 #define ET_MULTICAST 0          
00240 #define ET_BROADCAST 1          
00241 #define ET_DIRECT    2          
00242 #define ET_BROADANDMULTICAST 3  
00244 /* Options for et_open_config_add(remove)broadcast */
00245 #define ET_SUBNET_ALL  ".subnetsAll"     
00247 /* Status of data in an event */
00248 #define ET_DATA_OK               0  
00249 #define ET_DATA_CORRUPT          1  
00250 #define ET_DATA_POSSIBLY_CORRUPT 2  
00251 #define ET_DATA_MASK         0x30   
00252 #define ET_DATA_SHIFT        4      
00254 /* Endian values */
00255 #define ET_ENDIAN_BIG      0    
00256 #define ET_ENDIAN_LITTLE   1    
00257 #define ET_ENDIAN_LOCAL    2    
00258 #define ET_ENDIAN_NOTLOCAL 3    
00259 #define ET_ENDIAN_SWITCH   4    
00261 /* do we swap data or not? */
00262 #define ET_NOSWAP 0  
00263 #define ET_SWAP   1  
00265 /* Macros for swapping ints of various sizes */
00266 
00268 #define ET_SWAP64(x) ( (((x) >> 56) & 0x00000000000000FFL) | \
00269                        (((x) >> 40) & 0x000000000000FF00L) | \
00270                        (((x) >> 24) & 0x0000000000FF0000L) | \
00271                        (((x) >> 8)  & 0x00000000FF000000L) | \
00272                        (((x) << 8)  & 0x000000FF00000000L) | \
00273                        (((x) << 24) & 0x0000FF0000000000L) | \
00274                        (((x) << 40) & 0x00FF000000000000L) | \
00275                        (((x) << 56) & 0xFF00000000000000L) )
00276 
00278 #define ET_SWAP32(x) ( (((x) >> 24) & 0x000000FF) | \
00279                        (((x) >> 8)  & 0x0000FF00) | \
00280                        (((x) << 8)  & 0x00FF0000) | \
00281                        (((x) << 24) & 0xFF000000) )
00282 
00284 #define ET_SWAP16(x) ( (((x) >> 8) & 0x00FF) | \
00285                        (((x) << 8) & 0xFF00) )
00286 
00287 
00289 #define err_abort(code,text) do { \
00290     fprintf (stderr, "%s at \"%s\":%d: %s\n", \
00291         text, __FILE__, __LINE__, strerror (code)); \
00292     exit (-1); \
00293 } while (0)
00294 
00295 
00296 /* STRUCTURES */
00297 
00302 typedef struct et_event_t {
00303   struct et_event_t *next;  
00304   void    *tempdata;        
00310   void    *pdata;           
00312   char    *data;            
00313   uint64_t length;          
00314   uint64_t memsize;         
00316   /* for remote events */
00317   uint64_t pointer;        
00319   int      modify;         
00325   /* ----------------- */
00326 
00327   int     priority;        
00328   int     owner;           
00329   int     temp;            
00330   int     age;             
00332   int     datastatus;      
00334   int     byteorder;       
00335   int     group;           
00337   int     place;           
00339   int     control[ET_STATION_SELECT_INTS];  
00340   char    filename[ET_TEMPNAME_LENGTH];     
00341 } et_event;
00342 
00344 typedef int (*ET_SWAP_FUNCPTR) (et_event *, et_event*, int, int);
00345 
00346 /* TYPES */
00347 typedef void *et_sys_id;        
00348 typedef void *et_statconfig;    
00349 typedef void *et_sysconfig;     
00350 typedef void *et_openconfig;    
00351 typedef void *et_bridgeconfig;  
00352 typedef int   et_stat_id;       
00353 typedef int   et_proc_id;       
00354 typedef int   et_att_id;        
00356 /***********************/
00357 /* Extern declarations */
00358 /***********************/
00359 
00360 /* event functions */
00361 extern int  et_event_new(et_sys_id id, et_att_id att, et_event **pe,  
00362                          int mode, struct timespec *deltatime, size_t size);
00363 extern int  et_events_new(et_sys_id id, et_att_id att, et_event *pe[], 
00364                           int mode, struct timespec *deltatime, size_t size, 
00365                           int num, int *nread);
00366 extern int  et_event_new_group(et_sys_id id, et_att_id att, et_event **pe,
00367                                int mode, struct timespec *deltatime,
00368                                size_t size, int group);
00369 extern int  et_events_new_group(et_sys_id id, et_att_id att, et_event *pe[],
00370                                 int mode, struct timespec *deltatime,
00371                                 size_t size, int num, int group, int *nread);
00372 
00373 extern int  et_event_get(et_sys_id id, et_att_id att, et_event **pe,  
00374                          int mode, struct timespec *deltatime);
00375 extern int  et_events_get(et_sys_id id, et_att_id att, et_event *pe[], 
00376                           int mode, struct timespec *deltatime, 
00377                           int num, int *nread);
00378 
00379 extern int  et_event_put(et_sys_id id, et_att_id att, et_event *pe);
00380 extern int  et_events_put(et_sys_id id, et_att_id att, et_event *pe[], 
00381                           int num);
00382                
00383 extern int  et_event_dump(et_sys_id id, et_att_id att, et_event *pe);
00384 extern int  et_events_dump(et_sys_id id, et_att_id att, et_event *pe[],
00385                int num);
00386 
00387 extern int  et_event_getgroup(et_event *pe, int *grp);
00388 
00389 extern int  et_event_setpriority(et_event *pe, int pri);
00390 extern int  et_event_getpriority(et_event *pe, int *pri);
00391 
00392 extern int  et_event_setlength(et_event *pe, size_t len);
00393 extern int  et_event_getlength(et_event *pe, size_t *len);
00394 
00395 extern int  et_event_setcontrol(et_event *pe, int con[], int num);
00396 extern int  et_event_getcontrol(et_event *pe, int con[]);
00397 
00398 extern int  et_event_setdatastatus(et_event *pe, int datastatus);
00399 extern int  et_event_getdatastatus(et_event *pe, int *datastatus);
00400 
00401 extern int  et_event_setendian(et_event *pe, int endian);
00402 extern int  et_event_getendian(et_event *pe, int *endian);
00403 
00404 extern int  et_event_getdata(et_event *pe, void **data);
00405 extern int  et_event_setdatabuffer(et_sys_id id, et_event *pe, void *data);
00406 extern int  et_event_needtoswap(et_event *pe, int *swap);
00407 
00408 /* system functions */
00409 extern int  et_open(et_sys_id* id, const char *filename, et_openconfig openconfig);
00410 extern int  et_close(et_sys_id id);
00411 extern int  et_forcedclose(et_sys_id id);
00412 extern int  et_kill(et_sys_id id);
00413 extern int  et_system_start(et_sys_id* id, et_sysconfig sconfig);
00414 extern int  et_system_close(et_sys_id id);
00415 extern int  et_alive(et_sys_id id);
00416 extern int  et_wait_for_alive(et_sys_id id);
00417 extern char* et_perror(int err);
00418 
00419 /* attachment functions */
00420 extern int  et_wakeup_attachment(et_sys_id id, et_att_id att);
00421 extern int  et_wakeup_all(et_sys_id id, et_stat_id stat_id);
00422 extern int  et_attach_geteventsput(et_sys_id id, et_att_id att_id,
00423                                    uint64_t *events);
00424 extern int  et_attach_geteventsget(et_sys_id id, et_att_id att_id,
00425                                    uint64_t *events);
00426 extern int  et_attach_geteventsdump(et_sys_id id, et_att_id att_id,
00427                                     uint64_t *events);
00428 extern int  et_attach_geteventsmake(et_sys_id id, et_att_id att_id,
00429                                     uint64_t *events);
00430 
00431 /* station manipulation */
00432 extern int  et_station_create_at(et_sys_id id, et_stat_id *stat_id,
00433                   const char *stat_name, et_statconfig sconfig,
00434           int position, int parallelposition);
00435 extern int  et_station_create(et_sys_id id, et_stat_id *stat_id,
00436                   const char *stat_name, et_statconfig sconfig);
00437 extern int  et_station_remove(et_sys_id id, et_stat_id stat_id);
00438 extern int  et_station_attach(et_sys_id id, et_stat_id stat_id,
00439                               et_att_id *att);
00440 extern int  et_station_detach(et_sys_id id, et_att_id att);
00441 extern int  et_station_setposition(et_sys_id id, et_stat_id stat_id, int position,
00442                                    int parallelposition);
00443 extern int  et_station_getposition(et_sys_id id, et_stat_id stat_id, int *position,
00444                                    int *parallelposition);
00445 
00446 /***************************************************************/
00447 /* routines to store and read station config parameters used  */
00448 /* to define a station upon its creation.                     */
00449 /***************************************************************/
00450 extern int et_station_config_init(et_statconfig* sconfig);
00451 extern int et_station_config_destroy(et_statconfig sconfig);
00452 
00453 extern int et_station_config_setblock(et_statconfig sconfig, int val);
00454 extern int et_station_config_getblock(et_statconfig sconfig, int *val);
00455 
00456 extern int et_station_config_setflow(et_statconfig sconfig, int val);
00457 extern int et_station_config_getflow(et_statconfig sconfig, int *val);
00458 
00459 extern int et_station_config_setselect(et_statconfig sconfig, int val);
00460 extern int et_station_config_getselect(et_statconfig sconfig, int *val);
00461 
00462 extern int et_station_config_setuser(et_statconfig sconfig, int val);
00463 extern int et_station_config_getuser(et_statconfig sconfig, int *val);
00464 
00465 extern int et_station_config_setrestore(et_statconfig sconfig, int val);
00466 extern int et_station_config_getrestore(et_statconfig sconfig, int *val);
00467 
00468 extern int et_station_config_setcue(et_statconfig sconfig, int val);
00469 extern int et_station_config_getcue(et_statconfig sconfig, int *val);
00470 
00471 extern int et_station_config_setprescale(et_statconfig sconfig, int val);
00472 extern int et_station_config_getprescale(et_statconfig sconfig, int *val);
00473 
00474 extern int et_station_config_setselectwords(et_statconfig sconfig, int val[]);
00475 extern int et_station_config_getselectwords(et_statconfig sconfig, int val[]);
00476 
00477 extern int et_station_config_setfunction(et_statconfig sconfig, const char *val);
00478 extern int et_station_config_getfunction(et_statconfig sconfig, char *val);
00479 
00480 extern int et_station_config_setlib(et_statconfig sconfig, const char *val);
00481 extern int et_station_config_getlib(et_statconfig sconfig, char *val);
00482 
00483 extern int et_station_config_setclass(et_statconfig sconfig, const char *val);
00484 extern int et_station_config_getclass(et_statconfig sconfig, char *val);
00485 
00486 /**************************************************************/
00487 /*     routines to get & set existing station's parameters    */
00488 /**************************************************************/
00489 extern int et_station_isattached(et_sys_id id, et_stat_id stat_id, et_att_id att);
00490 extern int et_station_exists(et_sys_id id, et_stat_id *stat_id, const char *stat_name);
00491 extern int et_station_name_to_id(et_sys_id id, et_stat_id *stat_id, const char *stat_name);
00492 
00493 extern int et_station_getattachments(et_sys_id id, et_stat_id stat_id, int *numatts);
00494 extern int et_station_getstatus(et_sys_id id, et_stat_id stat_id, int *status);
00495 extern int et_station_getinputcount(et_sys_id id, et_stat_id stat_id, int *cnt);
00496 extern int et_station_getoutputcount(et_sys_id id, et_stat_id stat_id, int *cnt);
00497 extern int et_station_getselect(et_sys_id id, et_stat_id stat_id, int *select);
00498 extern int et_station_getlib(et_sys_id id, et_stat_id stat_id, char *lib);
00499 extern int et_station_getclass(et_sys_id id, et_stat_id stat_id, char *classs);
00500 extern int et_station_getfunction(et_sys_id id, et_stat_id stat_id, 
00501                                   char *function);
00502 
00503 extern int et_station_getblock(et_sys_id id, et_stat_id stat_id, int *block);
00504 extern int et_station_setblock(et_sys_id id, et_stat_id stat_id, int  block);
00505 
00506 extern int et_station_getrestore(et_sys_id id, et_stat_id stat_id, int *restore);
00507 extern int et_station_setrestore(et_sys_id id, et_stat_id stat_id, int  restore);
00508 
00509 extern int et_station_getuser(et_sys_id id, et_stat_id stat_id, int *user);
00510 extern int et_station_setuser(et_sys_id id, et_stat_id stat_id, int  user);
00511 
00512 extern int et_station_getprescale(et_sys_id id, et_stat_id stat_id,int *prescale);
00513 extern int et_station_setprescale(et_sys_id id, et_stat_id stat_id,int  prescale);
00514 
00515 extern int et_station_getcue(et_sys_id id, et_stat_id stat_id, int *cue);
00516 extern int et_station_setcue(et_sys_id id, et_stat_id stat_id, int  cue);
00517 
00518 extern int et_station_getselectwords(et_sys_id id, et_stat_id stat_id, int select[]);
00519 extern int et_station_setselectwords(et_sys_id id, et_stat_id stat_id, int select[]);
00520 
00521 
00522 /*************************************************************/
00523 /* routines to store and read system config parameters used  */
00524 /* to define a system upon its creation.                     */
00525 /*************************************************************/
00526 extern int et_system_config_init(et_sysconfig *sconfig);
00527 extern int et_system_config_destroy(et_sysconfig sconfig);
00528 
00529 extern int et_system_config_setevents(et_sysconfig sconfig, int val);
00530 extern int et_system_config_getevents(et_sysconfig sconfig, int *val);
00531 
00532 extern int et_system_config_setsize(et_sysconfig sconfig, size_t val);
00533 extern int et_system_config_getsize(et_sysconfig sconfig, size_t *val);
00534 
00535 extern int et_system_config_settemps(et_sysconfig sconfig, int val);
00536 extern int et_system_config_gettemps(et_sysconfig sconfig, int *val);
00537 
00538 extern int et_system_config_setstations(et_sysconfig sconfig, int val);
00539 extern int et_system_config_getstations(et_sysconfig sconfig, int *val);
00540 
00541 extern int et_system_config_setprocs(et_sysconfig sconfig, int val);
00542 extern int et_system_config_getprocs(et_sysconfig sconfig, int *val);
00543 
00544 extern int et_system_config_setattachments(et_sysconfig sconfig, int val);
00545 extern int et_system_config_getattachments(et_sysconfig sconfig, int *val);
00546 
00547 extern int et_system_config_setgroups(et_sysconfig sconfig, int groups[], int size);
00548 
00549 extern int et_system_config_setfile(et_sysconfig sconfig, const char *val);
00550 extern int et_system_config_getfile(et_sysconfig sconfig, char *val);
00551 
00552 /* does nothing, only here for backwards compatibility
00553 extern int et_system_config_setcast(et_sysconfig sconfig, int val);
00554 extern int et_system_config_getcast(et_sysconfig sconfig, int *val);
00555 */
00556 
00557 extern int et_system_config_setport(et_sysconfig sconfig, int val);
00558 extern int et_system_config_getport(et_sysconfig sconfig, int *val);
00559 
00560 extern int et_system_config_setserverport(et_sysconfig sconfig, int val);
00561 extern int et_system_config_getserverport(et_sysconfig sconfig, int *val);
00562 
00563 /* deprecated, use ...addmulticast and ...removemulticast instead
00564 extern int et_system_config_setaddress(et_sysconfig sconfig, const char *val);
00565 extern int et_system_config_getaddress(et_sysconfig sconfig, char *val);
00566 */
00567 
00568 extern int et_system_config_addmulticast(et_sysconfig sconfig, const char *val);
00569 extern int et_system_config_removemulticast(et_sysconfig sconfig, const char *val);
00570 
00571 extern int et_system_config_settcp(et_sysconfig sconfig, int rBufSize, int sBufSize, int noDelay);
00572 extern int et_system_config_gettcp(et_sysconfig sconfig, int *rBufSize, int *sBufSize, int *noDelay);
00573 
00574 /*************************************************************/
00575 /*      routines to store & read system information          */
00576 /*************************************************************/
00577 extern int et_system_setgroup(et_sys_id id, int  group);
00578 extern int et_system_getgroup(et_sys_id id, int *group);
00579 extern int et_system_setdebug(et_sys_id id, int  debug);
00580 extern int et_system_getdebug(et_sys_id id, int *debug);
00581 extern int et_system_getlocality(et_sys_id id, int *locality);
00582 extern int et_system_getnumevents(et_sys_id id, int *numevents);
00583 extern int et_system_geteventsize(et_sys_id id, size_t *eventsize);
00584 extern int et_system_gettempsmax(et_sys_id id, int *tempsmax);
00585 extern int et_system_getstationsmax(et_sys_id id, int *stationsmax);
00586 extern int et_system_getprocsmax(et_sys_id id, int *procsmax);
00587 extern int et_system_getattsmax(et_sys_id id, int *attsmax);
00588 extern int et_system_getheartbeat(et_sys_id id, int *heartbeat);
00589 extern int et_system_getpid(et_sys_id id, pid_t *pid);
00590 extern int et_system_getprocs(et_sys_id id, int *procs);
00591 extern int et_system_getattachments(et_sys_id id, int *atts);
00592 extern int et_system_getstations(et_sys_id id, int *stations);
00593 extern int et_system_gettemps(et_sys_id id, int *temps);
00594 extern int et_system_getserverport(et_sys_id id, int *port);
00595 extern int et_system_gethost(et_sys_id id, char *host);
00596 
00597 /*************************************************************/
00598 /* routines to store and read system config parameters used  */
00599 /* to open an ET system                                      */
00600 /*************************************************************/
00601 extern int et_open_config_init(et_openconfig *sconfig);
00602 extern int et_open_config_destroy(et_openconfig sconfig);
00603 
00604 extern int et_open_config_setwait(et_openconfig sconfig, int val);
00605 extern int et_open_config_getwait(et_openconfig sconfig, int *val);
00606 
00607 extern int et_open_config_setcast(et_openconfig sconfig, int val);
00608 extern int et_open_config_getcast(et_openconfig sconfig, int *val);
00609 
00610 extern int et_open_config_setTTL(et_openconfig sconfig, int val);
00611 extern int et_open_config_getTTL(et_openconfig sconfig, int *val);
00612 
00613 extern int et_open_config_setmode(et_openconfig sconfig, int val);
00614 extern int et_open_config_getmode(et_openconfig sconfig, int *val);
00615 
00616 extern int et_open_config_setdebugdefault(et_openconfig sconfig, int val);
00617 extern int et_open_config_getdebugdefault(et_openconfig sconfig, int *val);
00618 
00619 extern int et_open_config_setport(et_openconfig sconfig, int val);
00620 extern int et_open_config_getport(et_openconfig sconfig, int *val);
00621 
00622 extern int et_open_config_setmultiport(et_openconfig sconfig, int val);
00623 extern int et_open_config_getmultiport(et_openconfig sconfig, int *val);
00624 
00625 extern int et_open_config_setserverport(et_openconfig sconfig, int val);
00626 extern int et_open_config_getserverport(et_openconfig sconfig, int *val);
00627 
00628 extern int et_open_config_settimeout(et_openconfig sconfig, struct timespec val);
00629 extern int et_open_config_gettimeout(et_openconfig sconfig, struct timespec *val);
00630 
00631 /* deprecated, use ...addbroadcast, ...addmulticast, etc. instead */
00632 extern int et_open_config_setaddress(et_openconfig sconfig, const char *val);
00633 extern int et_open_config_getaddress(et_openconfig sconfig, char *val);
00634 
00635 extern int et_open_config_sethost(et_openconfig sconfig, const char *val);
00636 extern int et_open_config_gethost(et_openconfig sconfig, char *val);
00637 
00638 extern int et_open_config_addbroadcast(et_openconfig sconfig, const char *val);
00639 extern int et_open_config_removebroadcast(et_openconfig sconfig, const char *val);
00640 
00641 extern int et_open_config_addmulticast(et_openconfig sconfig, const char *val);
00642 extern int et_open_config_removemulticast(et_openconfig sconfig, const char *val);
00643 
00644 extern int et_open_config_setpolicy(et_openconfig sconfig, int val);
00645 extern int et_open_config_getpolicy(et_openconfig sconfig, int *val);
00646 
00647 extern int et_open_config_setinterface(et_openconfig sconfig, const char *val);
00648 extern int et_open_config_getinterface(et_openconfig sconfig, char *val);
00649 
00650 extern int et_open_config_settcp(et_openconfig sconfig, int rBufSize, int sBufSize, int noDelay);
00651 extern int et_open_config_gettcp(et_openconfig sconfig, int *rBufSize, int *sBufSize, int *noDelay);
00652 
00653 
00654 /*************************************************************
00655  * routines to store and read system bridge parameters used  *
00656  * to bridge (transfer events between) 2 ET systems          *
00657  *************************************************************/
00658 extern int et_bridge_config_init(et_bridgeconfig *config);
00659 extern int et_bridge_config_destroy(et_bridgeconfig sconfig);
00660 
00661 extern int et_bridge_config_setmodefrom(et_bridgeconfig config, int val);
00662 extern int et_bridge_config_getmodefrom(et_bridgeconfig config, int *val);
00663 
00664 extern int et_bridge_config_setmodeto(et_bridgeconfig config, int val);
00665 extern int et_bridge_config_getmodeto(et_bridgeconfig config, int *val);
00666 
00667 extern int et_bridge_config_setchunkfrom(et_bridgeconfig config, int val);
00668 extern int et_bridge_config_getchunkfrom(et_bridgeconfig config, int *val);
00669 
00670 extern int et_bridge_config_setchunkto(et_bridgeconfig config, int val);
00671 extern int et_bridge_config_getchunkto(et_bridgeconfig config, int *val);
00672 
00673 extern int et_bridge_config_settimeoutfrom(et_bridgeconfig config, struct timespec val);
00674 extern int et_bridge_config_gettimeoutfrom(et_bridgeconfig config, struct timespec *val);
00675 
00676 extern int et_bridge_config_settimeoutto(et_bridgeconfig config, struct timespec val);
00677 extern int et_bridge_config_gettimeoutto(et_bridgeconfig config, struct timespec *val);
00678 
00679 extern int et_bridge_config_setfunc(et_bridgeconfig config, ET_SWAP_FUNCPTR func);
00680 
00681 extern int et_events_bridge(et_sys_id id_from, et_sys_id id_to,
00682              et_att_id att_from, et_att_id att_to,
00683              et_bridgeconfig bconfig,
00684              int num, int *ntransferred);
00685 
00686 #ifdef  __cplusplus
00687 }
00688 #endif
00689 
00690 #endif

Generated on 30 Jul 2015 for ET System by  doxygen 1.6.1