Changeset 1258 in Sophya for trunk/SophyaLib/SUtils


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

Location:
trunk/SophyaLib/SUtils
Files:
2 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}
  • trunk/SophyaLib/SUtils/datacards.h

    r1197 r1258  
    11// This may look like C code, but it is really -*- C++ -*-
    22//
    3 // $Id: datacards.h,v 1.3 2000-09-22 10:37:44 ansari Exp $
     3// $Id: datacards.h,v 1.4 2000-10-24 17:35:04 ansari Exp $
    44//
    55// Datacards, acquisition EROS II
     
    4747   void    AppendCard(string const& line);
    4848
    49    int     NbCards();
    50    bool    HasKey(string const& key);
    51    int     NbParam(string const& key);
    52    string  SParam(string const& key, int numero = 0, string def="");
    53    long    IParam(string const& key, int numero = 0, long def = 0);
    54    double  DParam(string const& key, int numero = 0, double def = 0);
     49   int     NbCards() const;
     50   bool    HasKey(string const& key) const;
     51   int     NbParam(string const& key) const;
     52   string  GetKey(int num) const;
     53   string  GetParams(string const& key) const;
     54   string  SParam(string const& key, int numero = 0, string def="") const;
     55   long    IParam(string const& key, int numero = 0, long def = 0) const;
     56   double  DParam(string const& key, int numero = 0, double def = 0) const;
    5557   
    5658   void    Print(ostream& s) const;
     
    7779   void  RemoveCard(string const& key);
    7880   
    79    Card* FindKey(string const& key);
     81   Card* FindKey(string const& key) ;
    8082
    8183   typedef list<Card> CardList;
    8284   typedef list<CrdPF> CrdPFList;
     85
     86   CardList::const_iterator FindKeyC(string const& key) const;
     87
    8388   CardList cards;
    8489   CrdPFList cpfs;
Note: See TracChangeset for help on using the changeset viewer.