00001
00002
00003
00004
00005
00006
00007
00008 #ifndef LIBAEGIS_PSTATE_H
00009 #define LIBAEGIS_PSTATE_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 pstate_copyright_years_list_DEF
00229 #define pstate_copyright_years_list_DEF
00230 struct pstate_copyright_years_list_ty
00231 {
00232 size_t length;
00233 size_t maximum;
00234 long *list;
00235 };
00236 #endif // pstate_copyright_years_list_DEF
00237
00238 extern meta_type pstate_copyright_years_list_type;
00239
00240 pstate_copyright_years_list_ty *pstate_copyright_years_list_copy(pstate_copyright_years_list_ty *);
00241 pstate_copyright_years_list_ty *pstate_copyright_years_list_clone(pstate_copyright_years_list_ty *);
00242 void pstate_copyright_years_list_write(const output::pointer &fp, const char *name, pstate_copyright_years_list_ty *value);
00243 void pstate_copyright_years_list_write_xml(const output::pointer &fp, const char *name, pstate_copyright_years_list_ty *value);
00244 #ifdef DEBUG
00245 void pstate_copyright_years_list_trace_real(const char *name, const pstate_copyright_years_list_ty *value);
00246 #define pstate_copyright_years_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_copyright_years_list_trace_real(trace_stringize(x), x), 0)))
00247 #else
00248 #define pstate_copyright_years_list_trace(x)
00249 #endif
00250
00251 #ifndef pstate_src_DEF
00252 #define pstate_src_DEF
00253
00254 #define pstate_src_file_name_mask ((unsigned long)0)
00255 #define pstate_src_usage_mask ((unsigned long)1 << 0)
00256 #define pstate_src_edit_number_mask ((unsigned long)0)
00257 #define pstate_src_locked_by_mask ((unsigned long)1 << 1)
00258 #define pstate_src_about_to_be_created_by_mask ((unsigned long)1 << 2)
00259 #define pstate_src_deleted_by_mask ((unsigned long)1 << 3)
00260
00261 struct pstate_src_ty
00262 {
00263 long reference_count;
00264 unsigned long mask;
00265 string_ty *errpos;
00266 string_ty *file_name;
00267 file_usage_ty usage;
00268 string_ty *edit_number;
00269 long locked_by;
00270 long about_to_be_created_by;
00271 long deleted_by;
00272 };
00273 #endif // pstate_src_DEF
00274
00275 extern meta_type pstate_src_type;
00276
00277 void pstate_src_write(const output::pointer &fp, const char *name, pstate_src_ty *value);
00278 void pstate_src_write_xml(const output::pointer &fp, const char *name, pstate_src_ty *value);
00279 pstate_src_ty *pstate_src_copy(pstate_src_ty *);
00280 pstate_src_ty *pstate_src_clone(pstate_src_ty *);
00281 #ifdef DEBUG
00282 void pstate_src_trace_real(const char *name, const pstate_src_ty *value);
00283 #define pstate_src_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_src_trace_real(trace_stringize(x), x), 0)))
00284 #else
00285 #define pstate_src_trace(x)
00286 #endif
00287
00288 #ifndef pstate_src_list_DEF
00289 #define pstate_src_list_DEF
00290 struct pstate_src_list_ty
00291 {
00292 size_t length;
00293 size_t maximum;
00294 pstate_src_ty **list;
00295 };
00296 #endif // pstate_src_list_DEF
00297
00298 extern meta_type pstate_src_list_type;
00299
00300 pstate_src_list_ty *pstate_src_list_copy(pstate_src_list_ty *);
00301 pstate_src_list_ty *pstate_src_list_clone(pstate_src_list_ty *);
00302 void pstate_src_list_write(const output::pointer &fp, const char *name, pstate_src_list_ty *value);
00303 void pstate_src_list_write_xml(const output::pointer &fp, const char *name, pstate_src_list_ty *value);
00304 #ifdef DEBUG
00305 void pstate_src_list_trace_real(const char *name, const pstate_src_list_ty *value);
00306 #define pstate_src_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_src_list_trace_real(trace_stringize(x), x), 0)))
00307 #else
00308 #define pstate_src_list_trace(x)
00309 #endif
00310
00311 #ifndef pstate_history_name_list_DEF
00312 #define pstate_history_name_list_DEF
00313 struct pstate_history_name_list_ty
00314 {
00315 size_t length;
00316 size_t maximum;
00317 string_ty **list;
00318 };
00319 #endif // pstate_history_name_list_DEF
00320
00321 extern meta_type pstate_history_name_list_type;
00322
00323 pstate_history_name_list_ty *pstate_history_name_list_copy(pstate_history_name_list_ty *);
00324 pstate_history_name_list_ty *pstate_history_name_list_clone(pstate_history_name_list_ty *);
00325 void pstate_history_name_list_write(const output::pointer &fp, const char *name, pstate_history_name_list_ty *value);
00326 void pstate_history_name_list_write_xml(const output::pointer &fp, const char *name, pstate_history_name_list_ty *value);
00327 #ifdef DEBUG
00328 void pstate_history_name_list_trace_real(const char *name, const pstate_history_name_list_ty *value);
00329 #define pstate_history_name_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_history_name_list_trace_real(trace_stringize(x), x), 0)))
00330 #else
00331 #define pstate_history_name_list_trace(x)
00332 #endif
00333
00334 #ifndef pstate_history_DEF
00335 #define pstate_history_DEF
00336
00337 #define pstate_history_delta_number_mask ((unsigned long)1 << 0)
00338 #define pstate_history_change_number_mask ((unsigned long)1 << 1)
00339 #define pstate_history_name_mask ((unsigned long)0)
00340
00341 struct pstate_history_ty
00342 {
00343 long reference_count;
00344 unsigned long mask;
00345 string_ty *errpos;
00346 long delta_number;
00347 long change_number;
00348 pstate_history_name_list_ty *name;
00349 };
00350 #endif // pstate_history_DEF
00351
00352 extern meta_type pstate_history_type;
00353
00354 void pstate_history_write(const output::pointer &fp, const char *name, pstate_history_ty *value);
00355 void pstate_history_write_xml(const output::pointer &fp, const char *name, pstate_history_ty *value);
00356 pstate_history_ty *pstate_history_copy(pstate_history_ty *);
00357 pstate_history_ty *pstate_history_clone(pstate_history_ty *);
00358 #ifdef DEBUG
00359 void pstate_history_trace_real(const char *name, const pstate_history_ty *value);
00360 #define pstate_history_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_history_trace_real(trace_stringize(x), x), 0)))
00361 #else
00362 #define pstate_history_trace(x)
00363 #endif
00364
00365 #ifndef pstate_history_list_DEF
00366 #define pstate_history_list_DEF
00367 struct pstate_history_list_ty
00368 {
00369 size_t length;
00370 size_t maximum;
00371 pstate_history_ty **list;
00372 };
00373 #endif // pstate_history_list_DEF
00374
00375 extern meta_type pstate_history_list_type;
00376
00377 pstate_history_list_ty *pstate_history_list_copy(pstate_history_list_ty *);
00378 pstate_history_list_ty *pstate_history_list_clone(pstate_history_list_ty *);
00379 void pstate_history_list_write(const output::pointer &fp, const char *name, pstate_history_list_ty *value);
00380 void pstate_history_list_write_xml(const output::pointer &fp, const char *name, pstate_history_list_ty *value);
00381 #ifdef DEBUG
00382 void pstate_history_list_trace_real(const char *name, const pstate_history_list_ty *value);
00383 #define pstate_history_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_history_list_trace_real(trace_stringize(x), x), 0)))
00384 #else
00385 #define pstate_history_list_trace(x)
00386 #endif
00387
00388 #ifndef pstate_change_list_DEF
00389 #define pstate_change_list_DEF
00390 struct pstate_change_list_ty
00391 {
00392 size_t length;
00393 size_t maximum;
00394 long *list;
00395 };
00396 #endif // pstate_change_list_DEF
00397
00398 extern meta_type pstate_change_list_type;
00399
00400 pstate_change_list_ty *pstate_change_list_copy(pstate_change_list_ty *);
00401 pstate_change_list_ty *pstate_change_list_clone(pstate_change_list_ty *);
00402 void pstate_change_list_write(const output::pointer &fp, const char *name, pstate_change_list_ty *value);
00403 void pstate_change_list_write_xml(const output::pointer &fp, const char *name, pstate_change_list_ty *value);
00404 #ifdef DEBUG
00405 void pstate_change_list_trace_real(const char *name, const pstate_change_list_ty *value);
00406 #define pstate_change_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_change_list_trace_real(trace_stringize(x), x), 0)))
00407 #else
00408 #define pstate_change_list_trace(x)
00409 #endif
00410
00411 #ifndef pstate_administrator_list_DEF
00412 #define pstate_administrator_list_DEF
00413 struct pstate_administrator_list_ty
00414 {
00415 size_t length;
00416 size_t maximum;
00417 string_ty **list;
00418 };
00419 #endif // pstate_administrator_list_DEF
00420
00421 extern meta_type pstate_administrator_list_type;
00422
00423 pstate_administrator_list_ty *pstate_administrator_list_copy(pstate_administrator_list_ty *);
00424 pstate_administrator_list_ty *pstate_administrator_list_clone(pstate_administrator_list_ty *);
00425 void pstate_administrator_list_write(const output::pointer &fp, const char *name, pstate_administrator_list_ty *value);
00426 void pstate_administrator_list_write_xml(const output::pointer &fp, const char *name, pstate_administrator_list_ty *value);
00427 #ifdef DEBUG
00428 void pstate_administrator_list_trace_real(const char *name, const pstate_administrator_list_ty *value);
00429 #define pstate_administrator_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_administrator_list_trace_real(trace_stringize(x), x), 0)))
00430 #else
00431 #define pstate_administrator_list_trace(x)
00432 #endif
00433
00434 #ifndef pstate_developer_list_DEF
00435 #define pstate_developer_list_DEF
00436 struct pstate_developer_list_ty
00437 {
00438 size_t length;
00439 size_t maximum;
00440 string_ty **list;
00441 };
00442 #endif // pstate_developer_list_DEF
00443
00444 extern meta_type pstate_developer_list_type;
00445
00446 pstate_developer_list_ty *pstate_developer_list_copy(pstate_developer_list_ty *);
00447 pstate_developer_list_ty *pstate_developer_list_clone(pstate_developer_list_ty *);
00448 void pstate_developer_list_write(const output::pointer &fp, const char *name, pstate_developer_list_ty *value);
00449 void pstate_developer_list_write_xml(const output::pointer &fp, const char *name, pstate_developer_list_ty *value);
00450 #ifdef DEBUG
00451 void pstate_developer_list_trace_real(const char *name, const pstate_developer_list_ty *value);
00452 #define pstate_developer_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_developer_list_trace_real(trace_stringize(x), x), 0)))
00453 #else
00454 #define pstate_developer_list_trace(x)
00455 #endif
00456
00457 #ifndef pstate_reviewer_list_DEF
00458 #define pstate_reviewer_list_DEF
00459 struct pstate_reviewer_list_ty
00460 {
00461 size_t length;
00462 size_t maximum;
00463 string_ty **list;
00464 };
00465 #endif // pstate_reviewer_list_DEF
00466
00467 extern meta_type pstate_reviewer_list_type;
00468
00469 pstate_reviewer_list_ty *pstate_reviewer_list_copy(pstate_reviewer_list_ty *);
00470 pstate_reviewer_list_ty *pstate_reviewer_list_clone(pstate_reviewer_list_ty *);
00471 void pstate_reviewer_list_write(const output::pointer &fp, const char *name, pstate_reviewer_list_ty *value);
00472 void pstate_reviewer_list_write_xml(const output::pointer &fp, const char *name, pstate_reviewer_list_ty *value);
00473 #ifdef DEBUG
00474 void pstate_reviewer_list_trace_real(const char *name, const pstate_reviewer_list_ty *value);
00475 #define pstate_reviewer_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_reviewer_list_trace_real(trace_stringize(x), x), 0)))
00476 #else
00477 #define pstate_reviewer_list_trace(x)
00478 #endif
00479
00480 #ifndef pstate_integrator_list_DEF
00481 #define pstate_integrator_list_DEF
00482 struct pstate_integrator_list_ty
00483 {
00484 size_t length;
00485 size_t maximum;
00486 string_ty **list;
00487 };
00488 #endif // pstate_integrator_list_DEF
00489
00490 extern meta_type pstate_integrator_list_type;
00491
00492 pstate_integrator_list_ty *pstate_integrator_list_copy(pstate_integrator_list_ty *);
00493 pstate_integrator_list_ty *pstate_integrator_list_clone(pstate_integrator_list_ty *);
00494 void pstate_integrator_list_write(const output::pointer &fp, const char *name, pstate_integrator_list_ty *value);
00495 void pstate_integrator_list_write_xml(const output::pointer &fp, const char *name, pstate_integrator_list_ty *value);
00496 #ifdef DEBUG
00497 void pstate_integrator_list_trace_real(const char *name, const pstate_integrator_list_ty *value);
00498 #define pstate_integrator_list_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_integrator_list_trace_real(trace_stringize(x), x), 0)))
00499 #else
00500 #define pstate_integrator_list_trace(x)
00501 #endif
00502
00503 #ifndef pstate_DEF
00504 #define pstate_DEF
00505
00506 #define pstate_next_test_number_mask ((unsigned long)1 << 0)
00507 #define pstate_umask_mask ((unsigned long)1 << 1)
00508 #define pstate_description_mask ((unsigned long)0)
00509 #define pstate_owner_name_mask ((unsigned long)0)
00510 #define pstate_group_name_mask ((unsigned long)0)
00511 #define pstate_developer_may_review_mask ((unsigned long)1 << 2)
00512 #define pstate_developer_may_integrate_mask ((unsigned long)1 << 3)
00513 #define pstate_reviewer_may_integrate_mask ((unsigned long)1 << 4)
00514 #define pstate_developers_may_create_changes_mask ((unsigned long)1 << 5)
00515 #define pstate_forced_develop_begin_notify_command_mask ((unsigned long)0)
00516 #define pstate_develop_end_notify_command_mask ((unsigned long)0)
00517 #define pstate_develop_end_undo_notify_command_mask ((unsigned long)0)
00518 #define pstate_review_pass_notify_command_mask ((unsigned long)0)
00519 #define pstate_review_pass_undo_notify_command_mask ((unsigned long)0)
00520 #define pstate_review_fail_notify_command_mask ((unsigned long)0)
00521 #define pstate_integrate_pass_notify_command_mask ((unsigned long)0)
00522 #define pstate_integrate_fail_notify_command_mask ((unsigned long)0)
00523 #define pstate_default_development_directory_mask ((unsigned long)0)
00524 #define pstate_default_test_exemption_mask ((unsigned long)1 << 6)
00525 #define pstate_copyright_years_mask ((unsigned long)0)
00526 #define pstate_next_change_number_mask ((unsigned long)1 << 7)
00527 #define pstate_next_delta_number_mask ((unsigned long)1 << 8)
00528 #define pstate_src_mask ((unsigned long)0)
00529 #define pstate_history_mask ((unsigned long)0)
00530 #define pstate_change_mask ((unsigned long)0)
00531 #define pstate_administrator_mask ((unsigned long)0)
00532 #define pstate_developer_mask ((unsigned long)0)
00533 #define pstate_reviewer_mask ((unsigned long)0)
00534 #define pstate_integrator_mask ((unsigned long)0)
00535 #define pstate_currently_integrating_change_mask ((unsigned long)1 << 9)
00536 #define pstate_version_major_mask ((unsigned long)1 << 10)
00537 #define pstate_version_minor_mask ((unsigned long)1 << 11)
00538 #define pstate_version_previous_mask ((unsigned long)0)
00539
00540 struct pstate_ty
00541 {
00542 long reference_count;
00543 unsigned long mask;
00544 string_ty *errpos;
00545 long next_test_number;
00546 long umask;
00547 string_ty *description;
00548 string_ty *owner_name;
00549 string_ty *group_name;
00550 bool developer_may_review;
00551 bool developer_may_integrate;
00552 bool reviewer_may_integrate;
00553 bool developers_may_create_changes;
00554 string_ty *forced_develop_begin_notify_command;
00555 string_ty *develop_end_notify_command;
00556 string_ty *develop_end_undo_notify_command;
00557 string_ty *review_pass_notify_command;
00558 string_ty *review_pass_undo_notify_command;
00559 string_ty *review_fail_notify_command;
00560 string_ty *integrate_pass_notify_command;
00561 string_ty *integrate_fail_notify_command;
00562 string_ty *default_development_directory;
00563 bool default_test_exemption;
00564 pstate_copyright_years_list_ty *copyright_years;
00565 long next_change_number;
00566 long next_delta_number;
00567 pstate_src_list_ty *src;
00568 pstate_history_list_ty *history;
00569 pstate_change_list_ty *change;
00570 pstate_administrator_list_ty *administrator;
00571 pstate_developer_list_ty *developer;
00572 pstate_reviewer_list_ty *reviewer;
00573 pstate_integrator_list_ty *integrator;
00574 long currently_integrating_change;
00575 long version_major;
00576 long version_minor;
00577 string_ty *version_previous;
00578 };
00579 #endif // pstate_DEF
00580
00581 extern meta_type pstate_type;
00582
00583 void pstate_write(const output::pointer &fp, pstate_ty *value);
00584 void pstate_write_xml(const output::pointer &fp, pstate_ty *value);
00585 pstate_ty *pstate_copy(pstate_ty *);
00586 pstate_ty *pstate_clone(pstate_ty *);
00587 #ifdef DEBUG
00588 void pstate_trace_real(const char *name, const pstate_ty *value);
00589 #define pstate_trace(x) ((void)(trace_pretest_ && (trace_where_, pstate_trace_real(trace_stringize(x), x), 0)))
00590 #else
00591 #define pstate_trace(x)
00592 #endif
00593
00610 void pstate_write_file(string_ty *filename, pstate_ty *value, int comp);
00611
00628 void pstate_write_file(const nstring &filnam, pstate_ty *value, bool comp);
00629
00646 pstate_ty *pstate_read_file(string_ty *filename);
00647
00664 pstate_ty *pstate_read_file(const nstring &filename);
00665 void pstate__rpt_init(void);
00666
00667 #endif // LIBAEGIS_PSTATE_H