//
// aegis - project change supervisor
// Copyright (C) 2004-2006, 2008, 2012 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
#include
module_ty::~module_ty()
{
assert(reference_count == 1);
reference_count = -666;
if (canonical_name)
{
str_free(canonical_name);
canonical_name = 0;
}
}
module_ty::module_ty() :
reference_count(1),
canonical_name(0)
{
}
void
module_ty::reference_count_down()
{
assert(reference_count >= 1);
if (reference_count <= 1)
delete this;
reference_count--;
}
void
module_ty::reference_count_up()
{
assert(reference_count >= 1);
reference_count++;
}
string_ty *
module_ty::name()
{
if (!canonical_name)
{
canonical_name = calculate_canonical_name();
}
return canonical_name;
}
void
module_ty::checkout(server_ty *sp)
{
options opt;
opt.d = 1;
opt.C = 1;
if (update(sp, name(), name(), opt))
server_ok(sp);
}
bool
module_ty::is_bogus()
const
{
return false;
}
// vim: set ts=8 sw=4 et :