/** File: ADF.h ---------------------------------------------------------------------- BOEING ---------------------------------------------------------------------- Project: CGNS Author: Tom Dickens 865-6122 tpd6908@yak.ca.boeing.com Date: 3/2/1995 Purpose: Provide prototype declarations for the ADF-Core routines. ---------------------------------------------------------------------- ---------------------------------------------------------------------- **/ #ifndef ADF_INCLUDE #define ADF_INCLUDE /*********************************************************************** Defines: These defines are used within the ADF core routines to specify the size in bytes of varoius items. Caution: Simply changing a define here may not correctly adjust the ADF core code. These sizes are provided for reference only! ***********************************************************************/ #define ADF_DATA_TYPE_LENGTH 32 #define ADF_DATE_LENGTH 32 #define ADF_FILENAME_LENGTH 1024 #define ADF_FORMAT_LENGTH 20 #define ADF_LABEL_LENGTH 32 #define ADF_MAXIMUM_LINK_DEPTH 100 #define ADF_MAX_DIMENSIONS 12 #define ADF_MAX_ERROR_STR_LENGTH 80 #define ADF_MAX_LINK_DATA_SIZE 4096 #define ADF_NAME_LENGTH 32 #define ADF_STATUS_LENGTH 32 #define ADF_VERSION_LENGTH 32 /*********************************************************************** Prototypes for Interface Routines ***********************************************************************/ #if defined (__cplusplus) extern "C" { #endif extern void ADF_Search_Add( const char *path, int *error_return ) ; extern void ADF_Search_Delete( int *error_return ) ; extern void ADF_Children_Names( const double PID, const int istart, const int ilen, const int name_length, int *ilen_ret, char *names, int *error_return ) ; extern void ADF_Children_IDs( const double PID, const int istart, const int ilen, int *ilen_ret, double *IDs, int *error_return ) ; extern void ADF_Create( const double PID, const char *name, double *ID, int *error_return ) ; extern void ADF_Database_Close( const double ID, int *error_return ) ; extern void ADF_Database_Delete( const char *filename, int *error_return ) ; extern void ADF_Database_Garbage_Collection( const double ID, int *error_return ) ; extern void ADF_Database_Get_Format( const double Root_ID, char *format, int *error_return ) ; extern void ADF_Database_Open( const char *filename, const char *status, const char *format, double *root_ID, int *error_return ) ; extern void ADF_Database_Valid( const char *filename, int *error_return ) ; extern void ADF_Database_Set_Format( const double Root_ID, const char *format, int *error_return ) ; extern void ADF_Database_Version( const double Root_ID, char *version, char *creation_date, char *modification_date, int *error_return ) ; extern void ADF_Delete( const double PID, const double ID, int *error_return ) ; extern void ADF_Error_Message( const int error_return_input, char *error_string ) ; extern void ADF_Flush_to_Disk( const double ID, int *error_return ) ; extern void ADF_Get_Data_Type( const double ID, char *data_type, int *error_return ) ; extern void ADF_Get_Dimension_Values( const double ID, int dim_vals[], int *error_return ) ; extern void ADF_Get_Error_State( int *error_state, int *error_return ) ; extern void ADF_Get_Label( const double ID, char *label, int *error_return ) ; extern void ADF_Get_Link_Path( const double ID, char *filename, char *link_path, int *error_return ) ; extern void ADF_Get_Name( const double ID, char *name, int *error_return ) ; extern void ADF_Get_Node_ID( const double PID, const char *name, double *ID, int *error_return ) ; extern void ADF_Get_Number_of_Dimensions( const double ID, int *num_dims, int *error_return ) ; extern void ADF_Get_Root_ID( const double ID, double *Root_ID, int *error_return ) ; extern void ADF_Is_Link( const double ID, int *link_path_length, int *error_return ) ; extern void ADF_Library_Version( char *version, int *error_return ) ; extern void ADF_Link( const double PID, const char *name, const char *file, const char *name_in_file, double *ID, int *error_return ) ; extern void ADF_Move_Child( const double PID, const double ID, const double NPID, int *error_return ) ; extern void ADF_Number_of_Children( const double ID, int *num_children, int *error_return ) ; extern void ADF_Put_Dimension_Information( const double ID, const char *data_type, const int dims, const int dim_vals[], int *error_return ) ; extern void ADF_Put_Name( const double PID, const double ID, const char *name, int *error_return ) ; extern void ADF_Read_All_Data( const double ID, char *data, int *error_return ) ; extern void ADF_Read_Block_Data( const double ID, const long b_start, const long b_end, char *data, int *error_return ) ; extern void ADF_Read_Data( const double ID, const int s_start[], const int s_end[], const int s_stride[], const int m_num_dims, const int m_dims[], const int m_start[], const int m_end[], const int m_stride[], char *data, int *error_return ) ; extern void ADF_Set_Error_State( const int error_state, int *error_return ) ; extern void ADF_Set_Label( const double ID, const char *label, int *error_return ) ; extern void ADF_Write_All_Data( const double ID, const char *data, int *error_return ) ; extern void ADF_Write_Block_Data( const double ID, const long b_start, const long b_end, char *data, int *error_return ) ; extern void ADF_Write_Data( const double ID, const int s_start[], const int s_end[], const int s_stride[], const int m_num_dims, const int m_dims[], const int m_start[], const int m_end[], const int m_stride[], const char *data, int *error_return ) ; #if defined (__cplusplus) } #endif /*********************************************************************** Error-return values These values need to be kept in sync with the error strings in file ADF_interface.c ***********************************************************************/ /** Don't use zero since you can assign zero to a pointer **/ #define NO_ERROR -1 #define NUMBER_LESS_THAN_MINIMUM 1 #define NUMBER_GREATER_THAN_MAXIMUM 2 #define STRING_LENGTH_ZERO 3 #define STRING_LENGTH_TOO_BIG 4 #define STRING_NOT_A_HEX_STRING 5 #define TOO_MANY_ADF_FILES_OPENED 6 #define ADF_FILE_STATUS_NOT_RECOGNIZED 7 #define FILE_OPEN_ERROR 8 #define ADF_FILE_NOT_OPENED 9 #define FILE_INDEX_OUT_OF_RANGE 10 #define BLOCK_OFFSET_OUT_OF_RANGE 11 #define NULL_STRING_POINTER 12 #define FSEEK_ERROR 13 #define FWRITE_ERROR 14 #define FREAD_ERROR 15 #define ADF_MEMORY_TAG_ERROR 16 #define ADF_DISK_TAG_ERROR 17 #define REQUESTED_NEW_FILE_EXISTS 18 #define ADF_FILE_FORMAT_NOT_RECOGNIZED 19 #define FREE_OF_ROOT_NODE 20 #define FREE_OF_FREE_CHUNK_TABLE 21 #define REQUESTED_OLD_FILE_NOT_FOUND 22 #define UNIMPLEMENTED_CODE 23 #define SUB_NODE_TABLE_ENTRIES_BAD 24 #define MEMORY_ALLOCATION_FAILED 25 #define DUPLICATE_CHILD_NAME 26 #define ZERO_DIMENSIONS 27 #define BAD_NUMBER_OF_DIMENSIONS 28 #define CHILD_NOT_OF_GIVEN_PARENT 29 #define DATA_TYPE_TOO_LONG 30 #define INVALID_DATA_TYPE 31 #define NULL_POINTER 32 #define NO_DATA 33 #define ERROR_ZEROING_OUT_MEMORY 34 #define REQUESTED_DATA_TOO_LONG 35 #define END_OUT_OF_DEFINED_RANGE 36 #define BAD_STRIDE_VALUE 37 #define MINIMUM_GT_MAXIMUM 38 #define MACHINE_FORMAT_NOT_RECOGNIZED 39 #define CANNOT_CONVERT_NATIVE_FORMAT 40 #define CONVERSION_FORMATS_EQUAL 41 #define DATA_TYPE_NOT_SUPPORTED 42 #define FILE_CLOSE_ERROR 43 #define NUMERIC_OVERFLOW 44 #define START_OUT_OF_DEFINED_RANGE 45 #define ZERO_LENGTH_VALUE 46 #define BAD_DIMENSION_VALUE 47 #define BAD_ERROR_STATE 48 #define UNEQUAL_MEMORY_AND_DISK_DIMS 49 #define LINKS_TOO_DEEP 50 #define NODE_IS_NOT_A_LINK 51 #define LINK_TARGET_NOT_THERE 52 #define LINKED_TO_FILE_NOT_THERE 53 #define NODE_ID_ZERO 54 #define INCOMPLETE_DATA 55 #define INVALID_NODE_NAME 56 #define INVALID_VERSION 57 #define NODES_NOT_IN_SAME_FILE 58 #define PRISTK_NOT_FOUND 59 #define MACHINE_FILE_INCOMPATABLE 60 #define FFLUSH_ERROR 61 #define NULL_NODEID_POINTER 62 #define MAX_FILE_SIZE_EXCEEDED 63 #endif