Add ND_Library_Open() and ND_Library_Close() calls,

Code clean up.
This commit is contained in:
agibert 2004-08-01 23:35:39 +00:00
parent 126de83bc9
commit 3c40fadbff

View File

@ -1,9 +1,9 @@
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* $RCSfile: nddemo0.c,v $ */ /* $RCSfile: nddemo0.c,v $ */
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* $Revision: 2.6 $ */ /* $Revision: 2.7 $ */
/* $Name: $ */ /* $Name: $ */
/* $Date: 2004/06/17 22:28:52 $ */ /* $Date: 2004/08/01 23:35:39 $ */
/* $Author: agibert $ */ /* $Author: agibert $ */
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
@ -31,8 +31,8 @@
#include <stdio.h> #include <stdio.h>
#include <errno.h> #include <errno.h>
#include <node.h> #include <node.h>
//#include <windows.h>
@ -52,10 +52,10 @@
typedef struct Demo_Value typedef struct Demo_Value
{ {
char Val0[VAL_SIZE]; char Val0[VAL_SIZE];
char Val1[VAL_SIZE]; char Val1[VAL_SIZE];
char Val2[VAL_SIZE]; char Val2[VAL_SIZE];
char Val3[VAL_SIZE]; char Val3[VAL_SIZE];
} Demo_Value; } Demo_Value;
@ -94,7 +94,7 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
Command_Name = "NDD_CMD_MANAGER_VERSION"; Command_Name = "NDD_CMD_MANAGER_VERSION";
*Version_Name_Ptr = "$Revision: 2.6 $ $Name: $ $Date: 2004/06/17 22:28:52 $ $Author: agibert $"; *Version_Name_Ptr = "$Revision: 2.7 $ $Name: $ $Date: 2004/08/01 23:35:39 $ $Author: agibert $";
return( NDS_OK); return( NDS_OK);
} }
@ -102,10 +102,10 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_INDEX_GET: case NDD_CMD_INDEX_GET:
{ {
/* /*
NDT_Index_Id *Reply_Index_Id_Ptr = (NDT_Index_Id *)va_arg( Args, NDT_Index_Id *); 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 *Reply_Command_Ptr = (NDT_Command *)va_arg( Args, NDT_Command *);
NDT_Command Cmd = (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 *); 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_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 *Reply_Command_Ptr = (NDT_Command *)va_arg( Args, NDT_Command *);
@ -159,10 +159,10 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_VALUE_ALLOC: case NDD_CMD_VALUE_ALLOC:
{ {
/* /*
void **Value_Ptr_Ptr = (void **)va_arg( Args, void **); void **Value_Ptr_Ptr = (void **)va_arg( Args, void **);
va_list user_args = (va_list)va_arg( Args, va_list); va_list user_args = (va_list)va_arg( Args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)va_arg( user_args, ...);
*/ */
Demo_Value **Value_Ptr_Ptr = va_arg( Args, Demo_Value **); Demo_Value **Value_Ptr_Ptr = va_arg( Args, Demo_Value **);
@ -187,10 +187,10 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_VALUE_FREE: case NDD_CMD_VALUE_FREE:
{ {
/* /*
void *Value_Ptr = (void *)va_arg( Args, void *); void *Value_Ptr = (void *)va_arg( Args, void *);
va_list user_args = (va_list)va_arg( Args, va_list); va_list user_args = (va_list)va_arg( Args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)va_arg( user_args, ...);
*/ */
Demo_Value *Value_Ptr = (Demo_Value *)va_arg( Args, Demo_Value *); Demo_Value *Value_Ptr = (Demo_Value *)va_arg( Args, Demo_Value *);
@ -205,11 +205,11 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_VALUE_COMP: case NDD_CMD_VALUE_COMP:
{ {
/* /*
void *Value1_Ptr = (void *)va_arg( Args, void *); void *Value1_Ptr = (void *)va_arg( Args, void *);
void *Value2_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); va_list user_args = (va_list)va_arg( Args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)va_arg( user_args, ...);
*/ */
Demo_Value *Value1_Ptr = va_arg( Args, Demo_Value *); Demo_Value *Value1_Ptr = va_arg( Args, Demo_Value *);
Demo_Value *Value2_Ptr = va_arg( Args, Demo_Value *); Demo_Value *Value2_Ptr = va_arg( Args, Demo_Value *);
@ -302,10 +302,10 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_VALUE_ADD: case NDD_CMD_VALUE_ADD:
{ {
/* /*
void *Value_Ptr = (void *)va_arg( Args, void *); void *Value_Ptr = (void *)va_arg( Args, void *);
va_list user_args = (va_list)va_arg( Args, va_list); va_list user_args = (va_list)va_arg( Args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)va_arg( user_args, ...);
*/ */
Command_Name = "NDD_CMD_VALUE_ADD"; Command_Name = "NDD_CMD_VALUE_ADD";
@ -316,10 +316,10 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_VALUE_REMOVE: case NDD_CMD_VALUE_REMOVE:
{ {
/* /*
void *Value_Ptr = (void *)va_arg( Args, void *); void *Value_Ptr = (void *)va_arg( Args, void *);
va_list user_args = (va_list)va_arg( Args, va_list); va_list user_args = (va_list)va_arg( Args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)va_arg( user_args, ...);
*/ */
Command_Name = "NDD_CMD_VALUE_REMOVE"; Command_Name = "NDD_CMD_VALUE_REMOVE";
@ -329,16 +329,16 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_VALUE_PRINT: case NDD_CMD_VALUE_PRINT:
{ {
/* /*
NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *);
va_list lib_args = (va_list)va_arg( Args, va_list); va_list lib_args = (va_list)va_arg( Args, va_list);
FILE *Out = (FILE *)va_arg( lib_args, FILE *); 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_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); 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); va_list user_args = (va_list)va_arg( lib_args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)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 *); NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *);
va_list lib_args = (va_list)va_arg( Args, va_list); va_list lib_args = (va_list)va_arg( Args, va_list);
@ -352,7 +352,7 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
Command_Name = "NDD_CMD_VALUE_PRINT"; Command_Name = "NDD_CMD_VALUE_PRINT";
fprintf( Out, "Val0: (%s) Val1: (%s) Val2: (%s) Val3: (%s)\n", fprintf( Out, "Val0: (%s) Val1: (%s) Val2: (%s) Val3: (%s)\n",
Value_Ptr->Val0, Value_Ptr->Val1, Value_Ptr->Val2, Value_Ptr->Val3); Value_Ptr->Val0, Value_Ptr->Val1, Value_Ptr->Val2, Value_Ptr->Val3);
return( NDS_OK); return( NDS_OK);
} }
@ -360,16 +360,16 @@ NDT_Status Manager_Demo_DS( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
case NDD_CMD_INFO_PRINT: case NDD_CMD_INFO_PRINT:
{ {
/* /*
NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *); NDT_Node *Next_Node_Ptr = (NDT_Node *)va_arg( Args, NDT_Node *);
va_list lib_args = (va_list)va_arg( Args, va_list); va_list lib_args = (va_list)va_arg( Args, va_list);
FILE *Out = (FILE *)va_arg( lib_args, FILE *); 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_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); 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); va_list user_args = (va_list)va_arg( lib_args, va_list);
user_type user_data = (user_type)va_arg( user_args, user_type); user_type user_data = (user_type)va_arg( user_args, user_type);
... = (...)va_arg( user_args, ...); ... = (...)va_arg( user_args, ...);
void *Value_Ptr = Node_Ptr->Value; void *Value_Ptr = Node_Ptr->Value;
*/ */
Command_Name = "NDD_CMD_INFO_PRINT"; Command_Name = "NDD_CMD_INFO_PRINT";
@ -433,7 +433,7 @@ void DataStruct_Load( NDT_Root *ds_ptr, FILE *demo_file)
else else
{ {
printf( "Input line read: \t(%s)\t(%s)\t(%s)\t(%s)\n", val0, val1, val2, val3); printf( "Input line read: \t(%s)\t(%s)\t(%s)\t(%s)\n", val0, val1, val2, val3);
printf( "Allocate Vallue: "); printf( "Allocate Vallue: ");
if( ( status = ND_Value_Alloc( ds_ptr, (void **)&value_ptr)) != NDS_OK) if( ( status = ND_Value_Alloc( ds_ptr, (void **)&value_ptr)) != NDS_OK)
{ {
@ -546,107 +546,126 @@ void Demo( char *Demo_File_Name, short Optimized_Mode)
NDT_Status status; NDT_Status status;
NDT_Root *demo_ds_ptr; NDT_Root *demo_ds_ptr;
NDT_Index_Type index_type_initial_tab[INDEX_NB] = NDT_Index_Type index_type_initial_tab[INDEX_NB] =
{ {
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO),
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO),
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO),
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO) (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO)
}; };
NDT_Index_Type index_type_final_tab[INDEX_NB] = NDT_Index_Type index_type_final_tab[INDEX_NB] =
{ {
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED),
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_SORTED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_SORTED),
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED),
(NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO) (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_FIFO)
}; };
NDT_Index_Type *index_type_ptr; NDT_Index_Type *index_type_ptr;
FILE *demo_file; FILE *demo_file;
printf( "Create demo DataStructure: "); printf( "Open library: ");
if( Optimized_Mode) if( ( status = ND_Library_Open( NDD_TRUE)) != NDS_OK)
{ {
index_type_ptr = index_type_initial_tab; printf( "ND_Library_Open() failed (%d) !\n", status);
}
else
{
index_type_ptr = index_type_final_tab;
}
if( ( status = ND_DataStruct_Open( &demo_ds_ptr, INDEX_NB, index_type_ptr, "Manager_Demo_DS", Manager_Demo_DS, NULL, NULL, NULL, NULL,0, NULL)) != NDS_OK)
{
printf( "ND_DataStruct_Open() failed (%d) !\n", status);
} }
else else
{ {
printf( "Ok !\n"); printf( "Ok !\n");
printf( "Open demo datafile: "); printf( "Create demo DataStructure: ");
if( ( demo_file = fopen( Demo_File_Name, "r")) == NULL) if( Optimized_Mode)
{
index_type_ptr = index_type_initial_tab;
}
else
{
index_type_ptr = index_type_final_tab;
}
if( ( status = ND_DataStruct_Open( &demo_ds_ptr, INDEX_NB, index_type_ptr, "Manager_Demo_DS", Manager_Demo_DS, NULL, NULL, NULL, NULL,0, NULL)) != NDS_OK)
{
printf( "ND_DataStruct_Open() failed (%d) !\n", status);
}
else
{
printf( "Ok !\n");
printf( "Open demo datafile: ");
if( ( demo_file = fopen( Demo_File_Name, "r")) == NULL)
{
printf( "fopen() failed (%d/%s) !\n", errno, strerror(errno));
}
else
{
printf( "Ok !\n");
printf( "\n\n\nLaod Data File:\n\n");
DataStruct_Load( demo_ds_ptr, demo_file);
if( Optimized_Mode)
{
printf( "\n\n\nInitial Structure Dump:\n\n");
DataStruct_Dump( demo_ds_ptr);
printf( "Convert data structure: ");
if( ( status = ND_DataStruct_Convert( demo_ds_ptr, index_type_final_tab)) != NDS_OK)
{
printf( "ND_DataStruct_Convert() failed (%d) !\n", status);
}
else
{
printf( "Ok !\n");
}
}
printf( "\n\n\nFinal Structure Dump:\n\n");
DataStruct_Dump( demo_ds_ptr);
printf( "Close demo datafile: ");
if( fclose( demo_file) != 0)
{
printf( "fclose() failed (%d/%s) !\n", errno, strerror(errno));
}
else
{
printf( "Ok !\n");
}
}
printf( "Close demo DataStructure: ");
if( ( status = ND_DataStruct_Close( demo_ds_ptr)) != NDS_OK)
{
printf( "ND_DataStruct_Close() failed (%d) !\n", status);
}
else
{
printf( "Ok !\n");
}
}
printf( "Close library: ");
if( ( status = ND_Library_Close()) != NDS_OK)
{ {
printf( "fopen() failed (%d/%s) !\n", errno, strerror(errno)); printf( "ND_Library_Close() failed (%d) !\n", status);
}
else
{
printf( "Ok !\n");
printf( "\n\n\nLaod Data File:\n\n");
DataStruct_Load( demo_ds_ptr, demo_file);
if( Optimized_Mode)
{
printf( "\n\n\nInitial Structure Dump:\n\n");
DataStruct_Dump( demo_ds_ptr);
printf( "Convert data structure: ");
if( ( status = ND_DataStruct_Convert( demo_ds_ptr, index_type_final_tab)) != NDS_OK)
{
printf( "ND_DataStruct_Convert() failed (%d) !\n", status);
}
else
{
printf( "Ok !\n");
}
}
printf( "\n\n\nFinal Structure Dump:\n\n");
DataStruct_Dump( demo_ds_ptr);
printf( "Close demo datafile: ");
if( fclose( demo_file) != 0)
{
printf( "fclose() failed (%d/%s) !\n", errno, strerror(errno));
}
else
{
printf( "Ok !\n");
}
}
printf( "Close demo DataStructure: ");
if( ( status = ND_DataStruct_Close( demo_ds_ptr)) != NDS_OK)
{
printf( "ND_DataStruct_Close() failed (%d) !\n", status);
} }
else else
{ {
@ -670,34 +689,4 @@ int main( int argc, char **argv)
printf( "\n\n\n\n\nOptimized Demo\n--------------\n\n\n"); printf( "\n\n\n\n\nOptimized Demo\n--------------\n\n\n");
Demo( DEMO_FILE_NAME, 1); Demo( DEMO_FILE_NAME, 1);
{
/*
HMODULE my_module;
char buf[256];
FARPROC my_function;
my_module = GetModuleHandle( NULL);
printf( "Module_Handle: (%p)\n", my_module);
buf[0] = '\0';
GetModuleFileName( my_module, buf, 255);
printf( "Module_Name: (%s)\n", buf);
my_function = GetProcAddress( my_module, "zob");
printf( "Function_Addr: (%p)\n", my_function);
my_function();
*/
}
} }
/*
__declspec(dllexport) void zob(void)
{
printf( "Zoby la mouche qui pête...!!!\n");
}
*/