// // aegis - project change supervisor // Copyright (C) 2007 Walter Franzini // Copyright (C) 2008, 2011, 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 . // #ifndef AEDIST_CHANGE_FUNCTOR_ARCHIVE_H #define AEDIST_CHANGE_FUNCTOR_ARCHIVE_H #include /** * The change_functor_archive class is used to populate the current * directory with files generated with aedist(1) -send. * For each completed change with an UUID in the project a file is * generated. The file is the output of the 'aedist -send' command * and is named after the UUID of the change. * To detect corruptions, for each file the fingerprint is calculated * and stored in another file. */ class change_functor_archive: public change_functor { public: /** * The destructor. */ virtual ~change_functor_archive(); /** * The constructor. * * @param incbr * whether or not to recurse down brabches * @param pp * The project in question. * @param suffix * The suffix to append to aedist(1) generated files. * @param fingerprint_suffix * The suffix to append to files containing the fingerprint * of aedist(1) generated archives. * @param include_change * The list of version patterns used to filter changes from * the inventory. * @param exclude_change * The list of version patterns used to filter out changes * from the inventory. */ change_functor_archive(bool incbr, project *pp, const char *suffix, const char *fingerprint_suffix, const nstring_list &include_change, const nstring_list &exclude_change); // See base class for docvumentation. void operator()(const change::pointer &cp); private: /** * The exclude_change instance variable is used to remember the * list of patterns used to filter out changes. The patterns * match against the change's version. */ nstring_list exclude_change; /** * The fingerprint_suffix instance variable is used to remember * the extension to be appended to the fingerprin file. */ nstring fingerprint_suffix; /** * The include_change instance variable is used to remember the * list of patterns used to filter changes. The patterns * match against the change's version. */ nstring_list include_change; /** * The pp instance variable is used to remember the project being listed. */ project *pp; /** * The suffix instance variable is used to remember the extension * to be appendedn to the aedist(1) generated archive file. */ nstring suffix; /** * The default constructor. Do not use. */ change_functor_archive(); /** * The copy constructor. Do not use. */ change_functor_archive(const change_functor_archive &); /** * The assignment operator. Do not use. */ change_functor_archive &operator=(const change_functor_archive &); }; #endif // AEDIST_CHANGE_FUNCTOR_ARCHIVE_H // vim: set ts=8 sw=4 et :