//
// aegis - project change supervisor
// Copyright (C) 1999, 2002-2004, 2006-2008 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
// .
//
#ifndef LIBAEGIS_AEL_CHANGE_DETAILS_H
#define LIBAEGIS_AEL_CHANGE_DETAILS_H
#include
#include
struct output_ty; // forward
struct string_ty; // forward
struct string_list_ty; // forward
class change_identifier; // forward
/**
* The list_change_details_columns class is sued to represent the
* output shape for a Change Details listing, and for actually listing
* change details.
*/
class list_change_details_columns
{
public:
/**
* Destructor.
*/
~list_change_details_columns();
/**
* Default constructor.
*/
list_change_details_columns();
/**
* The list method is used to output the details of the given change.
*
* @param cp
* The change to be listed.
* @param recurse
* If the change is actually a branch, recusively print the
* details of each of the changes on the branch.
*/
void list(change::pointer cp, bool recurse);
private:
col::pointer colp;
// general columns
output::pointer head_col;
output::pointer body_col;
/**
* Copy constructor. Do not use.
*/
list_change_details_columns(const list_change_details_columns &);
/**
* Assignment operator. Do not use.
*/
list_change_details_columns &operator=(const list_change_details_columns &);
};
/**
* The list_change_details function is used to list the deatils of a change.
*
* @param cid
* The change to be listed.
* @param arguments
* Additional listing arguments.
*/
void list_change_details(change_identifier &cid, string_list_ty *arguments);
#endif // LIBAEGIS_AEL_CHANGE_DETAILS_H