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