/* ------------------------------------------------------------------------- * * CGNS - CFD General Notation System (http://www.cgns.org) * * CGNS/MLL - Mid-Level Library header file * * Please see cgnsconfig.h file for this local installation configuration * * ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- * This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. * ------------------------------------------------------------------------- */ /** 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 #include "cgnstypes.h" #if defined(_WIN32) && defined(BUILD_DLL) # define EXTERN extern __declspec(dllexport) #else # define EXTERN extern #endif /*********************************************************************** Defines: These defines are used within the ADF core routines to specify the size in bytes of various 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_CGIO_DATA_TYPE_LENGTH 2 #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_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, cgsize_t 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_Link_Size( const double ID, int *len_file, int *len_name, 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 cgsize_t 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, const char *m_data_type, char *data, int *error_return ) ; EXTERN void ADF_Read_Block_Data( const double ID, const cgsize_t b_start, const cgsize_t b_end, char *data, int *error_return ) ; EXTERN void ADF_Read_Data( const double ID, const cgsize_t s_start[], const cgsize_t s_end[], const cgsize_t s_stride[], const int m_num_dims, const cgsize_t m_dims[], const cgsize_t m_start[], const cgsize_t m_end[], const cgsize_t m_stride[], const char *m_data_type, 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 cgsize_t b_start, const cgsize_t b_end, char *data, int *error_return ) ; EXTERN void ADF_Write_Data( const double ID, const cgsize_t s_start[], const cgsize_t s_end[], const cgsize_t s_stride[], const int m_num_dims, const cgsize_t m_dims[], const cgsize_t m_start[], const cgsize_t m_end[], const cgsize_t m_stride[], const char *data, int *error_return ) ; #if defined (__cplusplus) } #endif #undef EXTERN /*********************************************************************** 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 #define MAX_INT32_SIZE_EXCEEDED 64 #endif