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