6 #ifndef pipsdbm_header_included
7 #define pipsdbm_header_included
33 #include "resources.h"
35 #define PIPSDBM_DEBUG_LEVEL "PIPSDBM_DEBUG_LEVEL"
37 #define PROGRAM_RESOURCE_OWNER ""
39 #define WORKSPACE_TMP_SPACE "Tmp"
40 #define WORKSPACE_SRC_SPACE "Src"
41 #define WORKSPACE_PROGRAM_SPACE "Program"
42 #define WORKSPACE_METADATA_SPACE "Metadata"
49 #define MAIN_FILE_NAMES "PROGRAM.main"
74 #define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val) \
75 db_put_or_update_memory_resource(res_name, own_name, (void*) res_val, true)
93 #define DB_PUT_FILE_RESOURCE DB_PUT_MEMORY_RESOURCE
111 #define DB_PUT_NEW_FILE_RESOURCE(res_name, own_name, res_val) \
112 db_put_or_update_memory_resource(res_name, own_name, (void*) res_val, false)
114 #define db_get_file_resource db_get_memory_resource
115 #define db_unput_a_resource(r,o) db_delete_resource(r,o)
116 #define build_pgmwd db_get_workspace_directory_name
118 #define db_make_subdirectory(n) free(db_get_directory_name_for_module(n))
string db_get_memory_resource(const char *, const char *, bool)
Return the pointer to the resource, whatever it is.
gen_array_t db_get_compilation_unit_list(void)
Get an array of all the compilation units of a workspace.
gen_array_t db_get_module_list(void)
Get an array of all the modules (functions, procedures and compilation units) of a workspace.
bool db_module_exists_p(const char *)
Return whether name is a "valid" module.
gen_array_t db_get_function_list(void)
Get an array of all the functions and procedures (not compilation units) of a workspace.
void db_put_or_update_memory_resource(const char *, const char *, void *, bool)
Put a resource into the current workspace database.
bool workspace_exists_p(const char *)
void dbm_stop_timer(void)
accumulate dbm related times for one phase
int db_unput_resources(const char *)
Delete all the resources of a given type "rname".
void dbll_save_and_free_resource(const char *, const char *, void *, bool)
void db_invalidate_memory_resource(const char *, const char *)
bool db_close_workspace(bool)
gen_chunkp pipsdbm_read_statement_function(FILE *)
Should use a higher level pipsdbm_read_statement_mapping() to survive to XML.
string db_get_resource_id(const char *, const char *)
some way to identify a resource...
void dbll_free_resource(const char *, const char *, void *)
void * dbll_load_resource(const char *, const char *)
void init_request_timers(void)
Functions for timing one request.
int db_inc_logical_time(void)
0 means not set...
void dbm_start_timer(void)
bool pipsdbm_consistent_statement_function(gen_chunkp)
int dbll_stat_resource_file(const char *, const char *, bool)
string get_main_entity_name(void)
Return the local name of the main module if it is available, or the local name of any module by defau...
int db_delete_obsolete_resources(bool(*)(const char *, const char *))
delete all obsolete resources before a close.
hash_table declarations_read(FILE *)
bool db_touch_resource(const char *, const char *)
touch logical time for resource[owner], possibly behind the back of pipsdbm.
void db_save_and_free_memory_resource_if_any(const char *, const char *, bool)
string db_get_directory_name_for_module(const char *)
returns the allocated and mkdir'ed directory for module name
void db_clean_all_required_resources(void)
void pipsdbm_write_statement_mapping(FILE *, statement_mapping)
Write a statement mapping.
void db_print_all_required_resources(FILE *)
string get_resource_file_name(const char *, const char *)
allocate a full file name for the given resource.
void declarations_write(FILE *, hash_table)
Functions to read and write declarations resource, which is a hash table whose key and value are stri...
int db_time_of_resource(const char *, const char *)
FILE * genread_in
symbols exported by parser / lexer
void free_static_control_mapping(statement_mapping)
Modification Dec 11 1995: ne pas utiliser free_static_control car il libere des champs qui appartienn...
bool dbll_check_resource(const char *, const char *, void *)
Internal consistency of the resource, not the global consistency wrt other resources and pipsmake rul...
void db_reset_current_module_name(void)
bool db_open_workspace(const char *)
gen_array_t db_get_module_list_initial_order(void)
void get_string_timers(string *, string *)
compute times elapsed since init_log_timers(), i.e.
string db_get_current_builder_name(void)
void dbll_save_resource(const char *, const char *, void *)
save rname of oname p.
void pipsdbm_free_statement_mapping(statement_mapping)
bool dbll_storable_p(const char *)
void get_request_string_timers(string *, string *, string *)
compute times elapsed since init_request_log_timers(), i.e.
string db_get_current_module_name(void)
Also used to check whether set...
int dbll_number_of_resources(void)
hash_table pipsdbm_read_statement_mapping(FILE *)
Read a statement mapping.
void db_reset_current_builder_name(void)
void db_delete_resource(const char *, const char *)
Delete a resource.
int db_get_logical_time(void)
bool dbll_database_managed_file_p(const char *)
returns whether the file is managed within the database.
void init_resource_usage_check(void)
init variables
bool db_resource_required_or_available_p(const char *, const char *)
from now on we must not know about the database internals?
void init_log_timers(void)
Functions for timing one phase.
string db_get_current_workspace_directory(void)
int dbll_stat_local_file(const char *, bool)
It is impportant that the workspace directory does not appear in the file name so as to allow workspa...
void dump_all_db_resource_status(FILE *, string)
list db_retrieve_resources(const char *)
Retrieve all the db resources of a given resource type, "rname".
void dont_interrupt_pipsmake_asap(void)
void db_create_pips_database(void)
??? statement_mapping
void db_reset_pips_database_if_necessary(void)
string db_get_meta_data_directory(void)
bool db_create_workspace(const char *)
bool some_main_entity_p(void)
util.c
bool db_resource_p(const char *, const char *)
true if exists and in loaded or stored state.
void db_checkpoint_workspace(void)
bool db_open_pips_database(FILE *)
void get_logged_resources(set *, set *)
Get the made sets.
bool workspace_ok_p(const char *)
void add_read_resource(string, string)
add an element to the read set
bool db_set_current_module_name(const char *)
void interrupt_pipsmake_asap(void)
misc.c
char * pipsdbm_read_entities(FILE *)
externals.c
void db_set_resource_as_required(const char *, const char *)
bool dbll_very_special_resource_p(const char *, const char *)
string db_get_current_workspace_name(void)
the function is used to check that there is some current workspace...
string db_build_file_resource_name(const char *, const char *, const char *)
returns an allocated file name for a file resource.
void pipsdbm_write_statement_function(FILE *, gen_chunkp)
the stored stuff need be based on the ordering...
void db_delete_all_resources(void)
FC: I added this function to clean all resources, hence avoiding to save them.
string dbll_get_ith_resource_name(int)
string db_resource_name(void *)
To be used for debugging.
bool db_update_time(const char *, const char *)
this should really be a put.
bool pipsdbm_check_statement_mapping(statement_mapping)
a little bit partial, because domain are not checked.
void add_write_resource(string, string)
add an element to the write set
void dbll_unlink_resource_file(const char *, const char *, bool)
bool displayable_file_p(const char *)
rather approximated.
bool db_resource_is_required_p(const char *, const char *)
true if exists and in required state.
void db_close_pips_database(void)
string db_resource_owner_name(void *)
To be used for debugging.
void db_set_current_builder_name(const char *)
string db_get_workspace_directory_name(const char *)
returns an allocated string.
void db_save_pips_database(FILE *)
void pipsdbm_free_entities(char *)
bool workspace_name_p(const char *)
workspace.c
const char * dbll_current_module
lowlevel.c
bool interrupt_pipsmake_asap_p(void)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.
A gen_chunk is used to store every object.