1 //
2 // aegis - project change supervisor
3 // Copyright (C) 2012 Peter Miller
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or (at
8 // your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License along
16 // with this program. If not, see <http://www.gnu.org/licenses/>.
17 //
18 
19 #ifndef AEMAKEGEN_PROCESS_ITEM_LIBDIR_H
20 #define AEMAKEGEN_PROCESS_ITEM_LIBDIR_H
21 
22 #include <aemakegen/process_item.h>
23 
24 /**
25   * The process_item_libdir class is used to represent
26   * the processing required for "libdir/" files.
27   */
28 class process_item_libdir:
29     public process_item
30 {
31 public:
32     typedef aegis_shared_ptr<process_item_libdir> pointer;
33 
34     /**
35       * The destructor.
36       */
37     virtual ~process_item_libdir();
38 
39     /**
40       * The create class method is used to create new dynamically
41       * allocated instances of this class.
42       *
43       * @param filename
44       *     The name of the file of interest.
45       */
46     static pointer create(target &tgt);
47 
48 protected:
49     // See base class for documentation.
50     bool condition(const nstring &filename);
51 
52     // See base class for documentation.
53     void preprocess(const nstring &filename);
54 
55 private:
56     /**
57       * The constructor.
58       * It is private on purpose, use the #create class method instead.
59       *
60       * @param filename
61       *     The name of the file of interest.
62       */
63     process_item_libdir(target &tgt);
64 
65     /**
66       * The default constructor.
67       * Do not use.
68       */
69     process_item_libdir();
70 
71     /**
72       * The copy constructor.
73       * Do not use.
74       *
75       * @param rhs
76       *     The right hand side of the initialization.
77       */
78     process_item_libdir(const process_item_libdir &rhs);
79 
80     /**
81       * The assignment operator.
82       * Do not use.
83       *
84       * @param rhs
85       *     The right hand side of the assignment.
86       */
87     process_item_libdir &operator=(const process_item_libdir &rhs);
88 };
89 
90 // vim: set ts=8 sw=4 et :
91 #endif // AEMAKEGEN_PROCESS_ITEM_LIBDIR_H
92