SEDRIS Reference Manual
APPENDIX A - LEVEL 0 READ and WRITE API Functions SE GetElementOfDataTable |
---|
extern SE_Status_Code | ||||
SE_GetElementOfDataTable | ||||
( | ||||
SE_Object | data_table, | (notes) | ||
const | SE_Data_Table_Sub_Extent | * | extents_ptr, | (notes) |
SE_Integer_Positive | table_prop_descript_number, | (notes) | ||
SE_Store | store_in, | (notes) | ||
SE_Property_Data_Value_Ptr | * | result_out_ptr | (notes) | |
); |
Copies the selected cell elements from the selected area of interest of the given <Data Table> into a space in memory to which the user has direct access. All memory for the data is allocated within the store provided by the caller. See the comments for the function SE_CreateStore() for details on the function and behavior of stores.
A <Data Table> is an N-dimensional collection of cells. Each <Data Table> defines a signature, which applies to the entire <Data Table>, defining how many elements (values) will be contained in each cell, what the type of each element will be (e.g. SE_Short_Integer, SE_Long_Float, or ...) and an EDCS Attribute Code (the meaning) for each element.
The extent elements are ordered and the data is scanned into the buffer according to the ordering and fields of the <Axis> components of the <Data Table>. For example, if the <Data Table> has
Then extents_ptr->axes_bounds[0].first_index and extents_ptr->axes_bounds[0].last_index refer to geodetic longitude, and the corresponding [1] elements refer to geodetic latitude. The API function places data into the caller-provided buffer with geodetic latitude increasing fastest, corresponding to a 'C' array indexed buffer[long_idx][lat_idx]. In the example, because the spacing on the geodetic latitude axis is negative, increasing lat_idx actually corresponds to scanning southward through the grid locations.
There are two differences between this SE_GetElementOfDataTable() function and the SE_GetDataTable() function.
SE_STAT_CODE_SUCCESS | and memory for the requested data is allocated within the store associated with store_in, and the requested data is copied into that memory (which is pointed to by the appropriate field of *result_out_ptr), if valid parameters were passed in. |
SE_STAT_CODE_NULL_REQUIRED_PARAMETER | and *result_out_ptr is left unaltered, if
|
SE_STAT_CODE_INVALID_OR_NULL_OBJECT | and *result_out_ptr is unaffected, if data_table is not a handle to a valid, active (i.e., unfreed) <Data Table> instance. |
SE_STAT_CODE_UNRESOLVED_OBJECT | and *result_out_ptr is set as for SE_STAT_CODE_INVALID_OR_NULL_OBJECT, if data_table is an unresolved object (see SE_Object's comments for details on how this condition occurs). |
SE_STAT_CODE_INVALID_OR_NULL_STORE | and *result_out_ptr is set as for SE_STAT_CODE_INVALID_OR_NULL_OBJECT, if store_in is not a handle to a valid SE_Store created by SE_CreateStore(). |
SE_STAT_CODE_OUT_OF_MEMORY | and *result_out_ptr is set as for SE_STAT_CODE_INVALID_OR_NULL_OBJECT, if the API could not allocate the memory for the data or any dynamically allocated memory it should refer to (e.g., strings). |
SE_STAT_CODE_FAILURE | and *result_out_ptr is set as for
SE_STAT_CODE_INVALID_OR_NULL_OBJECT, if
|
the <Data Table> instance whose cells are being retrieved.
indicates the cells that the user wants returned (which 'region' of data_table to return).
an index into the ordered list of <Table Property Descriptions> aggregated by data_table.
a handle to a store, within which the API allocates memory for the data.
a pointer to an SE_Property_Data_Value_Ptr struct, which contains a 'tag' indicating which pointer from the union of pointers is active, and a union of pointers. The memory for the returned data will be allocated within the store associated with store_in and according to the value of the tag field in this structure. The appropriate union member is then set to point to this memory.
Prev: SE_GetDataTable.
Next: SE_GetErrorDescription.
Up:Index.
|