//
// aegis - project change supervisor
// Copyright (C) 2001, 2002, 2004-2006, 2008, 2012, 2014 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or (at
// your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
#include
#include
#include
change_set_file_list::change_set_file_list()
{
}
change_set_file_list::~change_set_file_list()
{
}
void
change_set_file_list::validate(void)
const
{
assert(valid());
}
bool
change_set_file_list::valid(void)
const
{
if (!this)
return false;
for
(
content_t::const_iterator it = content.begin();
it != content.end();
++it
)
{
if (!it->valid())
return false;
}
return true;
}
void
change_set_file_list::push_back(const change_set_file &csf)
{
//
// If we already have the file, just update the edit number.
//
// FIXME: would a std::map be faster?
// or a symtab<> ?
//
for (content_t::iterator it = content.begin(); it != content.end(); ++it)
{
if (it->filename == csf.filename)
{
it->merge(csf);
return;
}
}
content.push_back(csf);
}
void
change_set_file_list::clear(void)
{
content.clear();
}
// vim: set ts=8 sw=4 et :