| 
 | Pintaudi Giorgio wrote: |  | Hello! Just a little question about the ODB hotlinks. Is it possible to open a hotlink
 to a single element in and ODB array?
 | 
 
 Yes it is with the now preferred function db_watch(). Following program will open a hot link to the /Experiment/Run number:
 
 
 
 #include <stdio.h>
 #include "midas.h"
 
 int run_number;
 
 void run_number_changed(HNDLE hDB, HNDLE hKey, int i, void *info)
 {
 int run_number, size;
 
 /* get run number */
 size = sizeof(run_number);
 db_get_data(hDB, hKey, &run_number, &size, TID_INT);
 printf("Run number is %d\n", run_number);
 }
 
 main()
 {
 HNDLE hKey;
 
 /* connect to experiment */
 cm_connect_experiment("", "", "ODB Test", NULL);
 
 /* open hot link to run number */
 db_find_key(1, 0, "/runinfo/run number", &hKey);
 db_watch(1, hKey, run_number_changed, NULL);
 
 /* enter idle loop */
 while (cm_yield(1000); != RPC_SHUTDOWN);
 
 cm_disconnect_experiment();
 return 1;
 }
 |