Changeset 531 for trunk/lib/Stats.cc


Ignore:
Timestamp:
Dec 25, 2007, 7:51:07 PM (14 years ago)
Author:
Peter Johansson
Message:

moving more stuff to base class and add class for Blame Statistics

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Stats.cc

    r530 r531  
    101101    total_["all"] = vp(vp(code_["all"], comments_["all"]), other_["all"]);
    102102  }
     103
     104
     105  void Stats::add(const std::string& user, const u_int& rev,
     106                  const Parser::line_type& lt, u_int n)
     107  {
     108    assert(user.size());
     109    add_author(user);
     110
     111    std::vector<u_int>& total = total_[user];
     112    if (total.size() < rev+1){
     113      total.reserve(revision() + 1);
     114      total.insert(total.end(), rev - total.size(), 0);
     115      total.push_back(n);
     116    }
     117    else
     118      total[rev]+=n;
     119
     120    std::vector<u_int>& code = code_[user];
     121    if (code.size() < rev+1){
     122      code.reserve(revision() + 1);
     123      code.insert(code.end(), rev - code.size(), 0);
     124      if (lt == Parser::code)
     125        code.push_back(n);
     126      else
     127        code.push_back(0);
     128    }
     129    else if (lt == Parser::code)
     130      code[rev]+=n;
     131
     132    std::vector<u_int>& comments = comments_[user];
     133    if (comments.size() < rev+1){
     134      comments.reserve(revision() + 1);
     135      comments.insert(comments.end(), rev - comments.size(), 0);
     136      if (lt == Parser::comment)
     137        code.push_back(n);
     138      else
     139        comments.push_back(0);
     140    }
     141    else if (lt == Parser::comment)
     142      comments[rev]+=n;
     143
     144    std::vector<u_int>& other = other_[user];
     145    if (other.size() < rev+1){
     146      other.reserve(revision() + 1);
     147      other.insert(other.end(), rev - other.size(), 0);
     148      if (lt == Parser::other)
     149        other.push_back(n);
     150      else
     151        other.push_back(0);
     152    }
     153    else if (lt == Parser::other)
     154      other[rev]+=n;
     155  }
    103156
    104157
Note: See TracChangeset for help on using the changeset viewer.