1 // 2 // aegis - project change supervisor 3 // Copyright (C) 1995-1999, 2001, 2002, 2004-2009, 2011, 2012 Peter Miller 4 // Copyright (C) 2008 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 AEGIS_CHANGE_BRANCH_H 21 #define AEGIS_CHANGE_BRANCH_H 22 23 #include <libaegis/change.h> 24 25 struct string_list_ty; // forward 26 struct change_list_ty; // forward 27 28 void change_branch_new(change::pointer ); 29 bool change_history_delta_validate(change::pointer , long); 30 time_t change_history_delta_to_timestamp(struct project *, long); 31 long change_history_timestamp_to_delta(struct project *, time_t); 32 long change_history_delta_latest(change::pointer ); 33 long change_history_delta_by_name(change::pointer , string_ty *, int); 34 long change_history_change_by_name(change::pointer , string_ty *, int); 35 long change_history_change_by_delta(change::pointer , long); 36 long change_history_change_by_timestamp(struct project *, time_t); 37 void change_history_delta_name_delete(change::pointer , string_ty *); 38 void change_history_delta_name_add(change::pointer , long, string_ty *); 39 long change_history_last_change_integrated(change::pointer ); 40 long change_current_integration_get(change::pointer ); 41 void change_current_integration_set(change::pointer , long); 42 long change_branch_next_delta_number(change::pointer ); 43 void change_copyright_years_now(change::pointer ); 44 void change_copyright_year_append(change::pointer , int); 45 void change_copyright_years_merge(change::pointer , change::pointer ); 46 void change_copyright_years_slurp(change::pointer cp, int *ary, int ary_len_max, 47 int *ary_len); 48 void change_copyright_years_get(change::pointer cp, int *ary, int ary_len_max, 49 int *ary_len); 50 void change_branch_history_new(change::pointer cp, long dn, long cn, 51 string_ty *, time_t, bool); 52 int change_branch_history_nth(change::pointer cp, long n, long *cnp, long *dnp, 53 struct string_list_ty *name); 54 55 bool change_branch_administrator_query(change::pointer , string_ty *); 56 void change_branch_administrator_add(change::pointer , string_ty *); 57 void change_branch_administrator_remove(change::pointer , string_ty *); 58 string_ty *change_branch_administrator_nth(change::pointer , long); 59 bool change_branch_developer_query(change::pointer , string_ty *); 60 void change_branch_developer_add(change::pointer , string_ty *); 61 void change_branch_developer_remove(change::pointer , string_ty *); 62 string_ty *change_branch_developer_nth(change::pointer , long); 63 bool change_branch_reviewer_query(change::pointer , string_ty *); 64 void change_branch_reviewer_add(change::pointer , string_ty *); 65 void change_branch_reviewer_remove(change::pointer , string_ty *); 66 string_ty *change_branch_reviewer_nth(change::pointer , long); 67 bool change_branch_integrator_query(change::pointer , string_ty *); 68 void change_branch_integrator_add(change::pointer , string_ty *); 69 void change_branch_integrator_remove(change::pointer , string_ty *); 70 string_ty *change_branch_integrator_nth(change::pointer , long); 71 72 void change_branch_change_add(change::pointer , long, int); 73 void change_branch_change_remove(change::pointer , long); 74 void change_branch_sub_branch_list_get(change::pointer , long **, size_t *); 75 int change_branch_change_nth(change::pointer , long, long *); 76 long change_branch_next_change_number(change::pointer cp, int skip); 77 int change_branch_change_number_in_use(change::pointer , long); 78 79 void change_branch_umask_set(change::pointer , int); 80 int change_branch_umask_get(change::pointer ); 81 void change_branch_developer_may_review_set(change::pointer , bool); 82 bool change_branch_developer_may_review_get(change::pointer ); 83 void change_branch_developer_may_integrate_set(change::pointer , bool); 84 bool change_branch_developer_may_integrate_get(change::pointer ); 85 void change_branch_reviewer_may_integrate_set(change::pointer , bool); 86 bool change_branch_reviewer_may_integrate_get(change::pointer ); 87 void change_branch_developers_may_create_changes_set(change::pointer , bool); 88 bool change_branch_developers_may_create_changes_get(change::pointer ); 89 void change_branch_forced_develop_begin_notify_command_set(change::pointer , 90 string_ty *); 91 string_ty *change_branch_forced_develop_begin_notify_command_get 92 (change::pointer ); 93 void change_branch_develop_end_notify_command_set(change::pointer cp, 94 string_ty *command); 95 string_ty *change_branch_develop_end_notify_command_get(change::pointer ); 96 void change_branch_develop_end_undo_notify_command_set(change::pointer , 97 string_ty *); 98 string_ty *change_branch_develop_end_undo_notify_command_get(change::pointer ); 99 void change_branch_review_begin_notify_command_set(change::pointer , 100 string_ty *); 101 string_ty *change_branch_review_begin_notify_command_get(change::pointer ); 102 void change_branch_review_begin_undo_notify_command_set(change::pointer , 103 string_ty *); 104 string_ty *change_branch_review_begin_undo_notify_command_get(change::pointer ); 105 void change_branch_review_pass_notify_command_set(change::pointer cp, 106 string_ty *command); 107 string_ty *change_branch_review_pass_notify_command_get(change::pointer ); 108 void change_branch_review_pass_undo_notify_command_set(change::pointer , 109 string_ty *); 110 string_ty *change_branch_review_pass_undo_notify_command_get(change::pointer ); 111 void change_branch_review_fail_notify_command_set(change::pointer cp, 112 string_ty *command); 113 string_ty *change_branch_review_fail_notify_command_get(change::pointer ); 114 void change_branch_integrate_pass_notify_command_set(change::pointer , 115 string_ty *); 116 string_ty *change_branch_integrate_pass_notify_command_get(change::pointer ); 117 void change_branch_integrate_fail_notify_command_set(change::pointer , 118 string_ty *); 119 string_ty *change_branch_integrate_fail_notify_command_get(change::pointer ); 120 void change_branch_default_development_directory_set(change::pointer , 121 string_ty *); 122 string_ty *change_branch_default_development_directory_get(change::pointer ); 123 124 /** 125 * The change_branch_default_test_exemption_set function is used to set 126 * the default_test_exemption attribute of a branch. 127 * 128 * @param cp 129 * The branch being modified. 130 * @param yesno 131 * The state to set the attribute. 132 */ 133 void change_branch_default_test_exemption_set(change::pointer cp, bool yesno); 134 135 /** 136 * The change_branch_default_test_exemption_get function is used to 137 * obtain the current state of a branch's default_test_exemption 138 * attribute. 139 * 140 * @param cp 141 * The branch being quesried. 142 * @returns 143 * The state of the attribute. 144 */ 145 bool change_branch_default_test_exemption_get(change::pointer cp); 146 147 /** 148 * The change_branch_default_test_regression_exemption_set function is 149 * used to set the default_test_regression_exemption attribute of a 150 * branch. 151 * 152 * @param cp 153 * The branch being modified. 154 * @param yesno 155 * The state to set the attribute. 156 */ 157 void change_branch_default_test_regression_exemption_set(change::pointer cp, 158 bool yesno); 159 160 /** 161 * The change_branch_default_test_regression_exemption_get 162 * function is used to obtain the current state of a branch's 163 * default_test_regression_exemption attribute. 164 * 165 * @param cp 166 * The branch being quesried. 167 * @returns 168 * The state of the attribute. 169 */ 170 bool change_branch_default_test_regression_exemption_get(change::pointer cp); 171 172 long change_branch_minimum_change_number_get(change::pointer ); 173 void change_branch_minimum_change_number_set(change::pointer , long); 174 bool change_branch_reuse_change_numbers_get(change::pointer ); 175 long change_branch_minimum_branch_number_get(change::pointer ); 176 void change_branch_minimum_branch_number_set(change::pointer , long); 177 void change_branch_reuse_change_numbers_set(change::pointer , bool); 178 bool change_branch_skip_unlucky_get(change::pointer ); 179 void change_branch_skip_unlucky_set(change::pointer , bool); 180 bool change_branch_compress_database_get(change::pointer ); 181 void change_branch_compress_database_set(change::pointer , bool); 182 nstring change_version_get(change::pointer cp) DEPRECATED; 183 int change_branch_develop_end_action_get(change::pointer ); 184 void change_branch_develop_end_action_set(change::pointer , int); 185 bool change_branch_protect_development_directory_get(change::pointer ); 186 void change_branch_protect_development_directory_set(change::pointer , bool); 187 188 /** 189 * The change_branch_uuid_find function is used to locate a change by 190 * its UUID. This function will recurse down the branch tree. It is 191 * possible to give a leading prefix - this is shorter, and easier for 192 * humans to type. We return all such matches, although usually it's 193 * an error if there is more than one. 194 * 195 * @param pp 196 * The change or branch to search. 197 * @param uuid 198 * The change UUID to search for. 199 * @param result 200 * This is the list of changes which match this (partial) UUID specified. 201 */ 202 void change_branch_uuid_find(change::pointer pp, string_ty *uuid, 203 change_list_ty &result); 204 205 #endif // AEGIS_CHANGE_BRANCH_H 206 // vim: set ts=8 sw=4 et : 207