- First implementation test:
- Init + Open handlers called in DatatStruict_Open_I() API. - Works but too complicated... - Second implementation should now be tested.
This commit is contained in:
@@ -758,12 +758,17 @@ typedef short NDT_DataStruct_Status;
|
||||
#define NDD_DATASTRUCT_STATUS_MSK ( NDD_DATASTRUCT_STATUS_UNKNOWN | NDD_DATASTRUCT_STATUS_TEMPORARY | NDD_DATASTRUCT_STATUS_VALID | NDD_DATASTRUCT_STATUS_INVALID)
|
||||
#define NDD_DATASTRUCT_STATUS_RMSK ( NDD_DATASTRUCT_STATUS_MSK ^ 0xffff)
|
||||
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( V) ( ( V) == NDD_DATASTRUCT_STATUS_UNKNOWN)
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_TEMPORARY( V) ( ( V) == NDD_DATASTRUCT_STATUS_TEMPORARY)
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_VALID( V) ( ( V) == NDD_DATASTRUCT_STATUS_VALID)
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_INVALID( V) ( ( V) == NDD_DATASTRUCT_STATUS_INVALID)
|
||||
#define ND_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( V) ( ( V) == NDD_DATASTRUCT_STATUS_UNKNOWN)
|
||||
#define ND_DATASTRUCT_STATUS_VALUE_TEMPORARY_IS( V) ( ( V) == NDD_DATASTRUCT_STATUS_TEMPORARY)
|
||||
#define ND_DATASTRUCT_STATUS_VALUE_VALID_IS( V) ( ( V) == NDD_DATASTRUCT_STATUS_VALID)
|
||||
#define ND_DATASTRUCT_STATUS_VALUE_INVALID_IS( V) ( ( V) == NDD_DATASTRUCT_STATUS_INVALID)
|
||||
#define ND_DATASTRUCT_STATUS_UNKNOWN_IS( R) ( ND_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( ( R)->Status))
|
||||
#define ND_DATASTRUCT_STATUS_TEMPORARY_IS( R) ( ND_DATASTRUCT_STATUS_VALUE_TEMPORARY_IS( ( R)->Status))
|
||||
#define ND_DATASTRUCT_STATUS_VALID_IS( R) ( ND_DATASTRUCT_STATUS_VALUE_VALID_IS( ( R)->Status))
|
||||
#define ND_DATASTRUCT_STATUS_INVALID_IS( R) ( ND_DATASTRUCT_STATUS_VALUE_INVALID_IS( ( R)->Status))
|
||||
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_ASCII_GET( V) ( NDD_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( V) ? "UNKNOWN" : ( NDD_DATASTRUCT_STATUS_VALUE_TEMPORARY( V) ? "TEMPORARY" : ( NDD_DATASTRUCT_STATUS_VALUE_VALID( V) ? "VALID" : ( NDD_DATASTRUCT_STATUS_VALUE_INVALID( V) ? "INVALID" : "???"))))
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_ASCII_GET( V) ( ND_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( V) ? "UNKNOWN" : ( ND_DATASTRUCT_STATUS_VALUE_TEMPORARY_IS( V) ? "TEMPORARY" : ( ND_DATASTRUCT_STATUS_VALUE_VALID_IS( V) ? "VALID" : ( ND_DATASTRUCT_STATUS_VALUE_INVALID_IS( V) ? "INVALID" : "???"))))
|
||||
#define NDD_DATASTRUCT_STATUS_ASCII_GET( R) ( NDD_DATASTRUCT_STATUS_VALUE_ASCII_GET( ( R)->Status))
|
||||
|
||||
|
||||
|
||||
@@ -799,7 +804,6 @@ typedef struct NDT_Root
|
||||
|
||||
typedef struct NDT_DataStruct
|
||||
{
|
||||
|
||||
NDT_Root *Root_Ptr;
|
||||
|
||||
NDT_Manager *Manager_Ptr; /* Manager function pointer */
|
||||
@@ -828,15 +832,15 @@ typedef struct NDT_Node
|
||||
/* Handler protypes */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
typedef NDT_Status NDT_Handler_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Node *Node_Ptr, NDT_Command Cmd, va_list *);
|
||||
typedef NDT_Status NDT_Handler_Init( size_t *Root_Extra_Size_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Alloc( void **Memory_Ptr_Ptr, NDT_Root *Root_Ptr, size_t Size, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Free( void *Memory_Ptr, NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Open( NDT_Root *Root_Ptr, NDT_Open_Flag Open_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Close( NDT_Root *Root_Ptr, NDT_Close_Flag Close_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Node *Node_Ptr, NDT_Command Cmd, va_list *);
|
||||
typedef NDT_Status NDT_Handler_Init( NDT_Root **root_tmp_ptr_ptr, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Index_Nb Index_Nb, NDT_Index_Type *Type_Ptr, NDT_Handler *Handler_Tab, short Own_Value, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Alloc( void **Memory_Ptr_Ptr, NDT_Root *Root_Ptr, size_t Size, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Free( void *Memory_Ptr, NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Open( NDT_Root *Root_Ptr, NDT_Open_Flag Open_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Close( NDT_Root *Root_Ptr, NDT_Close_Flag Close_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Info( NDT_Root *Root_Ptr, NDT_Recursive_Offset Recursive_Offset);
|
||||
typedef NDT_Status NDT_Handler_Lock( NDT_Root *Root_Ptr, NDT_Lock_Flag Lock_Mode, bool *Locked_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Unlock( NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Lock( NDT_Root *Root_Ptr, NDT_Lock_Flag Lock_Mode, bool *Locked_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Unlock( NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
|
||||
|
||||
|
||||
@@ -1462,6 +1466,16 @@ NDD_DLL_API NDT_Status ND_Value_Free_C( NDT_Root *, void *);
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Allocate a temporary root node */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* (O) Root_Tmp_Ptr_Ptr: Data structure pointer address */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
NDT_Status ND_Root_Tmp_Alloc( NDT_Root **Root_Tmp_Ptr_Ptr, size_t Root_Extra_Size, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Index_Nb Index_Nb, NDT_Index_Type *Type_Ptr, NDT_Handler *Handler_Tab, short Own_Value, void *User_Ptr);
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Execute a manager command */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@@ -1515,8 +1529,8 @@ NDD_DLL_API NDT_Status ND_Free_C( void *, NDT_Root *, void *);
|
||||
/* (I) User_Ptr: User pointer */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
NDT_Status ND_Handler_Init_Exec_I( size_t *Root_Extra_Size_Ptr, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr, void *User_Ptr);
|
||||
NDT_Status ND_Handler_Init_Exec_C( size_t *Root_Extra_Size_Ptr, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr, void *User_Ptr);
|
||||
NDT_Status ND_Handler_Init_Exec_I( NDT_Root **root_tmp_ptr_ptr, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Index_Nb Index_Nb, NDT_Index_Type *Type_Ptr, NDT_Handler *Handler_Tab, short Own_Value, void *User_Ptr, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr);
|
||||
NDT_Status ND_Handler_Init_Exec_C( NDT_Root **root_tmp_ptr_ptr, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Index_Nb Index_Nb, NDT_Index_Type *Type_Ptr, NDT_Handler *Handler_Tab, short Own_Value, void *User_Ptr, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user