1 //
2 // aegis - project change supervisor
3 // Copyright (C) 1991-1997, 1999, 2000, 2002-2008, 2011, 2012 Peter Miller
4 // Copyright (C) 2007 Walter Franzini
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 3 of the License, or (at
9 // your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program. If not, see <http://www.gnu.org/licenses/>.
18 //
19 
20 #ifndef CHANGE_FILE_H
21 #define CHANGE_FILE_H
22 
23 #include <common/gcc-attribute.h>
24 #include <libaegis/change.h>
25 #include <libaegis/view_path.h>
26 
27 class string_list_ty; // forward
28 class nstring; // forward
29 
30 /** Deprecated.  Use change::file_path instead. */
31 string_ty *change_file_path(change::pointer cp, string_ty *file_name)
32     DEPRECATED;
33 
34 /** Deprecated. Use change::file_path_by_uuid instead. */
35 string_ty *change_file_path_by_uuid(change::pointer cp, string_ty *uuid)
36     DEPRECATED;
37 
38 /** Deprecated.  Use change::file_path instead. */
39 string_ty *change_file_path(change::pointer cp, fstate_src_ty *src)
40     DEPRECATED;
41 
42 string_ty *change_file_version_path(change::pointer cp, fstate_src_ty *src,
43     int *unlink_p);
44 string_ty *change_file_source(change::pointer , string_ty *);
45 void change_file_remove(change::pointer , string_ty *);
46 
47 void change_file_remove_all(change::pointer );
48 fstate_src_ty *change_file_nth(change::pointer , size_t, view_path_ty);
49 size_t change_file_count(change::pointer );
50 void change_file_directory_query(change::pointer cp, string_ty *file_name,
51     string_list_ty *result_in, string_list_ty *result_out);
52 string_ty *change_file_directory_conflict(change::pointer cp,
53     string_ty *file_name);
54 
55 void change_file_test_time_clear(change::pointer cp, fstate_src_ty *src,
56     string_ty *);
57 void change_file_test_time_set(change::pointer , fstate_src_ty *, time_t,
58     string_ty *);
59 time_t change_file_test_time_get(change::pointer cp, fstate_src_ty *src,
60     string_ty *);
61 void change_file_test_baseline_time_clear(change::pointer , fstate_src_ty *,
62     string_ty *);
63 void change_file_test_baseline_time_set(change::pointer cp, fstate_src_ty *src,
64     time_t, string_ty *);
65 time_t change_file_test_baseline_time_get(change::pointer , fstate_src_ty *,
66     string_ty *);
67 
68 int change_fingerprint_same(fingerprint_ty *, string_ty *, int);
69 void change_file_fingerprint_check(change::pointer , fstate_src_ty *);
70 int change_file_up_to_date(project *, fstate_src_ty *);
71 metric_list_ty *change_file_metrics_get(change::pointer , string_ty *);
72 void change_file_list_metrics_check(change::pointer );
73 void change_file_template(change::pointer , string_ty *, user_ty::pointer, int);
74 
75 /**
76   * The change_file_copy_basic_attributes function is used to copy the
77   * basic change file attributes (usage, attributes and uuid) from one
78   * file to another.  This is a common activity for aecp, et al.
79   *
80   * @param to
81   *     The file meta data to receive the attributes
82   * @param from
83   *     The file meta data from which the attributes are to be taken.
84   */
85 void change_file_copy_basic_attributes(fstate_src_ty *to, fstate_src_ty *from);
86 
87 // vim: set ts=8 sw=4 et :
88 #endif // CHANGE_FILE_H
89