Moved the functions getting full paths for files and directories to

obidms.c/.h files
This commit is contained in:
Celine Mercier
2016-04-15 11:11:13 +02:00
parent 71492ad229
commit 527d3555f0
6 changed files with 23 additions and 27 deletions

View File

@ -510,7 +510,7 @@ char* get_full_path_of_avl_dir(OBIDMS_p dms, const char* avl_name)
{ {
char* avl_dir_name; char* avl_dir_name;
avl_dir_name = get_full_path(dms, INDEXER_DIR_NAME); avl_dir_name = obi_dms_get_full_path(dms, INDEXER_DIR_NAME);
if (avl_dir_name == NULL) if (avl_dir_name == NULL)
{ {
obidebug(1, "\nError getting path for the DMS AVL directory"); obidebug(1, "\nError getting path for the DMS AVL directory");
@ -1286,33 +1286,16 @@ int obi_avl_exists(OBIDMS_p dms, const char* avl_name)
{ {
struct stat buffer; struct stat buffer;
char* avl_dir_path; char* avl_dir_path;
char* avl_dir_relative_path;
int relative_path_size;
int check_dir; int check_dir;
// Build the AVL tree file path // Build the AVL tree file path
relative_path_size = strlen(avl_name) + strlen(INDEXER_DIR_NAME) + 2; avl_dir_path = get_full_path_of_avl_dir(dms, avl_name);
avl_dir_relative_path = (char*) malloc(relative_path_size*sizeof(char));
if (avl_dir_relative_path == NULL)
{
obi_set_errno(OBI_MALLOC_ERROR);
obidebug(1, "\nError allocating memory for the path to the AVL directory");
return -1;
}
strcpy(avl_dir_relative_path, INDEXER_DIR_NAME);
strcat(avl_dir_relative_path, "/");
strcat(avl_dir_relative_path, avl_name);
avl_dir_path = get_full_path(dms, avl_dir_relative_path);
if (avl_dir_path == NULL) if (avl_dir_path == NULL)
{
obidebug(1, "\nError getting the directory path for an AVL tree");
return -1; return -1;
}
check_dir = stat(avl_dir_path, &buffer); check_dir = stat(avl_dir_path, &buffer);
free(avl_dir_path); free(avl_dir_path);
free(avl_dir_relative_path);
if (check_dir == 0) if (check_dir == 0)
return 1; return 1;

View File

@ -590,7 +590,7 @@ int obi_dms_unlist_indexer(OBIDMS_p dms, Obi_indexer_p indexer)
} }
char* get_full_path(OBIDMS_p dms, const char* path_name) char* obi_dms_get_dms_path(OBIDMS_p dms)
{ {
char* full_path; char* full_path;
@ -602,8 +602,8 @@ char* get_full_path(OBIDMS_p dms, const char* path_name)
return NULL; return NULL;
} }
if (getcwd(full_path, MAX_PATH_LEN) == NULL) if (getcwd(full_path, MAX_PATH_LEN) == NULL) // TODO not sure at all about this because the DMS must be in the working directory.
{ { // Maybe better to store when opening, but opening function seems to assume that too.
obi_set_errno(OBI_UTILS_ERROR); obi_set_errno(OBI_UTILS_ERROR);
obidebug(1, "\nError getting the path to a file or directory"); obidebug(1, "\nError getting the path to a file or directory");
return NULL; return NULL;
@ -611,6 +611,16 @@ char* get_full_path(OBIDMS_p dms, const char* path_name)
strcat(full_path, "/"); strcat(full_path, "/");
strcat(full_path, dms->directory_name); strcat(full_path, dms->directory_name);
return full_path;
}
char* obi_dms_get_full_path(OBIDMS_p dms, const char* path_name)
{
char* full_path;
full_path = obi_dms_get_dms_path(dms);
strcat(full_path, "/"); strcat(full_path, "/");
strcat(full_path, path_name); strcat(full_path, path_name);
@ -623,7 +633,7 @@ DIR* opendir_in_dms(OBIDMS_p dms, const char* path_name)
char* full_path; char* full_path;
DIR* directory; DIR* directory;
full_path = get_full_path(dms, path_name); full_path = obi_dms_get_full_path(dms, path_name);
if (full_path == NULL) if (full_path == NULL)
return NULL; return NULL;

View File

@ -208,6 +208,9 @@ void obi_dms_list_indexer(OBIDMS_p dms, Obi_indexer_p indexer);
int obi_dms_unlist_indexer(OBIDMS_p dms, Obi_indexer_p indexer); int obi_dms_unlist_indexer(OBIDMS_p dms, Obi_indexer_p indexer);
char* obi_dms_get_path(OBIDMS_p dms);
/** TODO /** TODO
* @brief Internal function getting the full path of a file or a directory from its * @brief Internal function getting the full path of a file or a directory from its
* path relative to a directory file descriptor. * path relative to a directory file descriptor.
@ -224,7 +227,7 @@ int obi_dms_unlist_indexer(OBIDMS_p dms, Obi_indexer_p indexer);
* @since June 2015 * @since June 2015
* @author Celine Mercier (celine.mercier@metabarcoding.org) * @author Celine Mercier (celine.mercier@metabarcoding.org)
*/ */
char* get_full_path(OBIDMS_p dms, const char* path_name); char* obi_dms_get_full_path(OBIDMS_p dms, const char* path_name);
/** /**

View File

@ -379,7 +379,7 @@ OBIDMS_taxonomy_p obi_read_taxonomy(OBIDMS_p dms, const char* taxonomy_name, boo
buffer_size = 2048; // TODO buffer_size = 2048; // TODO
main_taxonomy_dir_path = get_full_path(dms, TAXONOMY_DIR_NAME); main_taxonomy_dir_path = obi_dms_get_full_path(dms, TAXONOMY_DIR_NAME);
taxonomy_path = (char*) malloc((strlen(main_taxonomy_dir_path) + strlen(taxonomy_name) + strlen(taxonomy_name) + 3)*sizeof(char)); taxonomy_path = (char*) malloc((strlen(main_taxonomy_dir_path) + strlen(taxonomy_name) + strlen(taxonomy_name) + 3)*sizeof(char));
if (sprintf(taxonomy_path, "%s/%s/%s", main_taxonomy_dir_path, taxonomy_name, taxonomy_name) < 0) if (sprintf(taxonomy_path, "%s/%s/%s", main_taxonomy_dir_path, taxonomy_name, taxonomy_name) < 0)
{ {

View File

@ -105,7 +105,7 @@ int obi_column_directory_exists(OBIDMS_p dms, const char* column_name)
return -1; return -1;
// Get the full path for the column directory // Get the full path for the column directory
full_path = get_full_path(dms, column_directory_name); full_path = obi_dms_get_full_path(dms, column_directory_name);
if (full_path == NULL) if (full_path == NULL)
{ {
obi_set_errno(OBICOLDIR_UNKNOWN_ERROR); obi_set_errno(OBICOLDIR_UNKNOWN_ERROR);

View File

@ -1051,7 +1051,7 @@ int obi_save_view(Obiview_p view)
return -1; return -1;
// Get the full path for the column directory // Get the full path for the column directory
full_path = get_full_path(view->dms, view_file_name); full_path = obi_dms_get_full_path(view->dms, view_file_name);
if (full_path == NULL) if (full_path == NULL)
{ {
obi_set_errno(OBIVIEW_ERROR); obi_set_errno(OBIVIEW_ERROR);