From 898992430e895a7563448ae0b26cfe424cf987ac Mon Sep 17 00:00:00 2001 From: agibert Date: Sun, 1 Aug 2004 23:38:52 +0000 Subject: [PATCH] Add Lib_Open and Lib_Close commands, Code clean up. --- util/ndbench.c | 736 +++++++++++++++++++++++++------------------------ 1 file changed, 381 insertions(+), 355 deletions(-) diff --git a/util/ndbench.c b/util/ndbench.c index fb664fc..c9cb4e1 100644 --- a/util/ndbench.c +++ b/util/ndbench.c @@ -1,9 +1,9 @@ /*---------------------------------------------------------------------------------*/ /* $RCSfile: ndbench.c,v $ */ /*---------------------------------------------------------------------------------*/ -/* $Revision: 2.6 $ */ +/* $Revision: 2.7 $ */ /* $Name: $ */ -/* $Date: 2004/06/17 22:28:30 $ */ +/* $Date: 2004/08/01 23:38:52 $ */ /* $Author: agibert $ */ /*---------------------------------------------------------------------------------*/ @@ -41,19 +41,13 @@ #ifdef _WIN32 - # include - #else - # include - #endif #ifdef _LIBVER_SUPPORT - # include - #endif @@ -65,44 +59,44 @@ /*---------------------------------------------------------------------------------*/ #ifdef _LIBVER_SUPPORT - VER_INFO_EXPORT( ndbench, "$Revision: 2.6 $", "$Name: $", __FILE__, "$Author: agibert $") +VER_INFO_EXPORT( ndbench, "$Revision: 2.7 $", "$Name: $", __FILE__, "$Author: agibert $"); # define USAGE "Usage : %s [ --help | --version [-v] | --batch_run ]\n" #else # define USAGE "Usage : %s [ --help | --batch_run ]\n" - #endif -#define ND_MODE 1 #include #define QUIT 0 -#define DS_OPEN 1 -#define DS_CLOSE 2 -#define DS_FLUSH 3 -#define DS_CHECK 4 -#define DS_REORG 5 -#define DS_INFO_PRINT 6 -#define DS_VALUE_ADD 7 -#define DS_VALUE_REMOVE 8 -#define DS_VALUE_PRINT 9 -#define DS_VALUE_FIND 10 -#define INDEX_LIST_OPEN 11 -#define INDEX_TREE_OPEN 12 -#define INDEX_CLOSE 13 -#define INDEX_FLUSH 14 -#define INDEX_CHECK 15 -#define INDEX_LIST_SUBTYPE_SET 16 -#define INDEX_LIST_TO_TREE 17 -#define INDEX_TREE_SUBTYPE_SET 18 -#define INDEX_TREE_TO_LIST 19 -#define INDEX_REORG 20 -#define INDEX_INFO_PRINT 21 -#define INDEX_VALUE_PRINT 22 -#define BATCH_RUN 23 +#define LIB_OPEN 1 +#define LIB_CLOSE 2 +#define DS_OPEN 3 +#define DS_CLOSE 4 +#define DS_FLUSH 5 +#define DS_CHECK 6 +#define DS_REORG 7 +#define DS_INFO_PRINT 8 +#define DS_VALUE_ADD 9 +#define DS_VALUE_REMOVE 10 +#define DS_VALUE_PRINT 11 +#define DS_VALUE_FIND 12 +#define INDEX_LIST_OPEN 13 +#define INDEX_TREE_OPEN 14 +#define INDEX_CLOSE 15 +#define INDEX_FLUSH 16 +#define INDEX_CHECK 17 +#define INDEX_LIST_SUBTYPE_SET 18 +#define INDEX_LIST_TO_TREE 19 +#define INDEX_TREE_SUBTYPE_SET 20 +#define INDEX_TREE_TO_LIST 21 +#define INDEX_REORG 22 +#define INDEX_INFO_PRINT 23 +#define INDEX_VALUE_PRINT 24 +#define BATCH_RUN 25 -#define COMMAND_NB 24 +#define COMMAND_NB 26 #define INDEX_NB 32 @@ -118,6 +112,11 @@ +#define BUF_LEN 99 +#define BUF_SIZE (BUF_LEN + 1) + + + /*---------------------------------------------------------------------------------*/ @@ -127,11 +126,11 @@ typedef struct Command { - short id; - char Name[25]; - char FullName[64]; - short DS_State; - NDT_Index_Type Index_Type; + short id; + char Name[25]; + char FullName[64]; + short DS_State; + NDT_Index_Type Index_Type; } Command; @@ -145,9 +144,9 @@ typedef char Arg[32 + 1]; typedef struct { - double sec; - struct _timeb start; - struct _timeb stop; + double sec; + struct _timeb start; + struct _timeb stop; } cpt; # define t_start(x) { _ftime( &(x.start));} @@ -157,9 +156,9 @@ typedef struct typedef struct { - double sec; - struct timeval start; - struct timeval stop; + double sec; + struct timeval start; + struct timeval stop; } cpt; # define t_start(x) { gettimeofday( &(x.start), NULL);} @@ -175,8 +174,8 @@ cpt t_exec; typedef struct { - int Id; - char *Nom; + int Id; + char *Nom; } T_Module; @@ -218,6 +217,8 @@ void Batch_Run( NDT_Root **, FILE *, FILE *, short); Command Command_Tab[] = { { QUIT, "Quit", "Quit", ( DS_STATE_OPENED | DS_STATE_CLOSED), ( NDD_INDEX_TYPE_LIST | NDD_INDEX_TYPE_TREE)}, + { LIB_OPEN, "Lib_Open", "Open Library", ( DS_STATE_OPENED | DS_STATE_CLOSED), ( NDD_INDEX_TYPE_LIST | NDD_INDEX_TYPE_TREE)}, + { LIB_CLOSE, "Lib_Close", "Close Library", ( DS_STATE_OPENED | DS_STATE_CLOSED), ( NDD_INDEX_TYPE_LIST | NDD_INDEX_TYPE_TREE)}, { DS_OPEN, "DS_Open", "Open DataStructure", ( DS_STATE_CLOSED), ( NDD_INDEX_TYPE_LIST | NDD_INDEX_TYPE_TREE)}, { DS_CLOSE, "DS_Close", "Close DataStructure", ( DS_STATE_OPENED), ( NDD_INDEX_TYPE_LIST | NDD_INDEX_TYPE_TREE)}, { DS_FLUSH, "DS_Flush", "Flush DataStructure", ( DS_STATE_OPENED), ( NDD_INDEX_TYPE_LIST | NDD_INDEX_TYPE_TREE)}, @@ -264,7 +265,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.6 $ $Name: $ $Date: 2004/06/17 22:28:30 $ $Author: agibert $"; + *Version_Name_Ptr = "$Revision: 2.7 $ $Name: $ $Date: 2004/08/01 23:38:52 $ $Author: agibert $"; return( NDS_OK); } @@ -272,10 +273,10 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_INDEX_GET: { /* - NDT_Index_Id *Reply_Index_Id_Ptr = (NDT_Index_Id *)va_arg( Args, NDT_Index_Id *); - NDT_Command *Reply_Command_Ptr = (NDT_Command *)va_arg( Args, NDT_Command *); - NDT_Command Cmd = (NDT_Command)va_arg( Args, NDT_Command); - void *Value_ptr = (void *)va_arg( Args, void *); + NDT_Index_Id *Reply_Index_Id_Ptr = (NDT_Index_Id *)va_arg( Args, NDT_Index_Id *); + NDT_Command *Reply_Command_Ptr = (NDT_Command *)va_arg( Args, NDT_Command *); + NDT_Command Cmd = (NDT_Command)va_arg( Args, NDT_Command); + void *Value_ptr = (void *)va_arg( Args, void *); */ NDT_Index_Id *Reply_Index_Id_Ptr = (NDT_Index_Id *)va_arg( Args, NDT_Index_Id *); NDT_Command *Reply_Command_Ptr = (NDT_Command *)va_arg( Args, NDT_Command *); @@ -288,13 +289,13 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod switch(Cmd) { /* - case NDT_CMD_SOME_USER_CMD: - { - *Reply_Index_Id_Ptr = 0; - *Reply_Command_Ptr = NDD_CMD_SOME_OTHER_CMD; - break; - } - ... + case NDT_CMD_SOME_USER_CMD: + { + *Reply_Index_Id_Ptr = 0; + *Reply_Command_Ptr = NDD_CMD_SOME_OTHER_CMD; + break; + } + ... */ default: @@ -311,10 +312,10 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_VALUE_ALLOC: { /* - void **Value_Ptr_Ptr = (void **)va_arg( Args, void **); - va_list user_args = (va_list)va_arg( Args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + void **Value_Ptr_Ptr = (void **)va_arg( Args, void **); + va_list user_args = (va_list)va_arg( Args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); */ T_Module **Module_Ptr_Ptr = (T_Module **)va_arg( Args, T_Module **); va_list user_args = (va_list)va_arg( Args, va_list); @@ -341,10 +342,10 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_VALUE_FREE: { /* - void *Value_Ptr = (void *)va_arg( Args, void *); - va_list user_args = (va_list)va_arg( Args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + void *Value_Ptr = (void *)va_arg( Args, void *); + va_list user_args = (va_list)va_arg( Args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); */ T_Module *Module_Ptr = (T_Module *)va_arg( Args, T_Module *); @@ -361,11 +362,11 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_VALUE_COMP: { /* - void *Value1_Ptr = (void *)va_arg( Args, void *); - void *Value2_Ptr = (void *)va_arg( Args, void *); - va_list user_args = (va_list)va_arg( Args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + void *Value1_Ptr = (void *)va_arg( Args, void *); + void *Value2_Ptr = (void *)va_arg( Args, void *); + va_list user_args = (va_list)va_arg( Args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); */ T_Module *Value1 = (T_Module *)va_arg( Args, T_Module *); T_Module *Value2 = (T_Module *)va_arg( Args, T_Module *); @@ -396,8 +397,8 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod } } } - else - { + else + { printf( "Unknown COMP idx (%d) !\n", Index_Id); return( NDS_KO); } @@ -408,10 +409,10 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_VALUE_ADD: { /* - void *Value_Ptr = (void *)va_arg( Args, void *); - va_list user_args = (va_list)va_arg( Args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + void *Value_Ptr = (void *)va_arg( Args, void *); + va_list user_args = (va_list)va_arg( Args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); */ @@ -423,10 +424,10 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_VALUE_REMOVE: { /* - void *Value_Ptr = (void *)va_arg( Args, void *); - va_list user_args = (va_list)va_arg( Args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + void *Value_Ptr = (void *)va_arg( Args, void *); + va_list user_args = (va_list)va_arg( Args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); */ @@ -437,16 +438,16 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_VALUE_PRINT: { /* - NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); - va_list lib_args = (va_list)va_arg( Args, va_list); - FILE *Out = (FILE *)va_arg( lib_args, FILE *); - NDT_Recursive_Mode Recursive_Mode = (NDT_Recursive_Mode)va_arg( lib_args, NDT_Recursive_Mode); - NDT_Recursive_Depth Recursive_Depth = (NDT_Recursive_Depth)va_arg( lib_args, NDT_Recursive_Depth); - va_list user_args = (va_list)va_arg( lib_args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); + va_list lib_args = (va_list)va_arg( Args, va_list); + FILE *Out = (FILE *)va_arg( lib_args, FILE *); + NDT_Recursive_Mode Recursive_Mode = (NDT_Recursive_Mode)va_arg( lib_args, NDT_Recursive_Mode); + NDT_Recursive_Depth Recursive_Depth = (NDT_Recursive_Depth)va_arg( lib_args, NDT_Recursive_Depth); + va_list user_args = (va_list)va_arg( lib_args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); - void *Value_Ptr = Node_Ptr->Value; + void *Value_Ptr = Node_Ptr->Value; */ NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); va_list lib_args = (va_list)va_arg( Args, va_list); @@ -467,16 +468,16 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod case NDD_CMD_INFO_PRINT: { /* - NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); - va_list lib_args = (va_list)va_arg( Args, va_list); - FILE *Out = (FILE *)va_arg( lib_args, FILE *); - NDT_Recursive_Mode Recursive_Mode = (NDT_Recursive_Mode)va_arg( lib_args, NDT_Recursive_Mode); - NDT_Recursive_Depth Recursive_Depth = (NDT_Recursive_Depth)va_arg( lib_args, NDT_Recursive_Depth); - va_list user_args = (va_list)va_arg( lib_args, va_list); - user_type user_data = (user_type)va_arg( user_args, user_type); - ... = (...)va_arg( user_args, ...); + NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); + va_list lib_args = (va_list)va_arg( Args, va_list); + FILE *Out = (FILE *)va_arg( lib_args, FILE *); + NDT_Recursive_Mode Recursive_Mode = (NDT_Recursive_Mode)va_arg( lib_args, NDT_Recursive_Mode); + NDT_Recursive_Depth Recursive_Depth = (NDT_Recursive_Depth)va_arg( lib_args, NDT_Recursive_Depth); + va_list user_args = (va_list)va_arg( lib_args, va_list); + user_type user_data = (user_type)va_arg( user_args, user_type); + ... = (...)va_arg( user_args, ...); - void *Value_Ptr = Node_Ptr->Value; + void *Value_Ptr = Node_Ptr->Value; */ @@ -489,13 +490,13 @@ NDT_Status Module_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Nod default: { printf( "Module_Manager() called with an undefined command %d\n", Command); - return(NDS_ERRAPI); + return( NDS_ERRAPI); } } printf( "Module_Manager() called with command %d (%s)\n", Command, Command_Name); - return(NDS_OK); + return( NDS_OK); } @@ -541,7 +542,7 @@ void Menu_Print( FILE *File_Output, NDT_Root *DS_Ptr) void Command_Get( int *choice, char **arg1, char **arg2, FILE *File_Output, FILE *File_Input, short Interactive_Flag) { char buf[100]; - char *tmp_arg1, *tmp_arg2; + char *tmp_arg1, *tmp_arg2; do @@ -551,7 +552,7 @@ void Command_Get( int *choice, char **arg1, char **arg2, FILE *File_Output, fprintf( File_Output, "\nChoice ? "); } - if( fgets( buf, 99, File_Input) != NULL) + if( fgets( buf, BUF_LEN, File_Input) != NULL) { while( ( buf[ strlen( buf) - 1] == '\r') || ( buf[ strlen( buf) - 1] == '\n') || ( buf[ strlen( buf) - 1] == '\t') || ( buf[ strlen( buf) - 1] == ' ')) { @@ -638,14 +639,14 @@ void Command_Exec_Begin_Print( FILE *File_Output, int Choice) void Command_Exec_End_Print( FILE *File_Output, int Choice, cpt T_Exec, int nb) { - if( nb == 1) - { - fprintf( File_Output, "%s: Completed in (%.4f) second !\n", Command_Tab[Choice].Name, T_Exec.sec); - } - else - { - fprintf( File_Output, "%s: Completed in (%.4f) second, (%.2f) per second !\n", Command_Tab[Choice].Name, T_Exec.sec, nb / T_Exec.sec); - } + if( nb == 1) + { + fprintf( File_Output, "%s: Completed in (%.4f) second !\n", Command_Tab[Choice].Name, T_Exec.sec); + } + else + { + fprintf( File_Output, "%s: Completed in (%.4f) second, (%.2f) per second !\n", Command_Tab[Choice].Name, T_Exec.sec, nb / T_Exec.sec); + } } @@ -665,7 +666,7 @@ void Command_Index_Range_Get( FILE *File_Output, int *Low, int *High, char if( Arg == NULL) { fprintf( File_Output, "%s: %s range (?-?) : ", Command_Tab[Choice].Name, Obj_Name); - fgets( buf, 99, File_Input); + fgets( buf, BUF_LEN, File_Input); Arg = buf; } @@ -704,11 +705,11 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha { int low, high, i, j, nb_removed, Nb_Detected, Nb_Corrected; T_Module Ref_Module, *Module_Ptr; - char buf[100]; - NDT_Index_Type index_subtype; + char buf[BUF_SIZE]; + NDT_Index_Type index_subtype; - fprintf( File_Output, "\n"); + fprintf( File_Output, "\n"); switch( Choice) { @@ -717,6 +718,40 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha break; } + case LIB_OPEN: + { + Command_Exec_Begin_Print( File_Output, Choice); + + if( Arg1 == NULL) + { + fprintf( File_Output, "Library_Open: Debug Mode ( 0:OFF | 1:ON) ? "); + fgets( buf, BUF_LEN, File_Input); + + Arg1 = buf; + } + + Choice = atoi( Arg1); + + t_start( t_exec); + ND_Library_Open( Choice); + t_stop( t_exec); + + Command_Exec_End_Print( File_Output, Choice, t_exec, 1); + break; + } + + case LIB_CLOSE: + { + Command_Exec_Begin_Print( File_Output, Choice); + + t_start( t_exec); + ND_Library_Close(); + t_stop( t_exec); + + Command_Exec_End_Print( File_Output, Choice, t_exec, 1); + break; + } + case DS_OPEN: { Command_Exec_Begin_Print( File_Output, Choice); @@ -802,68 +837,68 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha Command_Index_Range_Get( File_Output, &low, &high, Arg1, File_Input, Choice, "Value"); - if( low != -1) + if( low != -1) + { + if( Arg2 == NULL) + { + fprintf( File_Output, "DS_Value_Add: Add order ( 0:croissant | 1:decroissant) ? "); + fgets( buf, BUF_LEN ,stdin); + + Arg2 = buf; + } + + order = atoi( Arg2); + + fprintf( File_Output, "DS_Value_Add: Adding from: (%d) to: (%d) order: (%d)...\n", low, high, order); + fflush( File_Output); + + t_start( t_exec); + + if( order == 0) + { + i = low; + j = high + 1; + + while( i < j) + { + if( ND_Value_Alloc( *DS_Ptr_Ptr, (void **)&Module_Ptr, "x", i) == NDS_OK) { - if( Arg2 == NULL) - { - fprintf( File_Output, "DS_Value_Add: Add order ( 0:croissant | 1:decroissant) ? "); - fgets( buf, 99 ,stdin); + ND_DataStruct_Value_Add( *DS_Ptr_Ptr, Module_Ptr); + } + else + { + fprintf( File_Output, "DS_Value_Add: Allocation Failled !\n"); + break; + } - Arg2 = buf; - } + i++; + } + } + else + { + i = high; + j = low - 1; - order = atoi( Arg2); + while( i > j) + { + if( ND_Value_Alloc( *DS_Ptr_Ptr, (void **)&Module_Ptr, "x", i) == NDS_OK) + { + ND_DataStruct_Value_Add( *DS_Ptr_Ptr, Module_Ptr); + } + else + { + fprintf( File_Output, "DS_Value_Add: Allocation Failled !\n"); + break; + } - fprintf( File_Output, "DS_Value_Add: Adding from: (%d) to: (%d) order: (%d)...\n", low, high, order); - fflush( File_Output); - - t_start( t_exec); - - if( order == 0) - { - i = low; - j = high + 1; - - while( i < j) - { - if( ND_Value_Alloc( *DS_Ptr_Ptr, (void **)&Module_Ptr, "x", i) == NDS_OK) - { - ND_DataStruct_Value_Add( *DS_Ptr_Ptr, Module_Ptr); - } - else - { - fprintf( File_Output, "DS_Value_Add: Allocation Failled !\n"); - break; - } - - i++; - } - } - else - { - i = high; - j = low - 1; - - while( i > j) - { - if( ND_Value_Alloc( *DS_Ptr_Ptr, (void **)&Module_Ptr, "x", i) == NDS_OK) - { - ND_DataStruct_Value_Add( *DS_Ptr_Ptr, Module_Ptr); - } - else - { - fprintf( File_Output, "DS_Value_Add: Allocation Failled !\n"); - break; - } - - i--; - } - } + i--; + } + } t_stop( t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -876,69 +911,69 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha Command_Index_Range_Get( File_Output, &low, &high, Arg1, File_Input, Choice, "Value"); - if( low != -1) + if( low != -1) + { + if( Arg2 == NULL) + { + fprintf( File_Output, "\nDS_Value_Remove: Remove order (croissant=0 | decroissant=1) ? "); + fgets( buf, BUF_LEN, File_Input); + + Arg2 = buf; + } + + order = atoi( Arg2); + + t_start( t_exec); + + if( order == 0) + { + i = low; + j = high + 1; + + while( i < j) + { + Ref_Module.Id = i; + + if( ( ND_DataStruct_Value_Find( (void **)&Module_Ptr, *DS_Ptr_Ptr, &Ref_Module) == NDS_OK) && ( Module_Ptr != NULL)) { - if( Arg2 == NULL) - { - fprintf( File_Output, "\nDS_Value_Remove: Remove order (croissant=0 | decroissant=1) ? "); - fgets( buf, 99, File_Input); - - Arg2 = buf; - } - - order = atoi( Arg2); - - t_start( t_exec); - - if( order == 0) - { - i = low; - j = high + 1; - - while( i < j) - { - Ref_Module.Id = i; - - if( ( ND_DataStruct_Value_Find( (void **)&Module_Ptr, *DS_Ptr_Ptr, &Ref_Module) == NDS_OK) && ( Module_Ptr != NULL)) - { - if( ND_DataStruct_Value_Remove( *DS_Ptr_Ptr, (void **)&Module_Ptr) == NDS_OK) - { - nb_removed++; - ND_Value_Free( *DS_Ptr_Ptr, Module_Ptr); - } - } - - i++; - } - } - else - { - i = high; - j = low - 1; - t_start( t_exec); - - while( i > j) - { - Ref_Module.Id = i; - - if( ( ND_DataStruct_Value_Find( (void **)&Module_Ptr, *DS_Ptr_Ptr, &Ref_Module) == NDS_OK) && ( Module_Ptr != NULL)) - { - if( ND_DataStruct_Value_Remove( *DS_Ptr_Ptr, (void **)&Module_Ptr) == NDS_OK) - { - nb_removed++; - ND_Value_Free( *DS_Ptr_Ptr, Module_Ptr); - } - } - - i--; - } - } - - t_stop( t_exec); - - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + if( ND_DataStruct_Value_Remove( *DS_Ptr_Ptr, (void **)&Module_Ptr) == NDS_OK) + { + nb_removed++; + ND_Value_Free( *DS_Ptr_Ptr, Module_Ptr); + } } + i++; + } + } + else + { + i = high; + j = low - 1; + t_start( t_exec); + + while( i > j) + { + Ref_Module.Id = i; + + if( ( ND_DataStruct_Value_Find( (void **)&Module_Ptr, *DS_Ptr_Ptr, &Ref_Module) == NDS_OK) && ( Module_Ptr != NULL)) + { + if( ND_DataStruct_Value_Remove( *DS_Ptr_Ptr, (void **)&Module_Ptr) == NDS_OK) + { + nb_removed++; + ND_Value_Free( *DS_Ptr_Ptr, Module_Ptr); + } + } + + i--; + } + } + + t_stop( t_exec); + + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } + break; } @@ -954,27 +989,27 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha { Command_Index_Range_Get( File_Output, &low, &high, Arg1, File_Input, Choice, "Search"); - if( low != -1) - { - fprintf( File_Output, "DS_Value_Find: from: (%d) to: (%d)...\n", low, high); - fflush( File_Output); + if( low != -1) + { + fprintf( File_Output, "DS_Value_Find: from: (%d) to: (%d)...\n", low, high); + fflush( File_Output); - i = low; - j = high + 1; + i = low; + j = high + 1; - t_start( t_exec); + t_start( t_exec); - while( i < j) - { - Ref_Module.Id = low +( rand( ) % ( high - low)); - ND_DataStruct_Value_Find( (void *)&Module_Ptr, *DS_Ptr_Ptr, &Ref_Module); - i++; - } + while( i < j) + { + Ref_Module.Id = low +( rand( ) % ( high - low)); + ND_DataStruct_Value_Find( (void *)&Module_Ptr, *DS_Ptr_Ptr, &Ref_Module); + i++; + } - t_stop (t_exec); + t_stop (t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -985,20 +1020,20 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha if( low != -1) { - fprintf( File_Output, "Index_List_Open: Opening a FIFO List from: (%d) to: (%d)...\n", low, high); - fflush( File_Output); + fprintf( File_Output, "Index_List_Open: Opening a FIFO List from: (%d) to: (%d)...\n", low, high); + fflush( File_Output); - t_start( t_exec); + t_start( t_exec); - for( i = low; i <= high; i++) - { - ND_Index_Open( *DS_Ptr_Ptr, (NDT_Index_Id)i, idx_type_fifo); - } + for( i = low; i <= high; i++) + { + ND_Index_Open( *DS_Ptr_Ptr, (NDT_Index_Id)i, idx_type_fifo); + } - t_stop( t_exec); + t_stop( t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -1016,14 +1051,14 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha t_start( t_exec); for( i = low; i <= high; i++) - { + { ND_Index_Open( *DS_Ptr_Ptr, (NDT_Index_Id)i, idx_type_balanced_tree); - } + } t_stop( t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -1060,14 +1095,14 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha if( low != -1) { if( Arg2 == NULL) - { - fprintf( File_Output, "Index_List_SubType_Set: List SubType ( 0:FIFO | 1:LIFO | 2:Sorted) ? "); - fgets( buf, 99, File_Input); + { + fprintf( File_Output, "Index_List_SubType_Set: List SubType ( 0:FIFO | 1:LIFO | 2:Sorted) ? "); + fgets( buf, BUF_LEN, File_Input); - Arg2 = buf; - } + Arg2 = buf; + } - Choice = atoi( Arg2); + Choice = atoi( Arg2); switch( Choice) { @@ -1097,31 +1132,31 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha } } - if( index_subtype != NDD_INDEX_SUBTYPE_UNKNOWN) - { - fprintf( File_Output, "Index_List_SubType_Set: Setting List SubType to: (%d) (%s) !\n", index_subtype, ND_INDEX_SUBTYPE_VALUE_ASCII_GET( index_subtype)); + if( index_subtype != NDD_INDEX_SUBTYPE_UNKNOWN) + { + fprintf( File_Output, "Index_List_SubType_Set: Setting List SubType to: (%d) (%s) !\n", index_subtype, ND_INDEX_SUBTYPE_VALUE_ASCII_GET( index_subtype)); - t_start( t_exec); + t_start( t_exec); - for( i = low; i <= high; i++) - { - if( ND_INDEX_TYPE_LIST_IS( *DS_Ptr_Ptr, i)) - { - (*DS_Ptr_Ptr)->Index_Tab[i].Type = ( (*DS_Ptr_Ptr)->Index_Tab[i].Type & NDD_INDEX_SUBTYPE_RMSK) | index_subtype; - } - else - { - fprintf( File_Output, "Index_List_SubType_Set: Error: index (%d) is not a List !\n", i); - } - } - - t_stop( t_exec); - - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + for( i = low; i <= high; i++) + { + if( ND_INDEX_TYPE_LIST_IS( *DS_Ptr_Ptr, i)) + { + (*DS_Ptr_Ptr)->Index_Tab[i].Type = ( (*DS_Ptr_Ptr)->Index_Tab[i].Type & NDD_INDEX_SUBTYPE_RMSK) | index_subtype; } + else + { + fprintf( File_Output, "Index_List_SubType_Set: Error: index (%d) is not a List !\n", i); + } + } - break; + t_stop( t_exec); + + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } + } + + break; } case INDEX_TREE_SUBTYPE_SET: @@ -1130,15 +1165,15 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha if( low != -1) { - if( Arg2 == NULL) - { - fprintf( File_Output, "Index_Tree_SubType_Set: Tree SubType (0:UnBalanced | 1:Balanced) ? "); - fgets( buf, 99, stdin); + if( Arg2 == NULL) + { + fprintf( File_Output, "Index_Tree_SubType_Set: Tree SubType (0:UnBalanced | 1:Balanced) ? "); + fgets( buf, BUF_LEN, stdin); - Arg2 = buf; - } + Arg2 = buf; + } - Choice = atoi( Arg2); + Choice = atoi( Arg2); switch( Choice) { @@ -1156,36 +1191,36 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha default: { - index_subtype = NDD_INDEX_SUBTYPE_UNKNOWN; + index_subtype = NDD_INDEX_SUBTYPE_UNKNOWN; printf ("Index_Tree_SubType_Set: Invalid selection (%d)!\n", Choice); break; } - } + } - if( index_subtype != NDD_INDEX_SUBTYPE_UNKNOWN) - { + if( index_subtype != NDD_INDEX_SUBTYPE_UNKNOWN) + { - t_start( t_exec); + t_start( t_exec); - for( i = low; i <= high; i++) - { - if( ND_INDEX_TYPE_TREE_IS( *DS_Ptr_Ptr, i)) - { - (*DS_Ptr_Ptr)->Index_Tab[i].Type = ( (*DS_Ptr_Ptr)->Index_Tab[i].Type & NDD_INDEX_SUBTYPE_RMSK) | index_subtype; - } - else - { - fprintf( File_Output, "Index_Tree_SubType_Set: Error: index (%d) is not a Tree !\n", i); - } - } - - t_stop( t_exec); - - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + for( i = low; i <= high; i++) + { + if( ND_INDEX_TYPE_TREE_IS( *DS_Ptr_Ptr, i)) + { + (*DS_Ptr_Ptr)->Index_Tab[i].Type = ( (*DS_Ptr_Ptr)->Index_Tab[i].Type & NDD_INDEX_SUBTYPE_RMSK) | index_subtype; } + else + { + fprintf( File_Output, "Index_Tree_SubType_Set: Error: index (%d) is not a Tree !\n", i); + } + } - break; + t_stop( t_exec); + + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } + } + + break; } case INDEX_REORG: @@ -1194,22 +1229,22 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha if( low != -1) { - t_start( t_exec); + t_start( t_exec); - for( i = low; i <= high; i++) - { - fprintf( File_Output, "Index_Reorg: Reorganizing index (%d)...\n", i); - fflush( File_Output); + for( i = low; i <= high; i++) + { + fprintf( File_Output, "Index_Reorg: Reorganizing index (%d)...\n", i); + fflush( File_Output); - ND_Index_Reorg( *DS_Ptr_Ptr, (NDT_Index_Id)i); - } + ND_Index_Reorg( *DS_Ptr_Ptr, (NDT_Index_Id)i); + } - t_stop( t_exec); + t_stop( t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } - break; + break; } case INDEX_TREE_TO_LIST: @@ -1221,7 +1256,7 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha t_start( t_exec); for( i = low; i <= high; i++) - { + { fprintf( File_Output, "Index_Tree_To_List: Converting Index (%d)...\n", i); fflush( File_Output); @@ -1230,8 +1265,8 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha t_stop (t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -1245,7 +1280,7 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha t_start( t_exec); for( i = low; i <= high; i++) - { + { fprintf( File_Output, "Index_List_To_Tree: Converting Index (%d)...\n", i); fflush( File_Output); @@ -1254,8 +1289,8 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha t_stop (t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -1271,7 +1306,7 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha for( i = low; i <= high; i++) { - ND_Index_Info_Print( File_Output, *DS_Ptr_Ptr, (NDT_Index_Id)i, NDD_RECURSIVE_MODE_PARENT_CHILD, 99, 0); + ND_Index_Info_Print( File_Output, *DS_Ptr_Ptr, (NDT_Index_Id)i, NDD_RECURSIVE_MODE_PARENT_CHILD, 99, 0); } } @@ -1296,19 +1331,19 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha t_start( t_exec); for( i = low; i <= high; i++) - { + { fprintf( File_Output, "Index_Check: Checking Index (%d)...\n", i); fprintf( File_Output, "Index_Check: "); fflush( File_Output); - Nb_Corrected = Nb_Detected = 0; - ND_Index_Check( *DS_Ptr_Ptr, (NDT_Index_Id)i, &Nb_Detected, &Nb_Corrected, File_Output); + Nb_Corrected = Nb_Detected = 0; + ND_Index_Check( *DS_Ptr_Ptr, (NDT_Index_Id)i, &Nb_Detected, &Nb_Corrected, File_Output); } t_stop (t_exec); - Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); - } + Command_Exec_End_Print( File_Output, Choice, t_exec, high - low); + } break; } @@ -1322,7 +1357,7 @@ void Command_Exec( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, int Choice, cha { fprintf( File_Output, "Batch_Run: Batch file name ? "); - fgets( buf, 99, stdin); + fgets( buf, BUF_LEN, stdin); buf[ strlen( buf) - 1] = '\0'; Arg1 = buf; } @@ -1382,8 +1417,8 @@ void Batch_Run( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, FILE *File_Input, Command_Exec( DS_Ptr_Ptr, File_Output, choice, arg1, arg2, File_Input); } - if( arg1 != NULL) free( arg1); - if( arg2 != NULL) free( arg2); + if( arg1 != NULL) free( arg1); + if( arg2 != NULL) free( arg2); } while( choice != QUIT); } @@ -1399,7 +1434,6 @@ void Batch_Run( NDT_Root **DS_Ptr_Ptr, FILE *File_Output, FILE *File_Input, int main( int argc, char ** argv) { NDT_Root *ds_ptr = NULL; - int Debug = NDD_TRUE; /* Args Parsing */ @@ -1428,18 +1462,14 @@ int main( int argc, char ** argv) { /* Batch Mode */ - ND_Library_Open( Debug); - Command_Exec( &ds_ptr, stdout, BATCH_RUN, argv[2], NULL, stdin); - ND_Library_Close(); - - return(0); + return( 0); } else { fprintf( stderr, USAGE, argv[0]); - return(0); + return( -1); } } @@ -1447,11 +1477,7 @@ int main( int argc, char ** argv) /* Interactive Mode */ - ND_Library_Open( Debug); - Batch_Run( &ds_ptr, stdout, stdin, 1); - ND_Library_Close(); - return( 0); }