Changeset 1258 in Sophya for trunk/SophyaLib/SUtils/datacards.cc


Ignore:
Timestamp:
Oct 24, 2000, 7:35:04 PM (25 years ago)
Author:
ansari
Message:

Nouvelles methodes ds datacard.cc et pb commentaires ds gnumd5.c , Reza 24/10/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SUtils/datacards.cc

    r1197 r1258  
    1 /// $Id: datacards.cc,v 1.4 2000-09-22 10:37:44 ansari Exp $
     1/// $Id: datacards.cc,v 1.5 2000-10-24 17:35:03 ansari Exp $
    22//
    33// Datacards, acquisition EROS II
     
    191191/*! Returns true if \b key is present in the list */
    192192bool
    193 DataCards::HasKey(string const& key)
    194 {
    195   return FindKey(key) != NULL;
     193DataCards::HasKey(string const& key) const
     194{
     195  return (FindKeyC(key) != cards.end());
    196196}
    197197
    198198//! Returns the total number of cards
    199199int
    200 DataCards::NbCards()
     200DataCards::NbCards() const
    201201{
    202202return(cards.size());
     
    205205/*! Returns the number of parameters for card \b key. (-1) if \b key not present  */
    206206int
    207 DataCards::NbParam(string const& key)
    208 {
    209   DataCards::Card * p = FindKey(key);
    210   if (!p) return(-1);
    211   else return(p->tokens.size());
     207DataCards::NbParam(string const& key) const
     208{
     209  DataCards::CardList::const_iterator it = FindKeyC(key);
     210  if (it == cards.end()) return(-1);
     211  else return((*it).tokens.size());
     212}
     213
     214/*! Returns the key for card number \b num. */
     215string
     216DataCards::GetKey(int num) const
     217{
     218  if ((num < 0) || (num >= cards.size()) )  return("");
     219  int k = 0;
     220  CardList::const_iterator i;
     221  for(i=cards.begin(); i != cards.end(); i++) {
     222    if (k == num)  return((*i).kw);
     223    else k++;
     224  }
     225  return("");
     226}
     227
     228/*! Returns the list of parameters for card \b key. */
     229string
     230DataCards::GetParams(string const& key) const
     231{
     232  string rs;
     233  DataCards::CardList::const_iterator it = FindKeyC(key);
     234  if (it == cards.end()) return(rs);
     235  for (int k=0; k<(*it).tokens.size(); k++) {
     236    rs += ' ';  rs += (*it).tokens[k];
     237  }
     238  return(rs);
    212239}
    213240
    214241/*! Returns the parameter number \b numero for card \b key */
    215242string
    216 DataCards::SParam(string const& key, int numero, string def)
    217 {
    218   DataCards::Card * p = FindKey(key);
    219   if (!p) return def;
    220   if ( (numero < 0) || (numero >= p->tokens.size()) )  return def;
    221   return p->tokens[numero];
     243DataCards::SParam(string const& key, int numero, string def) const
     244{
     245  DataCards::CardList::const_iterator it = FindKeyC(key);
     246  if (it == cards.end()) return(def);
     247  if ( (numero < 0) || (numero >= (*it).tokens.size()) )  return def;
     248  return (*it).tokens[numero];
    222249}
    223250
    224251/*! Returns the parameter number \b numero for card \b key, converted to type long */
    225252long
    226 DataCards::IParam(string const& key, int numero, long def)
     253DataCards::IParam(string const& key, int numero, long def) const
    227254{
    228255  string p = SParam(key, numero, "");
     
    236263/*! Returns the parameter number \b numero for card \b key, converted to type double */
    237264double
    238 DataCards::DParam(string const& key, int numero, double def)
     265DataCards::DParam(string const& key, int numero, double def) const
    239266{
    240267  string p = SParam(key, numero, "");
     
    327354
    328355DataCards::Card *
    329 DataCards::FindKey(string const& key)
     356DataCards::FindKey(string const& key) 
    330357{
    331358/*
     
    335362  CardList::iterator i;
    336363  for(i=cards.begin(); i != cards.end(); i++)
    337     if ((*i).kw == key) return &*i;
     364    if ((*i).kw == key) return &(*i);
    338365
    339366  return NULL;
     
    341368
    342369
    343 
     370DataCards::CardList::const_iterator
     371DataCards::FindKeyC(string const& key) const
     372{
     373  CardList::const_iterator i;
     374  for(i=cards.begin(); i != cards.end(); i++)
     375    if ((*i).kw == key) return i;
     376  return cards.end();
     377}
Note: See TracChangeset for help on using the changeset viewer.