- Add DS_OpenedDS_List_Manager & DS_DataStruct_IsOpen implementation,
- Continue DS_DataStruct_Open_I implementation.
This commit is contained in:
@@ -63,7 +63,7 @@ extern char * strdup ( const char *);
|
||||
#define SHOW 13
|
||||
#define CHECK 14
|
||||
|
||||
#define MANAGER_FILE_NAME "dsbench.so"
|
||||
|
||||
|
||||
char DataStruct_Name [100];
|
||||
char menu [1000];
|
||||
@@ -83,7 +83,7 @@ NDT_Status Module_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command,
|
||||
void Menu_Init ( NDT_Root *);
|
||||
int Menu_Print ( NDT_Root *);
|
||||
|
||||
/* Mesure des temps d'exécution */
|
||||
/* Mesure des temps d'exécution */
|
||||
|
||||
typedef struct {
|
||||
double sec;
|
||||
@@ -96,7 +96,7 @@ typedef struct {
|
||||
|
||||
T_Cpt t_exec;
|
||||
|
||||
/* Définition des valeurs attachées aux noeuds de la structure */
|
||||
/* Définition des valeurs attachées aux noeuds de la structure */
|
||||
|
||||
typedef struct {
|
||||
int Id;
|
||||
@@ -116,6 +116,8 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
NDT_Command_Name Command_Name;
|
||||
|
||||
|
||||
LG_LOG_TRACE_1( LGD_LOG_LEVEL_DEFAULT, "Manager command: (%d) called", Command);
|
||||
|
||||
switch( Command)
|
||||
{
|
||||
case NDD_CMD_MANAGER_VERSION:
|
||||
@@ -125,7 +127,7 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
|
||||
Command_Name = "NDD_CMD_MANAGER_VERSION";
|
||||
|
||||
*Version_Name_Ptr = "$Revision: 2.13 $ $Name: libnode-2_2_0-1 $ $Date: 2010/06/06 21:26:31 $ $Author: agibert $";
|
||||
*Version_Name_Ptr = "Module Manager - DSBench";
|
||||
|
||||
return( NDS_OK);
|
||||
}
|
||||
@@ -266,24 +268,25 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
{
|
||||
if( Value1_Ptr->Id < Value2_Ptr->Id)
|
||||
{
|
||||
return(NDS_LOWER);
|
||||
return( NDS_LOWER);
|
||||
}
|
||||
else
|
||||
{
|
||||
if( Value1_Ptr->Id > Value2_Ptr->Id)
|
||||
{
|
||||
return(NDS_GREATER);
|
||||
return( NDS_GREATER);
|
||||
}
|
||||
else
|
||||
{
|
||||
return(NDS_EQUAL);
|
||||
return( NDS_EQUAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
printf( "Unknown COMP idx (%d) !\n", Index_Id);
|
||||
LG_LOG_ERROR_1( "Unknown comp index: (%d)", Index_Id);
|
||||
|
||||
return( NDS_KO);
|
||||
}
|
||||
}
|
||||
@@ -364,7 +367,7 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
|
||||
ND_VA_LIST_CLOSE( lib_args);
|
||||
|
||||
T_Module *Module_Ptr = (T_Module *)Node_Ptr->Value;
|
||||
T_Module *Module_Ptr = (T_Module *)Node_Ptr->Value;
|
||||
|
||||
Command_Name = "NDD_CMD_VALUE_PRINT";
|
||||
|
||||
@@ -418,7 +421,7 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
{
|
||||
switch ((int)(Root_Ptr->Type & NDD_MN_MSK))
|
||||
{
|
||||
case NDD_MN_ORDERED: Root_Type = strdup ("liste triée"); break;
|
||||
case NDD_MN_ORDERED: Root_Type = strdup ("liste triée"); break;
|
||||
case NDD_MN_FILO: Root_Type = strdup ("liste FILO"); break;
|
||||
case NDD_MN_FIFO: Root_Type = strdup ("liste FIFO"); break;
|
||||
default: Root_Type = strdup ("inconnu"); break;
|
||||
@@ -430,8 +433,8 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
{
|
||||
switch( (int)(Root_Ptr->Type & NDD_MN_MSK))
|
||||
{
|
||||
case NDD_MN_AUTO_EQU: Root_Type = strdup ("arbre auto-équilibré"); break;
|
||||
default: Root_Type = strdup ("arbre non auto-équilibré"); break;
|
||||
case NDD_MN_AUTO_EQU: Root_Type = strdup ("arbre auto-équilibré"); break;
|
||||
default: Root_Type = strdup ("arbre non auto-équilibré"); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -445,7 +448,7 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
Root_Type, RootDesc->Heap_Name, RootDesc->Manager_FileName, Root_Ptr->Node_Number);
|
||||
|
||||
if( ( Root->Type & NDD_DS_MSK) == NDD_DS_TREE)
|
||||
fprintf( Out, "\t- Profondeur maxi = %ld\n\t- Profondeur mini = %ld\n\t- Différence maximale autorisée = %ld\n\t- Nombre d'équilibrages = %ld\n", \
|
||||
fprintf( Out, "\t- Profondeur maxi = %ld\n\t- Profondeur mini = %ld\n\t- Différence maximale autorisée = %ld\n\t- Nombre d'équilibrages = %ld\n", \
|
||||
Root_Ptr->Max_Depth, Root_Ptr->Min_Depth, Root_Ptr->Max_Dif, Root_Ptr->Nb_Equ);
|
||||
|
||||
if( Root_Type) free( Root_Type);
|
||||
@@ -478,7 +481,7 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
{
|
||||
LG_LOG_ERROR_1( "Manager called with an undefined command: (%d)", Command);
|
||||
return( NDS_ERRAPI);
|
||||
}
|
||||
@@ -501,7 +504,7 @@ void Menu_Init( NDT_Root *Root )
|
||||
sprintf (menu, "Menu :\n");
|
||||
sprintf (buf, " - %d) %-30s\n", QUIT, "Quitter");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s", CREATE_STRUCT, "Création de structure");
|
||||
sprintf (buf, " - %d) %-30s", CREATE_STRUCT, "Création de structure");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s\n", OPEN_STRUCT, "Ouverture de structure");
|
||||
strcat (menu, buf);
|
||||
@@ -509,13 +512,13 @@ void Menu_Init( NDT_Root *Root )
|
||||
{
|
||||
sprintf (buf, " - %d) %-30s", CLOSE_STRUCT, "Fermer la structure");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s\n", DELETE_STRUCT, "Détruire la structure");
|
||||
sprintf (buf, " - %d) %-30s\n", DELETE_STRUCT, "Détruire la structure");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s", ADD_VALUE, "Ajout de valeurs");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s\n", REMOVE_VALUE, "Suppression de valeurs");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s\n", FIND_VALUE, "Recherche de valeurs aléatoires");
|
||||
sprintf (buf, " - %d) %-30s\n", FIND_VALUE, "Recherche de valeurs aléatoires");
|
||||
strcat (menu, buf);
|
||||
|
||||
if( ND_INDEX_TYPE_LIST_IS( Root, NDD_INDEX_PRIMARY))
|
||||
@@ -527,17 +530,17 @@ void Menu_Init( NDT_Root *Root )
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf (buf, " - %d) %-30s", CONVERT_TO_LIST, "Conversion en liste triée");
|
||||
sprintf (buf, " - %d) %-30s", CONVERT_TO_LIST, "Conversion en liste triée");
|
||||
strcat (menu, buf);
|
||||
}
|
||||
|
||||
sprintf (buf, " - %d) %-30s\n", REORG, "Réorganisation");
|
||||
sprintf (buf, " - %d) %-30s\n", REORG, "Réorganisation");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s", INFO, "Informations sur la structure");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s\n", SHOW, "Affichage de la structure");
|
||||
strcat (menu, buf);
|
||||
sprintf (buf, " - %d) %-30s\n", CHECK, "Vérification de la structure");
|
||||
sprintf (buf, " - %d) %-30s\n", CHECK, "Vérification de la structure");
|
||||
strcat (menu, buf);
|
||||
}
|
||||
}
|
||||
@@ -604,8 +607,9 @@ int main( int argc, char **argv)
|
||||
}
|
||||
else
|
||||
{
|
||||
if( DS_Library_Open (0, NULL, DSD_DEBUG_ALL) != NDS_OK)
|
||||
if( DS_Library_Open( 0, NULL, DSD_DEBUG_ALL) != DSS_OK)
|
||||
{
|
||||
LG_LOG_ERROR_0( "Can't open DataStr library");
|
||||
rc = -1;
|
||||
}
|
||||
else
|
||||
@@ -618,7 +622,7 @@ int main( int argc, char **argv)
|
||||
{
|
||||
case CREATE_STRUCT:
|
||||
{
|
||||
fprintf( stdout, "\nNom de la structure à créer ? ");
|
||||
fprintf( stdout, "\nNom de la structure à créer ? ");
|
||||
fgets( DataStruct_Name, 100, stdin);
|
||||
if( strlen( DataStruct_Name) < 2)
|
||||
{
|
||||
@@ -627,7 +631,7 @@ int main( int argc, char **argv)
|
||||
else
|
||||
{
|
||||
DataStruct_Name[ strlen( DataStruct_Name) - 1] = 0;
|
||||
if( ( status = DS_DataStruct_Open( &Root_Ptr, DataStruct_Name, 1, &index_type, MANAGER_FILE_NAME, 0, DSD_CREATE, TRUE)) != DSS_OK)
|
||||
if( ( status = DS_DataStruct_Open( &Root_Ptr, DataStruct_Name, 1, &index_type, "Module_Manager", 0, DSD_CREATE, TRUE)) != DSS_OK)
|
||||
{
|
||||
LG_LOG_ERROR_1( "Can't create data structure: (%d)", status);
|
||||
}
|
||||
@@ -647,7 +651,7 @@ int main( int argc, char **argv)
|
||||
if (DS_DataStruct_Close (Root, DSD_DESTROY) == DSS_KO) printf ("\nNOK\n");
|
||||
else
|
||||
{
|
||||
printf ("\nStructure détruite : OK\n");
|
||||
printf ("\nStructure détruite : OK\n");
|
||||
Root = NULL;
|
||||
}
|
||||
|
||||
@@ -656,7 +660,7 @@ int main( int argc, char **argv)
|
||||
|
||||
case OPEN_STRUCT:
|
||||
{
|
||||
fprintf (stdout, "\nNom de la structure à ouvrir ? ");
|
||||
fprintf (stdout, "\nNom de la structure à ouvrir ? ");
|
||||
gets (DataStruct_Name);
|
||||
|
||||
if (DS_DataStruct_Open (DataStruct_Name, &Root, 0, NULL, 0, DSD_OPEN, TRUE) == NDS_KO)
|
||||
@@ -672,7 +676,7 @@ int main( int argc, char **argv)
|
||||
if (DS_DataStruct_Close (Root, DSD_CLOSE) == DSS_KO) printf ("\nNOK\n");
|
||||
else
|
||||
{
|
||||
printf ("\nStructure fermée : OK\n");
|
||||
printf ("\nStructure fermée : OK\n");
|
||||
Root = NULL;
|
||||
}
|
||||
|
||||
@@ -693,13 +697,13 @@ int main( int argc, char **argv)
|
||||
m = atoi (tmp);
|
||||
if (m < n)
|
||||
{
|
||||
printf ("\nEntrées non valides\n");
|
||||
printf ("\nEntrées non valides\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("\nEntrées non valides\n");
|
||||
printf ("\nEntrées non valides\n");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -718,14 +722,14 @@ int main( int argc, char **argv)
|
||||
|
||||
DS_DataStruct_Unlock (Root);
|
||||
|
||||
fprintf (stdout, "\n%d valeur(s) recherchée(s) en %.4f sec (%.2f select/sec)\n", \
|
||||
fprintf (stdout, "\n%d valeur(s) recherchée(s) en %.4f sec (%.2f select/sec)\n", \
|
||||
m - n + 1, t_exec.sec, (m - n + 1) / t_exec.sec);
|
||||
break;
|
||||
}
|
||||
|
||||
case ADD_VALUE:
|
||||
{
|
||||
fprintf (stdout, "\nPlage des valeurs à ajouter (?->?) : ");
|
||||
fprintf (stdout, "\nPlage des valeurs à ajouter (?->?) : ");
|
||||
gets (buf);
|
||||
tmp = strstr (buf, "->");
|
||||
if (tmp != NULL)
|
||||
@@ -737,19 +741,19 @@ int main( int argc, char **argv)
|
||||
m = atoi (tmp);
|
||||
if (m < n)
|
||||
{
|
||||
printf ("\nEntrées non valides\n");
|
||||
printf ("\nEntrées non valides\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("\nEntrées non valides\n");
|
||||
printf ("\nEntrées non valides\n");
|
||||
break;
|
||||
}
|
||||
|
||||
DS_DataStruct_Lock (Root, DSD_WRITE, &Locked);
|
||||
|
||||
fprintf (stdout, "\nOrdre d'ajout (croissant=0 décroissant=1) ? ");
|
||||
fprintf (stdout, "\nOrdre d'ajout (croissant=0 décroissant=1) ? ");
|
||||
gets (buf);
|
||||
choice = atoi (buf);
|
||||
if (choice == 0)
|
||||
@@ -779,7 +783,7 @@ int main( int argc, char **argv)
|
||||
|
||||
DS_DataStruct_Unlock (Root);
|
||||
|
||||
fprintf (stdout, "\n%d valeur(s) ajoutée(s) en %.4f sec (%.2f ajouts/sec)\n", m - n + 1, \
|
||||
fprintf (stdout, "\n%d valeur(s) ajoutée(s) en %.4f sec (%.2f ajouts/sec)\n", m - n + 1, \
|
||||
t_exec.sec, (m - n + 1) / t_exec.sec);
|
||||
break;
|
||||
}
|
||||
@@ -787,7 +791,7 @@ int main( int argc, char **argv)
|
||||
case REMOVE_VALUE:
|
||||
{
|
||||
Nb_Removed = 0;
|
||||
fprintf (stdout, "\nPlage des valeurs à supprimer (?->?) : ");
|
||||
fprintf (stdout, "\nPlage des valeurs à supprimer (?->?) : ");
|
||||
gets (buf);
|
||||
tmp = strstr (buf, "->");
|
||||
if (tmp != NULL)
|
||||
@@ -799,19 +803,19 @@ int main( int argc, char **argv)
|
||||
m = atoi (tmp);
|
||||
if (m < n)
|
||||
{
|
||||
printf ("\nEntrées non valides\n");
|
||||
printf ("\nEntrées non valides\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("\nEntrées non valides\n");
|
||||
printf ("\nEntrées non valides\n");
|
||||
break;
|
||||
}
|
||||
|
||||
DS_DataStruct_Lock (Root, DSD_WRITE, &Locked);
|
||||
|
||||
fprintf (stdout, "\nOrdre de suppression (croissant=0 décroissant=1) ? ");
|
||||
fprintf (stdout, "\nOrdre de suppression (croissant=0 décroissant=1) ? ");
|
||||
gets (buf);
|
||||
choice = atoi (buf);
|
||||
if (choice == 0)
|
||||
@@ -851,14 +855,14 @@ int main( int argc, char **argv)
|
||||
|
||||
DS_DataStruct_Unlock (Root);
|
||||
|
||||
fprintf (stdout, "\n%d valeur(s) supprimée(s) en %.4f sec (%.2f suppressions/sec)\n",\
|
||||
fprintf (stdout, "\n%d valeur(s) supprimée(s) en %.4f sec (%.2f suppressions/sec)\n",\
|
||||
Nb_Removed, t_exec.sec, (m - n + 1) / t_exec.sec);
|
||||
break;
|
||||
}
|
||||
|
||||
case CHG_LIST_TYPE:
|
||||
{
|
||||
fprintf (stdout, "\nType de liste (FIFO=0 ; FILO=1 ; triée=2) ? ");
|
||||
fprintf (stdout, "\nType de liste (FIFO=0 ; FILO=1 ; triée=2) ? ");
|
||||
gets (buf);
|
||||
choice = atoi (buf);
|
||||
DS_DataStruct_Lock (Root, DSD_WRITE, &Locked);
|
||||
@@ -888,7 +892,7 @@ int main( int argc, char **argv)
|
||||
DS_DataStruct_Reorg (Root);
|
||||
DS_DataStruct_Unlock (Root);
|
||||
t_stop (t_exec);
|
||||
fprintf (stdout, "\nRéorganisation de la structure en %.4f sec\n", t_exec.sec);
|
||||
fprintf (stdout, "\nRéorganisation de la structure en %.4f sec\n", t_exec.sec);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -914,14 +918,15 @@ int main( int argc, char **argv)
|
||||
break;
|
||||
}
|
||||
|
||||
*/
|
||||
case INFO:
|
||||
{
|
||||
DS_DataStruct_Lock (Root, DSD_READ, &Locked);
|
||||
DS_DataStruct_Info_Print (Root, stdout);
|
||||
DS_DataStruct_Unlock (Root);
|
||||
// DS_DataStruct_Lock (Root, DSD_READ, &Locked);
|
||||
DS_DataStruct_Info_Print( stdout, Root_Ptr);
|
||||
// DS_DataStruct_Unlock (Root);
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
case SHOW:
|
||||
{
|
||||
DS_DataStruct_Lock (Root, DSD_READ, &Locked);
|
||||
@@ -939,7 +944,7 @@ int main( int argc, char **argv)
|
||||
*/
|
||||
default:
|
||||
{
|
||||
fprintf (stdout, "\nChoix %d non défini\n", choice);
|
||||
fprintf (stdout, "\nChoix %d non défini\n", choice);
|
||||
}
|
||||
}
|
||||
choice = Menu_Print( Root_Ptr);
|
||||
|
||||
Reference in New Issue
Block a user