Added functions to try to open a DMS if it exists
This commit is contained in:
21
src/obidms.c
21
src/obidms.c
@ -362,7 +362,7 @@ OBIDMS_p obi_open_dms(const char* dms_path)
|
||||
if (realpath(complete_dms_path, dms->directory_path) == NULL)
|
||||
{
|
||||
obi_set_errno(OBIDMS_UNKNOWN_ERROR);
|
||||
obidebug(1, "\nError getting the absolute path to the DMS directory");
|
||||
obidebug(1, "\nError getting the absolute path to the DMS directory (DMS does not exist)");
|
||||
free(complete_dms_path);
|
||||
return NULL;
|
||||
}
|
||||
@ -536,6 +536,25 @@ OBIDMS_p obi_open_dms(const char* dms_path)
|
||||
}
|
||||
|
||||
|
||||
OBIDMS_p obi_test_open_dms(const char* dms_name)
|
||||
{
|
||||
int exists;
|
||||
|
||||
exists = obi_dms_exists(dms_name);
|
||||
|
||||
switch (exists)
|
||||
{
|
||||
case 0:
|
||||
return NULL;
|
||||
case 1:
|
||||
return obi_open_dms(dms_name);
|
||||
};
|
||||
|
||||
obidebug(1, "\nError checking if an OBIDMS directory exists");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
OBIDMS_p obi_dms(const char* dms_name)
|
||||
{
|
||||
int exists;
|
||||
|
18
src/obidms.h
18
src/obidms.h
@ -175,6 +175,24 @@ OBIDMS_p obi_create_dms(const char* dms_name);
|
||||
OBIDMS_p obi_open_dms(const char* dms_path);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Opens an existing OBITools Data Management instance (OBIDMS).
|
||||
*
|
||||
* @warning No error is printed or saved if the DMS does not exist. For it to be the case, use obi_open_dms().
|
||||
*
|
||||
* @param dms_path A pointer to a C string containing the path to the database.
|
||||
*
|
||||
* @returns A pointer to an OBIDMS structure describing the opened DMS.
|
||||
* @retval NULL if the DMS does not exist or if an error occurred.
|
||||
*
|
||||
* @see obi_open_dms()
|
||||
* @see obi_close_dms()
|
||||
* @since May 2017
|
||||
* @author Celine Mercier (celine.mercier@metabarcoding.org)
|
||||
*/
|
||||
OBIDMS_p obi_test_open_dms(const char* dms_name);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Creates or opens a new OBIDMS instance.
|
||||
*
|
||||
|
Reference in New Issue
Block a user