//
// aegis - project change supervisor
// Copyright (C) 2001, 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 AEIMPORT_CHANGE_SET_FILE_H
#define AEIMPORT_CHANGE_SET_FILE_H
#include
enum change_set_file_action_ty
{
change_set_file_action_create,
change_set_file_action_modify,
change_set_file_action_remove
};
/**
* The change_set_file_ty class is used to represent a single operation
* on a single file in a single change set.
*/
struct change_set_file_ty
{
public:
/**
* The destructpr.
* DO NOT subclass me, I'm not virtual.
*/
~change_set_file_ty();
/**
* The constructor.
*/
change_set_file_ty(string_ty *filename, string_ty *edit,
change_set_file_action_ty action, string_list_ty *tag);
void validate() const;
void merge(const change_set_file_ty &);
// private:
/**
* The filename instance variable is used to remember the name of
* the file in a change set.
*/
string_ty *filename;
/**
* The edit instance variable is used to remember the edit number
* of the file in a change set.
*/
string_ty *edit;
/**
* The filename instance variable is used to remember what is being
* done to the file in a change set.
*/
change_set_file_action_ty action;
/**
* The filename instance variable is used to remember the tag names
* attached to a file in a change set.
*/
string_list_ty tag;
private:
/**
* The default constructor. Do not use.
*/
change_set_file_ty();
/**
* The copy constructor. Do not use.
*/
change_set_file_ty(const change_set_file_ty &);
/**
* The assignment operator. Do not use.
*/
change_set_file_ty &operator=(const change_set_file_ty &);
};
const char *change_set_file_action_name(change_set_file_action_ty);
inline void
change_set_file_validate(change_set_file_ty *csfp)
{
csfp->validate();
}
#endif // AEIMPORT_CHANGE_SET_FILE_H