00001
00002
00003
00004
00005
00006
00007
00008 #ifndef LIBAEGIS_PCONF_H
00009 #define LIBAEGIS_PCONF_H
00010
00011 #include <common/str.h>
00012 #include <libaegis/output.h>
00013 #include <libaegis/meta_lex.h>
00014 #include <libaegis/meta_parse.h>
00015 #include <libaegis/meta_type.h>
00016
00017 class nstring;
00018
00019 #ifndef change_cause_DEF
00020 #define change_cause_DEF
00021 enum change_cause_ty
00022 {
00023 change_cause_external_bug,
00024 change_cause_external_enhancement,
00025 change_cause_external_improvement,
00026 change_cause_internal_bug,
00027 change_cause_internal_enhancement,
00028 change_cause_internal_improvement,
00029 change_cause_chain
00030 };
00031 #define change_cause_max 7
00032 #endif // change_cause_DEF
00033
00034 extern meta_type change_cause_type;
00035
00036 void change_cause_write(const output::pointer &fp, const char *name, change_cause_ty value, bool show);
00037 void change_cause_write_xml(const output::pointer &fp, const char *name, change_cause_ty value, bool show);
00038 const char *change_cause_ename(change_cause_ty);
00039
00040 #ifndef file_action_DEF
00041 #define file_action_DEF
00042 enum file_action_ty
00043 {
00044 file_action_create,
00045 file_action_modify,
00046 file_action_remove,
00047 file_action_insulate,
00048 file_action_transparent
00049 };
00050 #define file_action_max 5
00051 #endif // file_action_DEF
00052
00053 extern meta_type file_action_type;
00054
00055 void file_action_write(const output::pointer &fp, const char *name, file_action_ty value, bool show);
00056 void file_action_write_xml(const output::pointer &fp, const char *name, file_action_ty value, bool show);
00057 const char *file_action_ename(file_action_ty);
00058
00059 #ifndef file_usage_DEF
00060 #define file_usage_DEF
00061 enum file_usage_ty
00062 {
00063 file_usage_source,
00064 file_usage_config,
00065 file_usage_build,
00066 file_usage_test,
00067 file_usage_manual_test
00068 };
00069 #define file_usage_max 5
00070 #endif // file_usage_DEF
00071
00072 extern meta_type file_usage_type;
00073
00074 void file_usage_write(const output::pointer &fp, const char *name, file_usage_ty value, bool show);
00075 void file_usage_write_xml(const output::pointer &fp, const char *name, file_usage_ty value, bool show);
00076 const char *file_usage_ename(file_usage_ty);
00077
00078 #ifndef metric_DEF
00079 #define metric_DEF
00080
00081 #define metric_name_mask ((unsigned long)0)
00082 #define metric_value_mask ((unsigned long)1 << 0)
00083
00084 struct metric_ty
00085 {
00086 long reference_count;
00087 unsigned long mask;
00088 string_ty *errpos;
00089 string_ty *name;
00090 double value;
00091 };
00092 #endif // metric_DEF
00093
00094 extern meta_type metric_type;
00095
00096 void metric_write(const output::pointer &fp, const char *name, metric_ty *value);
00097 void metric_write_xml(const output::pointer &fp, const char *name, metric_ty *value);
00098 metric_ty *metric_copy(metric_ty *);
00099 metric_ty *metric_clone(metric_ty *);
00100 #ifdef DEBUG
00101 void metric_trace_real(const char *name, const metric_ty *value);
00102 #define metric_trace(x) ((void)(trace_pretest_ && (trace_where_, metric_trace_real(trace_stringize(x), x), 0)))
00103 #else
00104 #define metric_trace(x)
00105 #endif
00106
00107 #ifndef metric_list_DEF
00108 #define metric_list_DEF
00109 struct metric_list_ty
00110 {
00111 size_t length;
00112 size_t maximum;
00113 metric_ty **list;
00114 };
00115 #endif // metric_list_DEF
00116
00117 extern meta_type metric_list_type;
00118
00119 metric_list_ty *metric_list_copy(metric_list_ty *);
00120 metric_list_ty *metric_list_clone(metric_list_ty *);
00121 void metric_list_write(const output::pointer &fp, const char *name, metric_list_ty *value);
00122 void metric_list_write_xml(const output::pointer &fp, const char *name, metric_list_ty *value);
00123 #ifdef DEBUG
00124 void metric_list_trace_real(const char *name, const metric_list_ty *value);
00125 #define metric_list_trace(x) ((void)(trace_pretest_ && (trace_where_, metric_list_trace_real(trace_stringize(x), x), 0)))
00126 #else
00127 #define metric_list_trace(x)
00128 #endif
00129
00130 #ifndef history_version_encoding_DEF
00131 #define history_version_encoding_DEF
00132 enum history_version_encoding_ty
00133 {
00134 history_version_encoding_none,
00135 history_version_encoding_quoted_printable,
00136 history_version_encoding_base64
00137 };
00138 #define history_version_encoding_max 3
00139 #endif // history_version_encoding_DEF
00140
00141 extern meta_type history_version_encoding_type;
00142
00143 void history_version_encoding_write(const output::pointer &fp, const char *name, history_version_encoding_ty value, bool show);
00144 void history_version_encoding_write_xml(const output::pointer &fp, const char *name, history_version_encoding_ty value, bool show);
00145 const char *history_version_encoding_ename(history_version_encoding_ty);
00146
00147 #ifndef history_version_DEF
00148 #define history_version_DEF
00149
00150 #define history_version_revision_mask ((unsigned long)0)
00151 #define history_version_encoding_mask ((unsigned long)1 << 0)
00152
00153 struct history_version_ty
00154 {
00155 long reference_count;
00156 unsigned long mask;
00157 string_ty *errpos;
00158 string_ty *revision;
00159 history_version_encoding_ty encoding;
00160 };
00161 #endif // history_version_DEF
00162
00163 extern meta_type history_version_type;
00164
00165 void history_version_write(const output::pointer &fp, const char *name, history_version_ty *value);
00166 void history_version_write_xml(const output::pointer &fp, const char *name, history_version_ty *value);
00167 history_version_ty *history_version_copy(history_version_ty *);
00168 history_version_ty *history_version_clone(history_version_ty *);
00169 #ifdef DEBUG
00170 void history_version_trace_real(const char *name, const history_version_ty *value);
00171 #define history_version_trace(x) ((void)(trace_pretest_ && (trace_where_, history_version_trace_real(trace_stringize(x), x), 0)))
00172 #else
00173 #define history_version_trace(x)
00174 #endif
00175
00176 #ifndef attributes_DEF
00177 #define attributes_DEF
00178
00179 #define attributes_name_mask ((unsigned long)0)
00180 #define attributes_value_mask ((unsigned long)0)
00181
00182 struct attributes_ty
00183 {
00184 long reference_count;
00185 unsigned long mask;
00186 string_ty *errpos;
00187 string_ty *name;
00188 string_ty *value;
00189 };
00190 #endif // attributes_DEF
00191
00192 extern meta_type attributes_type;
00193
00194 void attributes_write(const output::pointer &fp, const char *name, attributes_ty *value);
00195 void attributes_write_xml(const output::pointer &fp, const char *name, attributes_ty *value);
00196 attributes_ty *attributes_copy(attributes_ty *);
00197 attributes_ty *attributes_clone(attributes_ty *);
00198 #ifdef DEBUG
00199 void attributes_trace_real(const char *name, const attributes_ty *value);
00200 #define attributes_trace(x) ((void)(trace_pretest_ && (trace_where_, attributes_trace_real(trace_stringize(x), x), 0)))
00201 #else
00202 #define attributes_trace(x)
00203 #endif
00204
00205 #ifndef attributes_list_DEF
00206 #define attributes_list_DEF
00207 struct attributes_list_ty
00208 {
00209 size_t length;
00210 size_t maximum;
00211 attributes_ty **list;
00212 };
00213 #endif // attributes_list_DEF
00214
00215 extern meta_type attributes_list_type;
00216
00217 attributes_list_ty *attributes_list_copy(attributes_list_ty *);
00218 attributes_list_ty *attributes_list_clone(attributes_list_ty *);
00219 void attributes_list_write(const output::pointer &fp, const char *name, attributes_list_ty *value);
00220 void attributes_list_write_xml(const output::pointer &fp, const char *name, attributes_list_ty *value);
00221 #ifdef DEBUG
00222 void attributes_list_trace_real(const char *name, const attributes_list_ty *value);
00223 #define attributes_list_trace(x) ((void)(trace_pretest_ && (trace_where_, attributes_list_trace_real(trace_stringize(x), x), 0)))
00224 #else
00225 #define attributes_list_trace(x)
00226 #endif
00227
00228 #ifndef work_area_style_DEF
00229 #define work_area_style_DEF
00230
00231 #define work_area_style_source_file_link_mask ((unsigned long)1 << 0)
00232 #define work_area_style_source_file_symlink_mask ((unsigned long)1 << 1)
00233 #define work_area_style_source_file_copy_mask ((unsigned long)1 << 2)
00234 #define work_area_style_source_file_whiteout_mask ((unsigned long)1 << 3)
00235 #define work_area_style_derived_file_link_mask ((unsigned long)1 << 4)
00236 #define work_area_style_derived_file_symlink_mask ((unsigned long)1 << 5)
00237 #define work_area_style_derived_file_copy_mask ((unsigned long)1 << 6)
00238 #define work_area_style_during_build_only_mask ((unsigned long)1 << 7)
00239 #define work_area_style_derived_at_start_only_mask ((unsigned long)1 << 8)
00240
00241 struct work_area_style_ty
00242 {
00243 long reference_count;
00244 unsigned long mask;
00245 string_ty *errpos;
00246 bool source_file_link;
00247 bool source_file_symlink;
00248 bool source_file_copy;
00249 bool source_file_whiteout;
00250 bool derived_file_link;
00251 bool derived_file_symlink;
00252 bool derived_file_copy;
00253 bool during_build_only;
00254 bool derived_at_start_only;
00255 };
00256 #endif // work_area_style_DEF
00257
00258 extern meta_type work_area_style_type;
00259
00260 void work_area_style_write(const output::pointer &fp, const char *name, work_area_style_ty *value);
00261 void work_area_style_write_xml(const output::pointer &fp, const char *name, work_area_style_ty *value);
00262 work_area_style_ty *work_area_style_copy(work_area_style_ty *);
00263 work_area_style_ty *work_area_style_clone(work_area_style_ty *);
00264 #ifdef DEBUG
00265 void work_area_style_trace_real(const char *name, const work_area_style_ty *value);
00266 #define work_area_style_trace(x) ((void)(trace_pretest_ && (trace_where_, work_area_style_trace_real(trace_stringize(x), x), 0)))
00267 #else
00268 #define work_area_style_trace(x)
00269 #endif
00270
00271 #ifndef pconf_integrate_begin_exceptions_list_DEF
00272 #define pconf_integrate_begin_exceptions_list_DEF
00273 struct pconf_integrate_begin_exceptions_list_ty
00274 {
00275 size_t length;
00276 size_t maximum;
00277 string_ty **list;
00278 };
00279 #endif // pconf_integrate_begin_exceptions_list_DEF
00280
00281 extern meta_type pconf_integrate_begin_exceptions_list_type;
00282
00283 pconf_integrate_begin_exceptions_list_ty *pconf_integrate_begin_exceptions_list_copy(pconf_integrate_begin_exceptions_list_ty *);
00284 pconf_integrate_begin_exceptions_list_ty *pconf_integrate_begin_exceptions_list_clone(pconf_integrate_begin_exceptions_list_ty *);
00285 void pconf_integrate_begin_exceptions_list_write(const output::pointer &fp, const char *name, pconf_integrate_begin_exceptions_list_ty *value);
00286 void pconf_integrate_begin_exceptions_list_write_xml(const output::pointer &fp, const char *name, pconf_integrate_begin_exceptions_list_ty *value);
00287 #ifdef DEBUG
00288 void pconf_integrate_begin_exceptions_list_trace_real(const char *name, const pconf_integrate_begin_exceptions_list_ty *value);
00289 #define pconf_integrate_begin_exceptions_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_integrate_begin_exceptions_list_trace_real(trace_stringize(x), x), 0)))
00290 #else
00291 #define pconf_integrate_begin_exceptions_list_trace(x)
00292 #endif
00293
00294 #ifndef pconf_symlink_exceptions_list_DEF
00295 #define pconf_symlink_exceptions_list_DEF
00296 struct pconf_symlink_exceptions_list_ty
00297 {
00298 size_t length;
00299 size_t maximum;
00300 string_ty **list;
00301 };
00302 #endif // pconf_symlink_exceptions_list_DEF
00303
00304 extern meta_type pconf_symlink_exceptions_list_type;
00305
00306 pconf_symlink_exceptions_list_ty *pconf_symlink_exceptions_list_copy(pconf_symlink_exceptions_list_ty *);
00307 pconf_symlink_exceptions_list_ty *pconf_symlink_exceptions_list_clone(pconf_symlink_exceptions_list_ty *);
00308 void pconf_symlink_exceptions_list_write(const output::pointer &fp, const char *name, pconf_symlink_exceptions_list_ty *value);
00309 void pconf_symlink_exceptions_list_write_xml(const output::pointer &fp, const char *name, pconf_symlink_exceptions_list_ty *value);
00310 #ifdef DEBUG
00311 void pconf_symlink_exceptions_list_trace_real(const char *name, const pconf_symlink_exceptions_list_ty *value);
00312 #define pconf_symlink_exceptions_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_symlink_exceptions_list_trace_real(trace_stringize(x), x), 0)))
00313 #else
00314 #define pconf_symlink_exceptions_list_trace(x)
00315 #endif
00316
00317 #ifndef pconf_history_put_trashes_file_DEF
00318 #define pconf_history_put_trashes_file_DEF
00319 enum pconf_history_put_trashes_file_ty
00320 {
00321 pconf_history_put_trashes_file_fatal,
00322 pconf_history_put_trashes_file_warn,
00323 pconf_history_put_trashes_file_ignore
00324 };
00325 #define pconf_history_put_trashes_file_max 3
00326 #endif // pconf_history_put_trashes_file_DEF
00327
00328 extern meta_type pconf_history_put_trashes_file_type;
00329
00330 void pconf_history_put_trashes_file_write(const output::pointer &fp, const char *name, pconf_history_put_trashes_file_ty value, bool show);
00331 void pconf_history_put_trashes_file_write_xml(const output::pointer &fp, const char *name, pconf_history_put_trashes_file_ty value, bool show);
00332 const char *pconf_history_put_trashes_file_ename(pconf_history_put_trashes_file_ty);
00333
00334 #ifndef pconf_history_content_limitation_DEF
00335 #define pconf_history_content_limitation_DEF
00336 enum pconf_history_content_limitation_ty
00337 {
00338 pconf_history_content_limitation_ascii_text,
00339 pconf_history_content_limitation_international_text,
00340 pconf_history_content_limitation_binary_capable
00341 };
00342 #define pconf_history_content_limitation_max 3
00343 #endif // pconf_history_content_limitation_DEF
00344
00345 extern meta_type pconf_history_content_limitation_type;
00346
00347 void pconf_history_content_limitation_write(const output::pointer &fp, const char *name, pconf_history_content_limitation_ty value, bool show);
00348 void pconf_history_content_limitation_write_xml(const output::pointer &fp, const char *name, pconf_history_content_limitation_ty value, bool show);
00349 const char *pconf_history_content_limitation_ename(pconf_history_content_limitation_ty);
00350
00351 #ifndef pconf_architecture_mode_DEF
00352 #define pconf_architecture_mode_DEF
00353 enum pconf_architecture_mode_ty
00354 {
00355 pconf_architecture_mode_required,
00356 pconf_architecture_mode_optional,
00357 pconf_architecture_mode_forbidden
00358 };
00359 #define pconf_architecture_mode_max 3
00360 #endif // pconf_architecture_mode_DEF
00361
00362 extern meta_type pconf_architecture_mode_type;
00363
00364 void pconf_architecture_mode_write(const output::pointer &fp, const char *name, pconf_architecture_mode_ty value, bool show);
00365 void pconf_architecture_mode_write_xml(const output::pointer &fp, const char *name, pconf_architecture_mode_ty value, bool show);
00366 const char *pconf_architecture_mode_ename(pconf_architecture_mode_ty);
00367
00368 #ifndef pconf_architecture_DEF
00369 #define pconf_architecture_DEF
00370
00371 #define pconf_architecture_name_mask ((unsigned long)0)
00372 #define pconf_architecture_pattern_mask ((unsigned long)0)
00373 #define pconf_architecture_mode_mask ((unsigned long)1 << 0)
00374
00375 struct pconf_architecture_ty
00376 {
00377 long reference_count;
00378 unsigned long mask;
00379 string_ty *errpos;
00380 string_ty *name;
00381 string_ty *pattern;
00382 pconf_architecture_mode_ty mode;
00383 };
00384 #endif // pconf_architecture_DEF
00385
00386 extern meta_type pconf_architecture_type;
00387
00388 void pconf_architecture_write(const output::pointer &fp, const char *name, pconf_architecture_ty *value);
00389 void pconf_architecture_write_xml(const output::pointer &fp, const char *name, pconf_architecture_ty *value);
00390 pconf_architecture_ty *pconf_architecture_copy(pconf_architecture_ty *);
00391 pconf_architecture_ty *pconf_architecture_clone(pconf_architecture_ty *);
00392 #ifdef DEBUG
00393 void pconf_architecture_trace_real(const char *name, const pconf_architecture_ty *value);
00394 #define pconf_architecture_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_architecture_trace_real(trace_stringize(x), x), 0)))
00395 #else
00396 #define pconf_architecture_trace(x)
00397 #endif
00398
00399 #ifndef pconf_architecture_list_DEF
00400 #define pconf_architecture_list_DEF
00401 struct pconf_architecture_list_ty
00402 {
00403 size_t length;
00404 size_t maximum;
00405 pconf_architecture_ty **list;
00406 };
00407 #endif // pconf_architecture_list_DEF
00408
00409 extern meta_type pconf_architecture_list_type;
00410
00411 pconf_architecture_list_ty *pconf_architecture_list_copy(pconf_architecture_list_ty *);
00412 pconf_architecture_list_ty *pconf_architecture_list_clone(pconf_architecture_list_ty *);
00413 void pconf_architecture_list_write(const output::pointer &fp, const char *name, pconf_architecture_list_ty *value);
00414 void pconf_architecture_list_write_xml(const output::pointer &fp, const char *name, pconf_architecture_list_ty *value);
00415 #ifdef DEBUG
00416 void pconf_architecture_list_trace_real(const char *name, const pconf_architecture_list_ty *value);
00417 #define pconf_architecture_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_architecture_list_trace_real(trace_stringize(x), x), 0)))
00418 #else
00419 #define pconf_architecture_list_trace(x)
00420 #endif
00421
00422 #ifndef pconf_file_template_pattern_list_DEF
00423 #define pconf_file_template_pattern_list_DEF
00424 struct pconf_file_template_pattern_list_ty
00425 {
00426 size_t length;
00427 size_t maximum;
00428 string_ty **list;
00429 };
00430 #endif // pconf_file_template_pattern_list_DEF
00431
00432 extern meta_type pconf_file_template_pattern_list_type;
00433
00434 pconf_file_template_pattern_list_ty *pconf_file_template_pattern_list_copy(pconf_file_template_pattern_list_ty *);
00435 pconf_file_template_pattern_list_ty *pconf_file_template_pattern_list_clone(pconf_file_template_pattern_list_ty *);
00436 void pconf_file_template_pattern_list_write(const output::pointer &fp, const char *name, pconf_file_template_pattern_list_ty *value);
00437 void pconf_file_template_pattern_list_write_xml(const output::pointer &fp, const char *name, pconf_file_template_pattern_list_ty *value);
00438 #ifdef DEBUG
00439 void pconf_file_template_pattern_list_trace_real(const char *name, const pconf_file_template_pattern_list_ty *value);
00440 #define pconf_file_template_pattern_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_file_template_pattern_list_trace_real(trace_stringize(x), x), 0)))
00441 #else
00442 #define pconf_file_template_pattern_list_trace(x)
00443 #endif
00444
00445 #ifndef pconf_file_template_DEF
00446 #define pconf_file_template_DEF
00447
00448 #define pconf_file_template_pattern_mask ((unsigned long)0)
00449 #define pconf_file_template_body_mask ((unsigned long)0)
00450 #define pconf_file_template_body_command_mask ((unsigned long)0)
00451
00452 struct pconf_file_template_ty
00453 {
00454 long reference_count;
00455 unsigned long mask;
00456 string_ty *errpos;
00457 pconf_file_template_pattern_list_ty *pattern;
00458 string_ty *body;
00459 string_ty *body_command;
00460 };
00461 #endif // pconf_file_template_DEF
00462
00463 extern meta_type pconf_file_template_type;
00464
00465 void pconf_file_template_write(const output::pointer &fp, const char *name, pconf_file_template_ty *value);
00466 void pconf_file_template_write_xml(const output::pointer &fp, const char *name, pconf_file_template_ty *value);
00467 pconf_file_template_ty *pconf_file_template_copy(pconf_file_template_ty *);
00468 pconf_file_template_ty *pconf_file_template_clone(pconf_file_template_ty *);
00469 #ifdef DEBUG
00470 void pconf_file_template_trace_real(const char *name, const pconf_file_template_ty *value);
00471 #define pconf_file_template_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_file_template_trace_real(trace_stringize(x), x), 0)))
00472 #else
00473 #define pconf_file_template_trace(x)
00474 #endif
00475
00476 #ifndef pconf_file_template_list_DEF
00477 #define pconf_file_template_list_DEF
00478 struct pconf_file_template_list_ty
00479 {
00480 size_t length;
00481 size_t maximum;
00482 pconf_file_template_ty **list;
00483 };
00484 #endif // pconf_file_template_list_DEF
00485
00486 extern meta_type pconf_file_template_list_type;
00487
00488 pconf_file_template_list_ty *pconf_file_template_list_copy(pconf_file_template_list_ty *);
00489 pconf_file_template_list_ty *pconf_file_template_list_clone(pconf_file_template_list_ty *);
00490 void pconf_file_template_list_write(const output::pointer &fp, const char *name, pconf_file_template_list_ty *value);
00491 void pconf_file_template_list_write_xml(const output::pointer &fp, const char *name, pconf_file_template_list_ty *value);
00492 #ifdef DEBUG
00493 void pconf_file_template_list_trace_real(const char *name, const pconf_file_template_list_ty *value);
00494 #define pconf_file_template_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_file_template_list_trace_real(trace_stringize(x), x), 0)))
00495 #else
00496 #define pconf_file_template_list_trace(x)
00497 #endif
00498
00499 #ifndef pconf_whiteout_template_pattern_list_DEF
00500 #define pconf_whiteout_template_pattern_list_DEF
00501 struct pconf_whiteout_template_pattern_list_ty
00502 {
00503 size_t length;
00504 size_t maximum;
00505 string_ty **list;
00506 };
00507 #endif // pconf_whiteout_template_pattern_list_DEF
00508
00509 extern meta_type pconf_whiteout_template_pattern_list_type;
00510
00511 pconf_whiteout_template_pattern_list_ty *pconf_whiteout_template_pattern_list_copy(pconf_whiteout_template_pattern_list_ty *);
00512 pconf_whiteout_template_pattern_list_ty *pconf_whiteout_template_pattern_list_clone(pconf_whiteout_template_pattern_list_ty *);
00513 void pconf_whiteout_template_pattern_list_write(const output::pointer &fp, const char *name, pconf_whiteout_template_pattern_list_ty *value);
00514 void pconf_whiteout_template_pattern_list_write_xml(const output::pointer &fp, const char *name, pconf_whiteout_template_pattern_list_ty *value);
00515 #ifdef DEBUG
00516 void pconf_whiteout_template_pattern_list_trace_real(const char *name, const pconf_whiteout_template_pattern_list_ty *value);
00517 #define pconf_whiteout_template_pattern_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_whiteout_template_pattern_list_trace_real(trace_stringize(x), x), 0)))
00518 #else
00519 #define pconf_whiteout_template_pattern_list_trace(x)
00520 #endif
00521
00522 #ifndef pconf_whiteout_template_DEF
00523 #define pconf_whiteout_template_DEF
00524
00525 #define pconf_whiteout_template_pattern_mask ((unsigned long)0)
00526 #define pconf_whiteout_template_body_mask ((unsigned long)0)
00527
00528 struct pconf_whiteout_template_ty
00529 {
00530 long reference_count;
00531 unsigned long mask;
00532 string_ty *errpos;
00533 pconf_whiteout_template_pattern_list_ty *pattern;
00534 string_ty *body;
00535 };
00536 #endif // pconf_whiteout_template_DEF
00537
00538 extern meta_type pconf_whiteout_template_type;
00539
00540 void pconf_whiteout_template_write(const output::pointer &fp, const char *name, pconf_whiteout_template_ty *value);
00541 void pconf_whiteout_template_write_xml(const output::pointer &fp, const char *name, pconf_whiteout_template_ty *value);
00542 pconf_whiteout_template_ty *pconf_whiteout_template_copy(pconf_whiteout_template_ty *);
00543 pconf_whiteout_template_ty *pconf_whiteout_template_clone(pconf_whiteout_template_ty *);
00544 #ifdef DEBUG
00545 void pconf_whiteout_template_trace_real(const char *name, const pconf_whiteout_template_ty *value);
00546 #define pconf_whiteout_template_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_whiteout_template_trace_real(trace_stringize(x), x), 0)))
00547 #else
00548 #define pconf_whiteout_template_trace(x)
00549 #endif
00550
00551 #ifndef pconf_whiteout_template_list_DEF
00552 #define pconf_whiteout_template_list_DEF
00553 struct pconf_whiteout_template_list_ty
00554 {
00555 size_t length;
00556 size_t maximum;
00557 pconf_whiteout_template_ty **list;
00558 };
00559 #endif // pconf_whiteout_template_list_DEF
00560
00561 extern meta_type pconf_whiteout_template_list_type;
00562
00563 pconf_whiteout_template_list_ty *pconf_whiteout_template_list_copy(pconf_whiteout_template_list_ty *);
00564 pconf_whiteout_template_list_ty *pconf_whiteout_template_list_clone(pconf_whiteout_template_list_ty *);
00565 void pconf_whiteout_template_list_write(const output::pointer &fp, const char *name, pconf_whiteout_template_list_ty *value);
00566 void pconf_whiteout_template_list_write_xml(const output::pointer &fp, const char *name, pconf_whiteout_template_list_ty *value);
00567 #ifdef DEBUG
00568 void pconf_whiteout_template_list_trace_real(const char *name, const pconf_whiteout_template_list_ty *value);
00569 #define pconf_whiteout_template_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_whiteout_template_list_trace_real(trace_stringize(x), x), 0)))
00570 #else
00571 #define pconf_whiteout_template_list_trace(x)
00572 #endif
00573
00574 #ifndef pconf_filename_pattern_accept_list_DEF
00575 #define pconf_filename_pattern_accept_list_DEF
00576 struct pconf_filename_pattern_accept_list_ty
00577 {
00578 size_t length;
00579 size_t maximum;
00580 string_ty **list;
00581 };
00582 #endif // pconf_filename_pattern_accept_list_DEF
00583
00584 extern meta_type pconf_filename_pattern_accept_list_type;
00585
00586 pconf_filename_pattern_accept_list_ty *pconf_filename_pattern_accept_list_copy(pconf_filename_pattern_accept_list_ty *);
00587 pconf_filename_pattern_accept_list_ty *pconf_filename_pattern_accept_list_clone(pconf_filename_pattern_accept_list_ty *);
00588 void pconf_filename_pattern_accept_list_write(const output::pointer &fp, const char *name, pconf_filename_pattern_accept_list_ty *value);
00589 void pconf_filename_pattern_accept_list_write_xml(const output::pointer &fp, const char *name, pconf_filename_pattern_accept_list_ty *value);
00590 #ifdef DEBUG
00591 void pconf_filename_pattern_accept_list_trace_real(const char *name, const pconf_filename_pattern_accept_list_ty *value);
00592 #define pconf_filename_pattern_accept_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_filename_pattern_accept_list_trace_real(trace_stringize(x), x), 0)))
00593 #else
00594 #define pconf_filename_pattern_accept_list_trace(x)
00595 #endif
00596
00597 #ifndef pconf_filename_pattern_reject_list_DEF
00598 #define pconf_filename_pattern_reject_list_DEF
00599 struct pconf_filename_pattern_reject_list_ty
00600 {
00601 size_t length;
00602 size_t maximum;
00603 string_ty **list;
00604 };
00605 #endif // pconf_filename_pattern_reject_list_DEF
00606
00607 extern meta_type pconf_filename_pattern_reject_list_type;
00608
00609 pconf_filename_pattern_reject_list_ty *pconf_filename_pattern_reject_list_copy(pconf_filename_pattern_reject_list_ty *);
00610 pconf_filename_pattern_reject_list_ty *pconf_filename_pattern_reject_list_clone(pconf_filename_pattern_reject_list_ty *);
00611 void pconf_filename_pattern_reject_list_write(const output::pointer &fp, const char *name, pconf_filename_pattern_reject_list_ty *value);
00612 void pconf_filename_pattern_reject_list_write_xml(const output::pointer &fp, const char *name, pconf_filename_pattern_reject_list_ty *value);
00613 #ifdef DEBUG
00614 void pconf_filename_pattern_reject_list_trace_real(const char *name, const pconf_filename_pattern_reject_list_ty *value);
00615 #define pconf_filename_pattern_reject_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_filename_pattern_reject_list_trace_real(trace_stringize(x), x), 0)))
00616 #else
00617 #define pconf_filename_pattern_reject_list_trace(x)
00618 #endif
00619
00620 #ifndef pconf_trojan_horse_suspect_list_DEF
00621 #define pconf_trojan_horse_suspect_list_DEF
00622 struct pconf_trojan_horse_suspect_list_ty
00623 {
00624 size_t length;
00625 size_t maximum;
00626 string_ty **list;
00627 };
00628 #endif // pconf_trojan_horse_suspect_list_DEF
00629
00630 extern meta_type pconf_trojan_horse_suspect_list_type;
00631
00632 pconf_trojan_horse_suspect_list_ty *pconf_trojan_horse_suspect_list_copy(pconf_trojan_horse_suspect_list_ty *);
00633 pconf_trojan_horse_suspect_list_ty *pconf_trojan_horse_suspect_list_clone(pconf_trojan_horse_suspect_list_ty *);
00634 void pconf_trojan_horse_suspect_list_write(const output::pointer &fp, const char *name, pconf_trojan_horse_suspect_list_ty *value);
00635 void pconf_trojan_horse_suspect_list_write_xml(const output::pointer &fp, const char *name, pconf_trojan_horse_suspect_list_ty *value);
00636 #ifdef DEBUG
00637 void pconf_trojan_horse_suspect_list_trace_real(const char *name, const pconf_trojan_horse_suspect_list_ty *value);
00638 #define pconf_trojan_horse_suspect_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_trojan_horse_suspect_list_trace_real(trace_stringize(x), x), 0)))
00639 #else
00640 #define pconf_trojan_horse_suspect_list_trace(x)
00641 #endif
00642
00643 #ifndef pconf_build_time_adjust_DEF
00644 #define pconf_build_time_adjust_DEF
00645 enum pconf_build_time_adjust_ty
00646 {
00647 pconf_build_time_adjust_adjust_and_sleep,
00648 pconf_build_time_adjust_adjust_only,
00649 pconf_build_time_adjust_dont_adjust
00650 };
00651 #define pconf_build_time_adjust_max 3
00652 #endif // pconf_build_time_adjust_DEF
00653
00654 extern meta_type pconf_build_time_adjust_type;
00655
00656 void pconf_build_time_adjust_write(const output::pointer &fp, const char *name, pconf_build_time_adjust_ty value, bool show);
00657 void pconf_build_time_adjust_write_xml(const output::pointer &fp, const char *name, pconf_build_time_adjust_ty value, bool show);
00658 const char *pconf_build_time_adjust_ename(pconf_build_time_adjust_ty);
00659
00660 #ifndef pconf_unchanged_file_develop_end_policy_DEF
00661 #define pconf_unchanged_file_develop_end_policy_DEF
00662 enum pconf_unchanged_file_develop_end_policy_ty
00663 {
00664 pconf_unchanged_file_develop_end_policy_ignore,
00665 pconf_unchanged_file_develop_end_policy_warning,
00666 pconf_unchanged_file_develop_end_policy_error
00667 };
00668 #define pconf_unchanged_file_develop_end_policy_max 3
00669 #endif // pconf_unchanged_file_develop_end_policy_DEF
00670
00671 extern meta_type pconf_unchanged_file_develop_end_policy_type;
00672
00673 void pconf_unchanged_file_develop_end_policy_write(const output::pointer &fp, const char *name, pconf_unchanged_file_develop_end_policy_ty value, bool show);
00674 void pconf_unchanged_file_develop_end_policy_write_xml(const output::pointer &fp, const char *name, pconf_unchanged_file_develop_end_policy_ty value, bool show);
00675 const char *pconf_unchanged_file_develop_end_policy_ename(pconf_unchanged_file_develop_end_policy_ty);
00676
00677 #ifndef pconf_unchanged_file_integrate_pass_policy_DEF
00678 #define pconf_unchanged_file_integrate_pass_policy_DEF
00679 enum pconf_unchanged_file_integrate_pass_policy_ty
00680 {
00681 pconf_unchanged_file_integrate_pass_policy_ignore,
00682 pconf_unchanged_file_integrate_pass_policy_warning,
00683 pconf_unchanged_file_integrate_pass_policy_remove
00684 };
00685 #define pconf_unchanged_file_integrate_pass_policy_max 3
00686 #endif // pconf_unchanged_file_integrate_pass_policy_DEF
00687
00688 extern meta_type pconf_unchanged_file_integrate_pass_policy_type;
00689
00690 void pconf_unchanged_file_integrate_pass_policy_write(const output::pointer &fp, const char *name, pconf_unchanged_file_integrate_pass_policy_ty value, bool show);
00691 void pconf_unchanged_file_integrate_pass_policy_write_xml(const output::pointer &fp, const char *name, pconf_unchanged_file_integrate_pass_policy_ty value, bool show);
00692 const char *pconf_unchanged_file_integrate_pass_policy_ename(pconf_unchanged_file_integrate_pass_policy_ty);
00693
00694 #ifndef pconf_clean_exceptions_list_DEF
00695 #define pconf_clean_exceptions_list_DEF
00696 struct pconf_clean_exceptions_list_ty
00697 {
00698 size_t length;
00699 size_t maximum;
00700 string_ty **list;
00701 };
00702 #endif // pconf_clean_exceptions_list_DEF
00703
00704 extern meta_type pconf_clean_exceptions_list_type;
00705
00706 pconf_clean_exceptions_list_ty *pconf_clean_exceptions_list_copy(pconf_clean_exceptions_list_ty *);
00707 pconf_clean_exceptions_list_ty *pconf_clean_exceptions_list_clone(pconf_clean_exceptions_list_ty *);
00708 void pconf_clean_exceptions_list_write(const output::pointer &fp, const char *name, pconf_clean_exceptions_list_ty *value);
00709 void pconf_clean_exceptions_list_write_xml(const output::pointer &fp, const char *name, pconf_clean_exceptions_list_ty *value);
00710 #ifdef DEBUG
00711 void pconf_clean_exceptions_list_trace_real(const char *name, const pconf_clean_exceptions_list_ty *value);
00712 #define pconf_clean_exceptions_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_clean_exceptions_list_trace_real(trace_stringize(x), x), 0)))
00713 #else
00714 #define pconf_clean_exceptions_list_trace(x)
00715 #endif
00716
00717 #ifndef pconf_DEF
00718 #define pconf_DEF
00719
00720 #define pconf_configuration_directory_mask ((unsigned long)0)
00721 #define pconf_build_command_mask ((unsigned long)0)
00722 #define pconf_integration_directory_style_mask ((unsigned long)0)
00723 #define pconf_development_directory_style_mask ((unsigned long)0)
00724 #define pconf_development_build_command_mask ((unsigned long)0)
00725 #define pconf_build_time_adjust_notify_command_mask ((unsigned long)0)
00726 #define pconf_build_covers_all_architectures_mask ((unsigned long)1 << 0)
00727 #define pconf_test_covers_all_architectures_mask ((unsigned long)1 << 1)
00728 #define pconf_change_file_command_mask ((unsigned long)0)
00729 #define pconf_new_file_command_mask ((unsigned long)0)
00730 #define pconf_new_test_command_mask ((unsigned long)0)
00731 #define pconf_copy_file_command_mask ((unsigned long)0)
00732 #define pconf_remove_file_command_mask ((unsigned long)0)
00733 #define pconf_change_file_undo_command_mask ((unsigned long)0)
00734 #define pconf_new_file_undo_command_mask ((unsigned long)0)
00735 #define pconf_new_test_undo_command_mask ((unsigned long)0)
00736 #define pconf_copy_file_undo_command_mask ((unsigned long)0)
00737 #define pconf_remove_file_undo_command_mask ((unsigned long)0)
00738 #define pconf_make_transparent_command_mask ((unsigned long)0)
00739 #define pconf_make_transparent_undo_command_mask ((unsigned long)0)
00740 #define pconf_project_file_command_mask ((unsigned long)0)
00741 #define pconf_develop_begin_command_mask ((unsigned long)0)
00742 #define pconf_develop_begin_undo_command_mask ((unsigned long)0)
00743 #define pconf_integrate_begin_command_mask ((unsigned long)0)
00744 #define pconf_integrate_begin_undo_command_mask ((unsigned long)0)
00745 #define pconf_link_integration_directory_mask ((unsigned long)1 << 2)
00746 #define pconf_integrate_begin_exceptions_mask ((unsigned long)0)
00747 #define pconf_create_symlinks_before_build_mask ((unsigned long)1 << 3)
00748 #define pconf_create_symlinks_before_integration_build_mask ((unsigned long)1 << 4)
00749 #define pconf_remove_symlinks_after_build_mask ((unsigned long)1 << 5)
00750 #define pconf_remove_symlinks_after_integration_build_mask ((unsigned long)1 << 6)
00751 #define pconf_symlink_exceptions_mask ((unsigned long)0)
00752 #define pconf_history_create_command_mask ((unsigned long)0)
00753 #define pconf_history_get_command_mask ((unsigned long)0)
00754 #define pconf_history_put_command_mask ((unsigned long)0)
00755 #define pconf_history_query_command_mask ((unsigned long)0)
00756 #define pconf_history_transaction_begin_command_mask ((unsigned long)0)
00757 #define pconf_history_transaction_end_command_mask ((unsigned long)0)
00758 #define pconf_history_transaction_abort_command_mask ((unsigned long)0)
00759 #define pconf_history_put_trashes_file_mask ((unsigned long)1 << 7)
00760 #define pconf_history_content_limitation_mask ((unsigned long)1 << 8)
00761 #define pconf_history_label_command_mask ((unsigned long)0)
00762 #define pconf_diff_command_mask ((unsigned long)0)
00763 #define pconf_diff3_command_mask ((unsigned long)0)
00764 #define pconf_merge_command_mask ((unsigned long)0)
00765 #define pconf_patch_diff_command_mask ((unsigned long)0)
00766 #define pconf_annotate_diff_command_mask ((unsigned long)0)
00767 #define pconf_test_command_mask ((unsigned long)0)
00768 #define pconf_development_test_command_mask ((unsigned long)0)
00769 #define pconf_batch_test_command_mask ((unsigned long)0)
00770 #define pconf_architecture_discriminator_command_mask ((unsigned long)0)
00771 #define pconf_architecture_mask ((unsigned long)0)
00772 #define pconf_file_template_mask ((unsigned long)0)
00773 #define pconf_whiteout_template_mask ((unsigned long)0)
00774 #define pconf_maximum_filename_length_mask ((unsigned long)1 << 9)
00775 #define pconf_posix_filename_charset_mask ((unsigned long)1 << 10)
00776 #define pconf_dos_filename_required_mask ((unsigned long)1 << 11)
00777 #define pconf_windows_filename_required_mask ((unsigned long)1 << 12)
00778 #define pconf_shell_safe_filenames_mask ((unsigned long)1 << 13)
00779 #define pconf_allow_white_space_in_filenames_mask ((unsigned long)1 << 14)
00780 #define pconf_allow_non_ascii_filenames_mask ((unsigned long)1 << 15)
00781 #define pconf_filename_pattern_accept_mask ((unsigned long)0)
00782 #define pconf_filename_pattern_reject_mask ((unsigned long)0)
00783 #define pconf_new_test_filename_mask ((unsigned long)0)
00784 #define pconf_development_directory_template_mask ((unsigned long)0)
00785 #define pconf_metrics_filename_pattern_mask ((unsigned long)0)
00786 #define pconf_trojan_horse_suspect_mask ((unsigned long)0)
00787 #define pconf_project_specific_mask ((unsigned long)0)
00788 #define pconf_build_time_adjust_mask ((unsigned long)1 << 16)
00789 #define pconf_signed_off_by_mask ((unsigned long)1 << 17)
00790 #define pconf_review_policy_command_mask ((unsigned long)0)
00791 #define pconf_develop_end_policy_command_mask ((unsigned long)0)
00792 #define pconf_unchanged_file_develop_end_policy_mask ((unsigned long)1 << 18)
00793 #define pconf_unchanged_file_integrate_pass_policy_mask ((unsigned long)1 << 19)
00794 #define pconf_cache_project_file_list_for_each_delta_mask ((unsigned long)1 << 20)
00795 #define pconf_clean_exceptions_mask ((unsigned long)0)
00796
00797 struct pconf_ty
00798 {
00799 long reference_count;
00800 unsigned long mask;
00801 string_ty *errpos;
00802 string_ty *configuration_directory;
00803 string_ty *build_command;
00804 work_area_style_ty *integration_directory_style;
00805 work_area_style_ty *development_directory_style;
00806 string_ty *development_build_command;
00807 string_ty *build_time_adjust_notify_command;
00808 bool build_covers_all_architectures;
00809 bool test_covers_all_architectures;
00810 string_ty *change_file_command;
00811 string_ty *new_file_command;
00812 string_ty *new_test_command;
00813 string_ty *copy_file_command;
00814 string_ty *remove_file_command;
00815 string_ty *change_file_undo_command;
00816 string_ty *new_file_undo_command;
00817 string_ty *new_test_undo_command;
00818 string_ty *copy_file_undo_command;
00819 string_ty *remove_file_undo_command;
00820 string_ty *make_transparent_command;
00821 string_ty *make_transparent_undo_command;
00822 string_ty *project_file_command;
00823 string_ty *develop_begin_command;
00824 string_ty *develop_begin_undo_command;
00825 string_ty *integrate_begin_command;
00826 string_ty *integrate_begin_undo_command;
00827 bool link_integration_directory;
00828 pconf_integrate_begin_exceptions_list_ty *integrate_begin_exceptions;
00829 bool create_symlinks_before_build;
00830 bool create_symlinks_before_integration_build;
00831 bool remove_symlinks_after_build;
00832 bool remove_symlinks_after_integration_build;
00833 pconf_symlink_exceptions_list_ty *symlink_exceptions;
00834 string_ty *history_create_command;
00835 string_ty *history_get_command;
00836 string_ty *history_put_command;
00837 string_ty *history_query_command;
00838 string_ty *history_transaction_begin_command;
00839 string_ty *history_transaction_end_command;
00840 string_ty *history_transaction_abort_command;
00841 pconf_history_put_trashes_file_ty history_put_trashes_file;
00842 pconf_history_content_limitation_ty history_content_limitation;
00843 string_ty *history_label_command;
00844 string_ty *diff_command;
00845 string_ty *diff3_command;
00846 string_ty *merge_command;
00847 string_ty *patch_diff_command;
00848 string_ty *annotate_diff_command;
00849 string_ty *test_command;
00850 string_ty *development_test_command;
00851 string_ty *batch_test_command;
00852 string_ty *architecture_discriminator_command;
00853 pconf_architecture_list_ty *architecture;
00854 pconf_file_template_list_ty *file_template;
00855 pconf_whiteout_template_list_ty *whiteout_template;
00856 long maximum_filename_length;
00857 bool posix_filename_charset;
00858 bool dos_filename_required;
00859 bool windows_filename_required;
00860 bool shell_safe_filenames;
00861 bool allow_white_space_in_filenames;
00862 bool allow_non_ascii_filenames;
00863 pconf_filename_pattern_accept_list_ty *filename_pattern_accept;
00864 pconf_filename_pattern_reject_list_ty *filename_pattern_reject;
00865 string_ty *new_test_filename;
00866 string_ty *development_directory_template;
00867 string_ty *metrics_filename_pattern;
00868 pconf_trojan_horse_suspect_list_ty *trojan_horse_suspect;
00869 attributes_list_ty *project_specific;
00870 pconf_build_time_adjust_ty build_time_adjust;
00871 bool signed_off_by;
00872 string_ty *review_policy_command;
00873 string_ty *develop_end_policy_command;
00874 pconf_unchanged_file_develop_end_policy_ty unchanged_file_develop_end_policy;
00875 pconf_unchanged_file_integrate_pass_policy_ty unchanged_file_integrate_pass_policy;
00876 bool cache_project_file_list_for_each_delta;
00877 pconf_clean_exceptions_list_ty *clean_exceptions;
00878 };
00879 #endif // pconf_DEF
00880
00881 extern meta_type pconf_type;
00882
00883 void pconf_write(const output::pointer &fp, pconf_ty *value);
00884 void pconf_write_xml(const output::pointer &fp, pconf_ty *value);
00885 pconf_ty *pconf_copy(pconf_ty *);
00886 pconf_ty *pconf_clone(pconf_ty *);
00887 #ifdef DEBUG
00888 void pconf_trace_real(const char *name, const pconf_ty *value);
00889 #define pconf_trace(x) ((void)(trace_pretest_ && (trace_where_, pconf_trace_real(trace_stringize(x), x), 0)))
00890 #else
00891 #define pconf_trace(x)
00892 #endif
00893
00910 void pconf_write_file(string_ty *filename, pconf_ty *value, int comp);
00911
00928 void pconf_write_file(const nstring &filnam, pconf_ty *value, bool comp);
00929
00946 pconf_ty *pconf_read_file(string_ty *filename);
00947
00964 pconf_ty *pconf_read_file(const nstring &filename);
00965 void pconf__rpt_init(void);
00966
00967 #endif // LIBAEGIS_PCONF_H