Changeset 2895 in Sophya for trunk/SophyaExt


Ignore:
Timestamp:
Jan 12, 2006, 8:46:40 AM (20 years ago)
Author:
ansari
Message:

Ajout priorite a l'enregistrement pour Fitshandlers - Reza 12/01/2006

Location:
trunk/SophyaExt/FitsIOServer
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/FitsIOServer/fiosinit.cc

    r2864 r2895  
    2727//  FitsManager::RegisterHandler(new FitsArrayHandler<int_2> , "TArray<int_2>");
    2828  cout << " ---- FitsIOServerInitiator / DEBUG ---- debut RegisterHandler " << endl;
    29   FitsManager::RegisterHandler(new FitsArrayHandler<int_4> , "TArray<int_4>");
    30   FitsManager::RegisterHandler(new FitsArrayHandler<r_4> , "TArray<r_4>");
    31   FitsManager::RegisterHandler(new FitsArrayHandler< r_8 > , "TArray<r_8>");
     29  FitsManager::RegisterHandler(new FitsArrayHandler<int_4> , 1, "TArray<int_4> ");
     30  FitsManager::RegisterHandler(new FitsArrayHandler<r_4> , 1, "TArray<r_4>");
     31  FitsManager::RegisterHandler(new FitsArrayHandler< r_8 > , 1, "TArray<r_8>");
    3232
    33   FitsManager::RegisterHandler(new FitsHandler<BaseDataTable>, "DataTable");
     33  FitsManager::RegisterHandler(new FitsHandler<BaseDataTable>, 1, "DataTable");
    3434
    3535  cout << " ---- FitsIOServerInitiator / DEBUG ---- ListHandlers() : " << endl;
  • trunk/SophyaExt/FitsIOServer/fitsmanager.cc

    r2864 r2895  
    1212struct hand_list_el {
    1313  FitsHandlerInterface * fhi;
    14   string clname;
     14  int glev;
     15  string desc;
    1516};
    1617
     
    2324  if (hlistp == NULL) hlistp = new HandlerList;
    2425}
    25 
    26 int FitsManager::RegisterHandler(FitsHandlerInterface * fhi, string  clname)
     26/*!
     27  \param fhi : handler object pointer (created by new) which will be kept in the
     28  handler list
     29  \param glev : global priority level associated with the handler. Used when different
     30  handlers return the same value for CheckHandling() or CheckReadability().
     31  \param desc : classe name description associated with the handler
     32*/
     33int FitsManager::RegisterHandler(FitsHandlerInterface * fhi, int glev, string desc)
    2734{
    2835  ChkHLP();
     
    3643  hand_list_el hle;
    3744  hle.fhi = fhi;
    38   hle.clname = clname;
     45  hle.glev = glev;
     46  hle.desc = desc;
    3947  hlistp->push_back(hle);
    4048  return hlistp->size();
     
    5058  for(it = hlistp->begin(); it != hlistp->end(); it++) {
    5159    kk++;
    52     cout << kk << "- " << (*it).clname << " : "
    53          << typeid(*((*it).fhi)).name() << endl;
     60    cout << kk << "- " << (*it).desc << " : "
     61         << typeid(*((*it).fhi)).name() << " glev= " <<(*it).glev << endl;
    5462  }
    5563  return hlistp->size();
     
    6371  int hfg = 0;
    6472  int bhfg = 0;
     73  int clev = 0;
     74  int blev = 0;
    6575  for(it = hlistp->begin(); it != hlistp->end(); it++) {
    6676    hfg = (*it).fhi->CheckHandling(o);
    67     if ( hfg > bhfg ) {
    68       fhi = (*it).fhi;  bhfg = hfg;
     77    if ( ( hfg > bhfg ) || ( (hfg == bhfg) && ((*it).glev > blev) ) ) {
     78      fhi = (*it).fhi;  bhfg = hfg;  blev = (*it).glev;
    6979    }
    7080  }
     
    101111  int hfg = 0;
    102112  int bhfg = 0;
     113  int blev = 0;
    103114  for(it = hlistp->begin(); it != hlistp->end(); it++) {
    104115    hfg = (*it).fhi->CheckReadability(is);
    105     if ( hfg > bhfg ) {
    106       fhi = (*it).fhi;  bhfg = hfg;
     116    if ( ( hfg > bhfg ) || ( (hfg == bhfg) && ((*it).glev > blev) ) ) {
     117      fhi = (*it).fhi;  bhfg = hfg;  blev = (*it).glev;
    107118    }
    108119  }
  • trunk/SophyaExt/FitsIOServer/fitsmanager.h

    r2864 r2895  
    1717 public:
    1818  //! Called once for each handler during init phase.
    19   static int  RegisterHandler(FitsHandlerInterface * fhi, string clname="");
     19  static int  RegisterHandler(FitsHandlerInterface * fhi, int glev=0, string desc="");
    2020  //! Print list of handlers on cout
    2121  static int  ListHandlers();
Note: See TracChangeset for help on using the changeset viewer.