mrpc.c

Go to the documentation of this file.
00001 /********************************************************************\
00002 
00003   Name:         MRPC.C
00004   Created by:   Stefan Ritt
00005 
00006   Contents:     List of MIDAS RPC functions with parameters
00007 
00008   $Log: mrpc.c,v $
00009   Revision 1.35  2004/10/06 22:51:17  midas
00010   Restrict destination string length of db_sprintf to MAX_STRING_LENGTH
00011 
00012   Revision 1.34  2004/01/13 00:51:57  pierre
00013   fix dox comment for vxworks
00014 
00015   Revision 1.33  2004/01/08 08:40:10  midas
00016   Implemented standard indentation
00017 
00018   Revision 1.32  2004/01/08 06:36:40  pierre
00019   Doxygen the file
00020 
00021   Revision 1.30  2003/11/24 08:22:46  midas
00022   Changed timeouts from INT to DWORD, added ignore_timeout to cm_cleanup, adde '-f' flag to ODBEdit 'cleanup'
00023 
00024   Revision 1.29  2003/11/20 11:29:44  midas
00025   Implemented db_check_record and use it in most places instead of db_create_record
00026 
00027   Revision 1.28  2002/09/13 07:32:48  midas
00028   Added client name to cm_cleanup()
00029 
00030   Revision 1.27  2002/05/22 05:43:32  midas
00031   Added extra variables to hs_enum_vars for mhist to display array size
00032 
00033   Revision 1.26  2002/05/10 01:41:19  midas
00034   Added optional debug output to cm_transition
00035 
00036   Revision 1.25  2002/05/08 19:54:41  midas
00037   Added extra parameter to function db_get_value()
00038 
00039   Revision 1.24  2000/11/14 08:17:05  midas
00040   Added number of messages for cm_msg_retrieve and in odbedit "old" command
00041 
00042   Revision 1.23  2000/09/29 13:31:14  midas
00043   ODBEdit cleanup now deletes open record with no client attached to
00044 
00045   Revision 1.22  2000/09/28 13:02:06  midas
00046   Added manual triggered events
00047 
00048   Revision 1.21  2000/08/21 07:05:48  midas
00049   Added cm_msg_log1(...,facility) to be compatible with older programs
00050 
00051   Revision 1.20  2000/08/11 11:43:51  midas
00052   Added cm_msg1 to produce messages which go to a differnt logging file
00053 
00054   Revision 1.19  1999/11/19 09:49:58  midas
00055   Fixed bug with wrong default watchdog timeout in cm_connect_experiment1
00056 
00057   Revision 1.18  1999/11/10 10:38:52  midas
00058   Changed parameters for al_trigger_alarm
00059 
00060   Revision 1.17  1999/10/08 22:15:04  midas
00061   Added ftruncate for LINUX
00062 
00063   Revision 1.16  1999/10/08 22:00:30  midas
00064   Finished editing of elog messages
00065 
00066   Revision 1.15  1999/09/27 13:02:32  midas
00067   Added new el_submit in mserver
00068 
00069   Revision 1.14  1999/09/17 11:48:07  midas
00070   Alarm system half finished
00071 
00072   Revision 1.13  1999/09/15 13:33:36  midas
00073   Added remote el_submit functionality
00074 
00075   Revision 1.12  1999/08/03 11:15:07  midas
00076   Added bm_skip_event
00077 
00078   Revision 1.11  1999/05/05 12:02:34  midas
00079   Added and modified history functions, added db_set_num_values
00080 
00081   Revision 1.10  1999/04/19 07:47:54  midas
00082   Added cm_msg_retrieve
00083 
00084   Revision 1.9  1999/04/15 09:57:27  midas
00085   Added cm_exist
00086 
00087   Revision 1.8  1999/04/13 12:20:44  midas
00088   Added db_get_data1 (for Java)
00089 
00090   Revision 1.7  1999/04/08 15:26:33  midas
00091   Added cm_transition and db_get_key_info
00092 
00093   Revision 1.6  1999/02/11 13:16:15  midas
00094   Added cm_msg for remote Java
00095 
00096   Revision 1.5  1999/02/09 14:38:35  midas
00097   Added debug logging facility
00098 
00099   Revision 1.4  1999/01/13 09:40:48  midas
00100   Added db_set_data_index2 function
00101 
00102   Revision 1.3  1998/10/12 12:19:02  midas
00103   Added Log tag in header
00104 
00105   Revision 1.2  1998/10/12 11:59:11  midas
00106   Added Log tag in header
00107 
00108 \********************************************************************/
00109 
00110 /**dox***************************************************************/
00111 /** @file mrpc.c
00112 The Midas RPC file
00113 */
00114 
00115 /** @defgroup mrpcstructc Midas RPC_LIST 
00116  */
00117 
00118 /**dox***************************************************************/
00119 /** @addtogroup mrpcincludecode
00120  *  
00121  *  @{  */
00122 
00123 /**dox***************************************************************/
00124 /** @addtogroup mrpcstructc
00125  *  
00126  *  @{  */
00127 
00128 /**dox***************************************************************/
00129 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00130 
00131 #include "midas.h"
00132 #include "msystem.h"
00133 
00134 /**dox***************************************************************/
00135 #endif                          /* DOXYGEN_SHOULD_SKIP_THIS */
00136 
00137 /**dox***************************************************************/
00138 /**
00139 rpc_list_library contains all MIDAS library functions and gets
00140 registerd whenever a connection to the MIDAS server is established 
00141 */
00142 static RPC_LIST rpc_list_library[] = {
00143 
00144    /* common functions */
00145    {RPC_CM_SET_CLIENT_INFO, "cm_set_client_info",
00146     {{TID_INT, RPC_IN},
00147      {TID_INT, RPC_OUT},
00148      {TID_STRING, RPC_IN},
00149      {TID_STRING, RPC_IN},
00150      {TID_INT, RPC_IN},
00151      {TID_STRING, RPC_IN},
00152      {TID_INT, RPC_IN},
00153      {0}}},
00154 
00155    {RPC_CM_SET_WATCHDOG_PARAMS, "cm_set_watchdog_params",
00156     {{TID_BOOL, RPC_IN},
00157      {TID_INT, RPC_IN},
00158      {0}}},
00159 
00160    {RPC_CM_CLEANUP, "cm_cleanup",
00161     {{TID_STRING, RPC_IN},
00162      {TID_BOOL, RPC_IN},
00163      {0}}},
00164 
00165    {RPC_CM_GET_WATCHDOG_INFO, "cm_get_watchdog_info",
00166     {{TID_INT, RPC_IN},
00167      {TID_STRING, RPC_IN},
00168      {TID_DWORD, RPC_OUT},
00169      {TID_DWORD, RPC_OUT},
00170      {0}}},
00171 
00172    {RPC_CM_MSG, "cm_msg",
00173     {{TID_INT, RPC_IN},
00174      {TID_STRING, RPC_IN},
00175      {TID_INT, RPC_IN},
00176      {TID_STRING, RPC_IN},
00177      {TID_STRING, RPC_IN},
00178      {0}}},
00179 
00180    {RPC_CM_MSG_LOG, "cm_msg_log",
00181     {{TID_INT, RPC_IN},
00182      {TID_STRING, RPC_IN},
00183      {0}}},
00184 
00185    {RPC_CM_MSG_LOG1, "cm_msg_log1",
00186     {{TID_INT, RPC_IN},
00187      {TID_STRING, RPC_IN},
00188      {TID_STRING, RPC_IN},
00189      {0}}},
00190 
00191    {RPC_CM_EXECUTE, "cm_execute",
00192     {{TID_STRING, RPC_IN},
00193      {TID_STRING, RPC_OUT},
00194      {TID_INT, RPC_IN},
00195      {0}}},
00196 
00197    {RPC_CM_EXIST, "cm_exist",
00198     {{TID_STRING, RPC_IN},
00199      {TID_BOOL, RPC_IN},
00200      {0}}},
00201 
00202    {RPC_CM_SYNCHRONIZE, "cm_synchronize",
00203     {{TID_DWORD, RPC_OUT},
00204      {0}}},
00205 
00206    {RPC_CM_ASCTIME, "cm_asctime",
00207     {{TID_STRING, RPC_OUT},
00208      {TID_INT, RPC_IN},
00209      {0}}},
00210 
00211    {RPC_CM_TIME, "cm_time",
00212     {{TID_DWORD, RPC_OUT},
00213      {0}}},
00214 
00215    {RPC_CM_MSG_RETRIEVE, "cm_msg_retrieve",
00216     {{TID_INT, RPC_IN},
00217      {TID_STRING, RPC_OUT},
00218      {TID_INT, RPC_IN | RPC_OUT},
00219      {0}}},
00220 
00221    /* buffer manager functions */
00222 
00223    {RPC_BM_OPEN_BUFFER, "bm_open_buffer",
00224     {{TID_STRING, RPC_IN},
00225      {TID_INT, RPC_IN},
00226      {TID_INT, RPC_OUT},
00227      {0}}},
00228 
00229    {RPC_BM_CLOSE_BUFFER, "bm_close_buffer",
00230     {{TID_INT, RPC_IN},
00231      {0}}},
00232 
00233    {RPC_BM_CLOSE_ALL_BUFFERS, "bm_close_all_buffers",
00234     {{0}}},
00235 
00236    {RPC_BM_GET_BUFFER_INFO, "bm_get_buffer_info",
00237     {{TID_INT, RPC_IN},
00238      {TID_STRUCT, RPC_OUT, sizeof(BUFFER_HEADER)}
00239      ,
00240      {0}
00241      }
00242     }
00243    ,
00244 
00245    {RPC_BM_GET_BUFFER_LEVEL, "bm_get_buffer_level",
00246     {{TID_INT, RPC_IN}
00247      ,
00248      {TID_INT, RPC_OUT}
00249      ,
00250      {0}
00251      }
00252     }
00253    ,
00254 
00255    {RPC_BM_INIT_BUFFER_COUNTERS, "bm_init_buffer_counters",
00256     {{TID_INT, RPC_IN}
00257      ,
00258      {0}
00259      }
00260     }
00261    ,
00262 
00263    {RPC_BM_SET_CACHE_SIZE, "bm_set_cache_size",
00264     {{TID_INT, RPC_IN}
00265      ,
00266      {TID_INT, RPC_IN}
00267      ,
00268      {TID_INT, RPC_IN}
00269      ,
00270      {0}
00271      }
00272     }
00273    ,
00274 
00275    {RPC_BM_ADD_EVENT_REQUEST, "bm_add_event_request",
00276     {{TID_INT, RPC_IN}
00277      ,
00278      {TID_SHORT, RPC_IN}
00279      ,
00280      {TID_SHORT, RPC_IN}
00281      ,
00282      {TID_INT, RPC_IN}
00283      ,
00284      {TID_INT, RPC_IN}
00285      ,
00286      {TID_INT, RPC_IN}
00287      ,
00288      {0}
00289      }
00290     }
00291    ,
00292 
00293    {RPC_BM_REMOVE_EVENT_REQUEST, "bm_remove_event_request",
00294     {{TID_INT, RPC_IN}
00295      ,
00296      {TID_INT, RPC_IN}
00297      ,
00298      {0}
00299      }
00300     }
00301    ,
00302 
00303    {RPC_BM_SEND_EVENT, "bm_send_event",
00304     {{TID_INT, RPC_IN}
00305      ,
00306      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00307      ,
00308      {TID_INT, RPC_IN}
00309      ,
00310      {TID_INT, RPC_IN}
00311      ,
00312      {0}
00313      }
00314     }
00315    ,
00316 
00317    {RPC_BM_FLUSH_CACHE, "bm_flush_cache",
00318     {{TID_INT, RPC_IN}
00319      ,
00320      {TID_INT, RPC_IN}
00321      ,
00322      {0}
00323      }
00324     }
00325    ,
00326 
00327    {RPC_BM_RECEIVE_EVENT, "bm_receive_event",
00328     {{TID_INT, RPC_IN}
00329      ,
00330      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
00331      ,
00332      {TID_INT, RPC_IN | RPC_OUT}
00333      ,
00334      {TID_INT, RPC_IN}
00335      ,
00336      {0}
00337      }
00338     }
00339    ,
00340 
00341    {RPC_BM_SKIP_EVENT, "bm_skip_event",
00342     {{TID_INT, RPC_IN}
00343      ,
00344      {0}
00345      }
00346     }
00347    ,
00348 
00349    {RPC_BM_MARK_READ_WAITING, "bm_mark_read_waiting",
00350     {{TID_BOOL, RPC_IN}
00351      ,
00352      {0}
00353      }
00354     }
00355    ,
00356 
00357    {RPC_BM_EMPTY_BUFFERS, "bm_empty_buffers",
00358     {{0}
00359      }
00360     }
00361    ,
00362 
00363    /* online database functions */
00364 
00365    {RPC_DB_OPEN_DATABASE, "db_open_database",
00366     {{TID_STRING, RPC_IN}
00367      ,
00368      {TID_INT, RPC_IN}
00369      ,
00370      {TID_INT, RPC_OUT}
00371      ,
00372      {TID_STRING, RPC_IN}
00373      ,
00374      {0}
00375      }
00376     }
00377    ,
00378 
00379    {RPC_DB_CLOSE_DATABASE, "db_close_database",
00380     {{TID_INT, RPC_IN}
00381      ,
00382      {0}
00383      }
00384     }
00385    ,
00386 
00387    {RPC_DB_FLUSH_DATABASE, "db_flush_database",
00388     {{TID_INT, RPC_IN}
00389      ,
00390      {0}
00391      }
00392     }
00393    ,
00394 
00395    {RPC_DB_CLOSE_ALL_DATABASES, "db_close_all_databases",
00396     {{0}
00397      }
00398     }
00399    ,
00400 
00401    {RPC_DB_CREATE_KEY, "db_create_key",
00402     {{TID_INT, RPC_IN}
00403      ,
00404      {TID_INT, RPC_IN}
00405      ,
00406      {TID_STRING, RPC_IN}
00407      ,
00408      {TID_DWORD, RPC_IN}
00409      ,
00410      {0}
00411      }
00412     }
00413    ,
00414 
00415    {RPC_DB_CREATE_LINK, "db_create_link",
00416     {{TID_INT, RPC_IN}
00417      ,
00418      {TID_INT, RPC_IN}
00419      ,
00420      {TID_STRING, RPC_IN}
00421      ,
00422      {TID_STRING, RPC_IN}
00423      ,
00424      {0}
00425      }
00426     }
00427    ,
00428 
00429    {RPC_DB_SET_VALUE, "db_set_value",
00430     {{TID_INT, RPC_IN}
00431      ,
00432      {TID_INT, RPC_IN}
00433      ,
00434      {TID_STRING, RPC_IN}
00435      ,
00436      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00437      ,
00438      {TID_INT, RPC_IN}
00439      ,
00440      {TID_INT, RPC_IN}
00441      ,
00442      {TID_DWORD, RPC_IN}
00443      ,
00444      {0}
00445      }
00446     }
00447    ,
00448 
00449    {RPC_DB_GET_VALUE, "db_get_value",
00450     {{TID_INT, RPC_IN}
00451      ,
00452      {TID_INT, RPC_IN}
00453      ,
00454      {TID_STRING, RPC_IN}
00455      ,
00456      {TID_ARRAY, RPC_IN | RPC_OUT | RPC_VARARRAY}
00457      ,
00458      {TID_INT, RPC_IN | RPC_OUT}
00459      ,
00460      {TID_DWORD, RPC_IN}
00461      ,
00462      {TID_BOOL, RPC_IN}
00463      ,
00464      {0}
00465      }
00466     }
00467    ,
00468 
00469    {RPC_DB_FIND_KEY, "db_find_key",
00470     {{TID_INT, RPC_IN}
00471      ,
00472      {TID_INT, RPC_IN}
00473      ,
00474      {TID_STRING, RPC_IN}
00475      ,
00476      {TID_INT, RPC_OUT}
00477      ,
00478      {0}
00479      }
00480     }
00481    ,
00482 
00483    {RPC_DB_FIND_LINK, "db_fink_link",
00484     {{TID_INT, RPC_IN}
00485      ,
00486      {TID_INT, RPC_IN}
00487      ,
00488      {TID_STRING, RPC_IN}
00489      ,
00490      {TID_INT, RPC_OUT}
00491      ,
00492      {0}
00493      }
00494     }
00495    ,
00496 
00497    {RPC_DB_GET_PATH, "db_get_path",
00498     {{TID_INT, RPC_IN}
00499      ,
00500      {TID_INT, RPC_IN}
00501      ,
00502      {TID_STRING, RPC_OUT}
00503      ,
00504      {TID_INT, RPC_IN}
00505      ,
00506      {0}
00507      }
00508     }
00509    ,
00510 
00511    {RPC_DB_DELETE_KEY, "db_delete_key",
00512     {{TID_INT, RPC_IN}
00513      ,
00514      {TID_INT, RPC_IN}
00515      ,
00516      {TID_BOOL, RPC_IN}
00517      ,
00518      {0}
00519      }
00520     }
00521    ,
00522 
00523    {RPC_DB_ENUM_KEY, "db_enum_key",
00524     {{TID_INT, RPC_IN}
00525      ,
00526      {TID_INT, RPC_IN}
00527      ,
00528      {TID_INT, RPC_IN}
00529      ,
00530      {TID_INT, RPC_OUT}
00531      ,
00532      {0}
00533      }
00534     }
00535    ,
00536 
00537    {RPC_DB_ENUM_LINK, "db_enum_link",
00538     {{TID_INT, RPC_IN}
00539      ,
00540      {TID_INT, RPC_IN}
00541      ,
00542      {TID_INT, RPC_IN}
00543      ,
00544      {TID_INT, RPC_OUT}
00545      ,
00546      {0}
00547      }
00548     }
00549    ,
00550 
00551    {RPC_DB_GET_KEY, "db_get_key",
00552     {{TID_INT, RPC_IN}
00553      ,
00554      {TID_INT, RPC_IN}
00555      ,
00556      {TID_STRUCT, RPC_OUT, sizeof(KEY)}
00557      ,
00558      {0}
00559      }
00560     }
00561    ,
00562 
00563    {RPC_DB_GET_KEY_INFO, "db_get_key_info",
00564     {{TID_INT, RPC_IN}
00565      ,
00566      {TID_INT, RPC_IN}
00567      ,
00568      {TID_STRING, RPC_OUT}
00569      ,
00570      {TID_INT, RPC_IN}
00571      ,
00572      {TID_INT, RPC_OUT}
00573      ,
00574      {TID_INT, RPC_OUT}
00575      ,
00576      {TID_INT, RPC_OUT}
00577      ,
00578      {0}
00579      }
00580     }
00581    ,
00582 
00583    {RPC_DB_GET_KEY_TIME, "db_get_key_time",
00584     {{TID_INT, RPC_IN}
00585      ,
00586      {TID_INT, RPC_IN}
00587      ,
00588      {TID_DWORD, RPC_OUT}
00589      ,
00590      {0}
00591      }
00592     }
00593    ,
00594 
00595    {RPC_DB_RENAME_KEY, "db_rename_key",
00596     {{TID_INT, RPC_IN}
00597      ,
00598      {TID_INT, RPC_IN}
00599      ,
00600      {TID_STRING, RPC_IN}
00601      ,
00602      {0}
00603      }
00604     }
00605    ,
00606 
00607    {RPC_DB_REORDER_KEY, "db_reorder_key",
00608     {{TID_INT, RPC_IN}
00609      ,
00610      {TID_INT, RPC_IN}
00611      ,
00612      {TID_INT, RPC_IN}
00613      ,
00614      {0}
00615      }
00616     }
00617    ,
00618 
00619    {RPC_DB_GET_DATA, "db_get_data",
00620     {{TID_INT, RPC_IN}
00621      ,
00622      {TID_INT, RPC_IN}
00623      ,
00624      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
00625      ,
00626      {TID_INT, RPC_IN | RPC_OUT}
00627      ,
00628      {TID_DWORD, RPC_IN}
00629      ,
00630      {0}
00631      }
00632     }
00633    ,
00634 
00635    {RPC_DB_GET_DATA1, "db_get_data1",
00636     {{TID_INT, RPC_IN}
00637      ,
00638      {TID_INT, RPC_IN}
00639      ,
00640      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
00641      ,
00642      {TID_INT, RPC_IN | RPC_OUT}
00643      ,
00644      {TID_DWORD, RPC_IN}
00645      ,
00646      {TID_INT, RPC_OUT}
00647      ,
00648      {0}
00649      }
00650     }
00651    ,
00652 
00653    {RPC_DB_GET_DATA_INDEX, "db_get_data_index",
00654     {{TID_INT, RPC_IN}
00655      ,
00656      {TID_INT, RPC_IN}
00657      ,
00658      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
00659      ,
00660      {TID_INT, RPC_IN | RPC_OUT}
00661      ,
00662      {TID_INT, RPC_IN}
00663      ,
00664      {TID_DWORD, RPC_IN}
00665      ,
00666      {0}
00667      }
00668     }
00669    ,
00670 
00671    {RPC_DB_SET_DATA, "db_set_data",
00672     {{TID_INT, RPC_IN}
00673      ,
00674      {TID_INT, RPC_IN}
00675      ,
00676      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00677      ,
00678      {TID_INT, RPC_IN}
00679      ,
00680      {TID_INT, RPC_IN}
00681      ,
00682      {TID_DWORD, RPC_IN}
00683      ,
00684      {0}
00685      }
00686     }
00687    ,
00688 
00689    {RPC_DB_SET_DATA_INDEX, "db_set_data_index",
00690     {{TID_INT, RPC_IN}
00691      ,
00692      {TID_INT, RPC_IN}
00693      ,
00694      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00695      ,
00696      {TID_INT, RPC_IN}
00697      ,
00698      {TID_INT, RPC_IN}
00699      ,
00700      {TID_DWORD, RPC_IN}
00701      ,
00702      {0}
00703      }
00704     }
00705    ,
00706 
00707    {RPC_DB_SET_DATA_INDEX2, "db_set_data_index2",
00708     {{TID_INT, RPC_IN}
00709      ,
00710      {TID_INT, RPC_IN}
00711      ,
00712      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00713      ,
00714      {TID_INT, RPC_IN}
00715      ,
00716      {TID_INT, RPC_IN}
00717      ,
00718      {TID_DWORD, RPC_IN}
00719      ,
00720      {TID_BOOL, RPC_IN}
00721      ,
00722      {0}
00723      }
00724     }
00725    ,
00726 
00727    {RPC_DB_SET_NUM_VALUES, "db_set_num_values",
00728     {{TID_INT, RPC_IN}
00729      ,
00730      {TID_INT, RPC_IN}
00731      ,
00732      {TID_INT, RPC_IN}
00733      ,
00734      {0}
00735      }
00736     }
00737    ,
00738 
00739    {RPC_DB_SET_MODE, "db_set_mode",
00740     {{TID_INT, RPC_IN}
00741      ,
00742      {TID_INT, RPC_IN}
00743      ,
00744      {TID_WORD, RPC_IN}
00745      ,
00746      {TID_BOOL, RPC_IN}
00747      ,
00748      {0}
00749      }
00750     }
00751    ,
00752 
00753    {RPC_DB_CREATE_RECORD, "db_create_record",
00754     {{TID_INT, RPC_IN}
00755      ,
00756      {TID_INT, RPC_IN}
00757      ,
00758      {TID_STRING, RPC_IN}
00759      ,
00760      {TID_STRING, RPC_IN}
00761      ,
00762      {0}
00763      }
00764     }
00765    ,
00766 
00767    {RPC_DB_CHECK_RECORD, "db_check_record",
00768     {{TID_INT, RPC_IN}
00769      ,
00770      {TID_INT, RPC_IN}
00771      ,
00772      {TID_STRING, RPC_IN}
00773      ,
00774      {TID_STRING, RPC_IN}
00775      ,
00776      {TID_BOOL, RPC_IN}
00777      ,
00778      {0}
00779      }
00780     }
00781    ,
00782 
00783    {RPC_DB_GET_RECORD, "db_get_record",
00784     {{TID_INT, RPC_IN}
00785      ,
00786      {TID_INT, RPC_IN}
00787      ,
00788      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
00789      ,
00790      {TID_INT, RPC_IN | RPC_OUT}
00791      ,
00792      {TID_INT, RPC_IN}
00793      ,
00794      {0}
00795      }
00796     }
00797    ,
00798 
00799    {RPC_DB_GET_RECORD_SIZE, "db_get_record_size",
00800     {{TID_INT, RPC_IN}
00801      ,
00802      {TID_INT, RPC_IN}
00803      ,
00804      {TID_INT, RPC_IN}
00805      ,
00806      {TID_INT, RPC_OUT}
00807      ,
00808      {0}
00809      }
00810     }
00811    ,
00812 
00813    {RPC_DB_SET_RECORD, "db_set_record",
00814     {{TID_INT, RPC_IN}
00815      ,
00816      {TID_INT, RPC_IN}
00817      ,
00818      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00819      ,
00820      {TID_INT, RPC_IN}
00821      ,
00822      {TID_INT, RPC_IN}
00823      ,
00824      {0}
00825      }
00826     }
00827    ,
00828 
00829    {RPC_DB_ADD_OPEN_RECORD, "db_add_open_record",
00830     {{TID_INT, RPC_IN}
00831      ,
00832      {TID_INT, RPC_IN}
00833      ,
00834      {TID_WORD, RPC_IN}
00835      ,
00836      {0}
00837      }
00838     }
00839    ,
00840 
00841    {RPC_DB_REMOVE_OPEN_RECORD, "db_remove_open_record",
00842     {{TID_INT, RPC_IN}
00843      ,
00844      {TID_INT, RPC_IN}
00845      ,
00846      {0}
00847      }
00848     }
00849    ,
00850 
00851    {RPC_DB_LOAD, "db_load",
00852     {{TID_INT, RPC_IN}
00853      ,
00854      {TID_INT, RPC_IN}
00855      ,
00856      {TID_STRING, RPC_IN}
00857      ,
00858      {TID_BOOL, RPC_IN}
00859      ,
00860      {0}
00861      }
00862     }
00863    ,
00864 
00865    {RPC_DB_SAVE, "db_save",
00866     {{TID_INT, RPC_IN}
00867      ,
00868      {TID_INT, RPC_IN}
00869      ,
00870      {TID_STRING, RPC_IN}
00871      ,
00872      {TID_BOOL, RPC_IN}
00873      ,
00874      {0}
00875      }
00876     }
00877    ,
00878 
00879    {RPC_DB_SET_CLIENT_NAME, "db_set_client_name",
00880     {{TID_INT, RPC_IN}
00881      ,
00882      {TID_STRING, RPC_IN}
00883      ,
00884      {0}
00885      }
00886     }
00887    ,
00888 
00889    {RPC_DB_GET_OPEN_RECORDS, "db_get_open_records",
00890     {{TID_INT, RPC_IN}
00891      ,
00892      {TID_INT, RPC_IN}
00893      ,
00894      {TID_STRING, RPC_OUT}
00895      ,
00896      {TID_INT, RPC_IN}
00897      ,
00898      {TID_BOOL, RPC_IN}
00899      ,
00900      {0}
00901      }
00902     }
00903    ,
00904 
00905    /* history functions */
00906 
00907    {RPC_HS_SET_PATH, "hs_set_path",
00908     {{TID_STRING, RPC_IN}
00909      ,
00910      {0}
00911      }
00912     }
00913    ,
00914 
00915    {RPC_HS_DEFINE_EVENT, "hs_define_event",
00916     {{TID_DWORD, RPC_IN}
00917      ,
00918      {TID_STRING, RPC_IN}
00919      ,
00920      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00921      ,
00922      {TID_INT, RPC_IN}
00923      ,
00924      {0}
00925      }
00926     }
00927    ,
00928 
00929    {RPC_HS_WRITE_EVENT, "hs_write_event",
00930     {{TID_DWORD, RPC_IN}
00931      ,
00932      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
00933      ,
00934      {TID_INT, RPC_IN}
00935      ,
00936      {0}
00937      }
00938     }
00939    ,
00940 
00941    {RPC_HS_COUNT_EVENTS, "hs_count_events",
00942     {{TID_DWORD, RPC_IN}
00943      ,
00944      {TID_DWORD, RPC_OUT}
00945      ,
00946      {0}
00947      }
00948     }
00949    ,
00950 
00951    {RPC_HS_ENUM_EVENTS, "hs_enum_events",
00952     {{TID_DWORD, RPC_IN}
00953      ,
00954      {TID_STRING, RPC_OUT | RPC_VARARRAY}
00955      ,
00956      {TID_INT, RPC_IN | RPC_OUT}
00957      ,
00958      {TID_INT, RPC_OUT | RPC_VARARRAY}
00959      ,
00960      {TID_INT, RPC_IN | RPC_OUT}
00961      ,
00962      {0}
00963      }
00964     }
00965    ,
00966 
00967    {RPC_HS_COUNT_VARS, "hs_count_vars",
00968     {{TID_DWORD, RPC_IN}
00969      ,
00970      {TID_DWORD, RPC_IN}
00971      ,
00972      {TID_DWORD, RPC_OUT}
00973      ,
00974      {0}
00975      }
00976     }
00977    ,
00978 
00979    {RPC_HS_ENUM_VARS, "hs_enum_vars",
00980     {{TID_DWORD, RPC_IN}
00981      ,
00982      {TID_DWORD, RPC_IN}
00983      ,
00984      {TID_STRING, RPC_OUT | RPC_VARARRAY}
00985      ,
00986      {TID_INT, RPC_IN | RPC_OUT}
00987      ,
00988      {TID_DWORD, RPC_OUT | RPC_VARARRAY}
00989      ,
00990      {TID_DWORD, RPC_IN | RPC_OUT}
00991      ,
00992      {0}
00993      }
00994     }
00995    ,
00996 
00997    {RPC_HS_GET_VAR, "hs_get_var",
00998     {{TID_DWORD, RPC_IN}
00999      ,
01000      {TID_DWORD, RPC_IN}
01001      ,
01002      {TID_STRING, RPC_IN}
01003      ,
01004      {TID_DWORD, RPC_OUT}
01005      ,
01006      {TID_INT, RPC_OUT}
01007      ,
01008      {0}
01009      }
01010     }
01011    ,
01012 
01013    {RPC_HS_GET_EVENT_ID, "hs_get_event_id",
01014     {{TID_DWORD, RPC_IN}
01015      ,
01016      {TID_STRING, RPC_IN}
01017      ,
01018      {TID_DWORD, RPC_OUT}
01019      ,
01020      {0}
01021      }
01022     }
01023    ,
01024 
01025    {RPC_HS_READ, "hs_read",
01026     {{TID_DWORD, RPC_IN}
01027      ,
01028      {TID_DWORD, RPC_IN}
01029      ,
01030      {TID_DWORD, RPC_IN}
01031      ,
01032      {TID_DWORD, RPC_IN}
01033      ,
01034      {TID_STRING, RPC_IN}
01035      ,
01036      {TID_DWORD, RPC_IN}
01037      ,
01038      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
01039      ,
01040      {TID_INT, RPC_IN | RPC_OUT}
01041      ,
01042      {TID_ARRAY, RPC_OUT | RPC_VARARRAY}
01043      ,
01044      {TID_INT, RPC_IN | RPC_OUT}
01045      ,
01046      {TID_DWORD, RPC_OUT}
01047      ,
01048      {TID_DWORD, RPC_OUT}
01049      ,
01050      {0}
01051      }
01052     }
01053    ,
01054 
01055    /* elog funcions */
01056 
01057    {RPC_EL_SUBMIT, "el_submit",
01058     {{TID_INT, RPC_IN}
01059      ,
01060      {TID_STRING, RPC_IN}
01061      ,
01062      {TID_STRING, RPC_IN}
01063      ,
01064      {TID_STRING, RPC_IN}
01065      ,
01066      {TID_STRING, RPC_IN}
01067      ,
01068      {TID_STRING, RPC_IN}
01069      ,
01070      {TID_STRING, RPC_IN}
01071      ,
01072      {TID_STRING, RPC_IN}
01073      ,
01074      {TID_STRING, RPC_IN}
01075      ,
01076      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
01077      ,
01078      {TID_INT, RPC_IN}
01079      ,
01080      {TID_STRING, RPC_IN}
01081      ,
01082      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
01083      ,
01084      {TID_INT, RPC_IN}
01085      ,
01086      {TID_STRING, RPC_IN}
01087      ,
01088      {TID_ARRAY, RPC_IN | RPC_VARARRAY}
01089      ,
01090      {TID_INT, RPC_IN}
01091      ,
01092      {TID_STRING, RPC_IN, RPC_OUT}
01093      ,
01094      {TID_INT, RPC_IN}
01095      ,
01096      {0}
01097      }
01098     }
01099    ,
01100 
01101    /* alarm  funcions */
01102 
01103    {RPC_AL_CHECK, "al_check",
01104     {{0}
01105      }
01106     }
01107    ,
01108 
01109    {RPC_AL_TRIGGER_ALARM, "al_trigger_alarm",
01110     {{TID_STRING, RPC_IN}
01111      ,
01112      {TID_STRING, RPC_IN}
01113      ,
01114      {TID_STRING, RPC_IN}
01115      ,
01116      {TID_STRING, RPC_IN}
01117      ,
01118      {TID_INT, RPC_IN}
01119      ,
01120      {0}
01121      }
01122     }
01123    ,
01124 
01125    /* run control */
01126 
01127    {RPC_RC_TRANSITION, "rc_transition",
01128     {{TID_INT, RPC_IN}
01129      ,
01130      {TID_INT, RPC_IN}
01131      ,
01132      {TID_STRING, RPC_OUT}
01133      ,
01134      {TID_INT, RPC_IN}
01135      ,
01136      {TID_INT, RPC_IN}
01137      ,
01138      {0}
01139      }
01140     }
01141    ,
01142 
01143 
01144    /* analyzer control */
01145 
01146    {RPC_ANA_CLEAR_HISTOS, "ana_clear_histos",
01147     {{TID_INT, RPC_IN}
01148      ,
01149      {TID_INT, RPC_IN}
01150      ,
01151      {0}
01152      }
01153     }
01154    ,
01155 
01156 
01157    /* logger control */
01158 
01159    {RPC_LOG_REWIND, "log_rewind",
01160     {{TID_INT, RPC_IN}
01161      ,
01162      {0}
01163      }
01164     }
01165    ,
01166 
01167 
01168    /* test functions */
01169 
01170    {RPC_TEST, "test",
01171     {{TID_BYTE, RPC_IN}
01172      ,
01173      {TID_WORD, RPC_IN}
01174      ,
01175      {TID_INT, RPC_IN}
01176      ,
01177      {TID_FLOAT, RPC_IN}
01178      ,
01179      {TID_DOUBLE, RPC_IN}
01180      ,
01181      {TID_BYTE, RPC_OUT}
01182      ,
01183      {TID_WORD, RPC_OUT}
01184      ,
01185      {TID_INT, RPC_OUT}
01186      ,
01187      {TID_FLOAT, RPC_OUT}
01188      ,
01189      {TID_DOUBLE, RPC_OUT}
01190      ,
01191      {0}
01192      }
01193     }
01194    ,
01195 
01196    /* CAMAC server */
01197 
01198    {RPC_CNAF16, "cnaf16",
01199     {{TID_DWORD, RPC_IN}
01200      ,                          /* command */
01201      {TID_DWORD, RPC_IN}
01202      ,                          /* branch */
01203      {TID_DWORD, RPC_IN}
01204      ,                          /* crate */
01205      {TID_DWORD, RPC_IN}
01206      ,                          /* station */
01207      {TID_DWORD, RPC_IN}
01208      ,                          /* subaddress */
01209      {TID_DWORD, RPC_IN}
01210      ,                          /* function */
01211      {TID_WORD, RPC_IN | RPC_OUT | RPC_VARARRAY}
01212      ,                          /* data */
01213      {TID_DWORD, RPC_IN | RPC_OUT}
01214      ,                          /* array size */
01215      {TID_DWORD, RPC_OUT}
01216      ,                          /* x */
01217      {TID_DWORD, RPC_OUT}
01218      ,                          /* q */
01219      {0}
01220      }
01221     }
01222    ,
01223 
01224    {RPC_CNAF24, "cnaf24",
01225     {{TID_DWORD, RPC_IN}
01226      ,                                    /**< command */
01227      {TID_DWORD, RPC_IN}
01228      ,                                    /**< branch */
01229      {TID_DWORD, RPC_IN}
01230      ,                                    /**< crate */
01231      {TID_DWORD, RPC_IN}
01232      ,                                    /**< station */
01233      {TID_DWORD, RPC_IN}
01234      ,                                    /**< subaddress */
01235      {TID_DWORD, RPC_IN}
01236      ,                                    /**< function */
01237      {TID_DWORD, RPC_IN | RPC_OUT | RPC_VARARRAY}
01238      ,                                                  /**< data */
01239      {TID_DWORD, RPC_IN | RPC_OUT}
01240      ,                                    /**< array size */
01241      {TID_DWORD, RPC_OUT}
01242      ,                                    /**< x */
01243      {TID_DWORD, RPC_OUT}
01244      ,                                    /**< q */
01245      {0}
01246      }
01247     }
01248    ,
01249 
01250    /* manual triggered equipment */
01251 
01252    {RPC_MANUAL_TRIG, "manual_trig",
01253     {{TID_WORD, RPC_IN}
01254      ,                          /* event id */
01255      {0}
01256      }
01257     }
01258    ,
01259 
01260    {0}
01261 
01262 };
01263 
01264 /**dox***************************************************************/
01265 /** 
01266 rpc_list_system contains MIDAS system functions and gets
01267 registerd whenever a RPC server is registered
01268 */
01269 static RPC_LIST rpc_list_system[] = {
01270 
01271    /* system  functions */
01272    {RPC_ID_WATCHDOG, "id_watchdog",
01273     {{0}}},
01274 
01275    {RPC_ID_SHUTDOWN, "id_shutdown",
01276     {{0}}},
01277 
01278    {RPC_ID_EXIT, "id_exit",
01279     {{0}}},
01280 
01281    {0}
01282 
01283 };
01284 
01285 RPC_LIST *rpc_get_internal_list(INT flag)
01286 {
01287    if (flag)
01288       return rpc_list_library;
01289    else
01290       return rpc_list_system;
01291 }
01292 
01293 /*------------------------------------------------------------------*/
01294 
01295 /**dox***************************************************************/
01296 /** @} */ /* end of mrpcstructc */
01297 
01298 /**dox***************************************************************/
01299 /** @} */ /* end of mrpcincludecode */

Midas DOC Version 1.9.3 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Suzannah Daviel - Doxygen - Peter Green - Greg Hackman - Gertjan Hofman - Paul Knowles - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk