If the object is a structure or structure array, the data from all its primitive components are copied into the buffer in order of their position in the structure. Alignment adjustments are made as necessary to match the alignment of an C struct equivalent to the SDS structure. (Since these alignment requirements are machine dependent the actual sequence of bytes returned could be different on different machines). In the structure or structure array case the offset parameter is ignored.
If necessary (e.g. if the data originated on a machine with different architecture) the data for the object is converted (in place) from the format stored in the data item to that required for the local machine.
> | id | SdsIdType | Identifier of the object. |
---|---|---|---|
> | length | unsigned long | Length in bytes of the buffer supplied to receive the data. |
> | offset | unsigned long | Offset into the data object at which to start reading data. The offset is measured in units of the size of each individual item in the array - e.g. 4 bytes for an INT or 8 bytes for a DOUBLE. The offset is zero to start at the beginning of the array. This parameter is ignored if the object is a structure or structure array. |
< | data | void* | Buffer to receive the data. |
< | actlen | unsigned long* | Actual number of bytes transferred. |
! | status | StatusType* | Modified status. Possible failure codes are: |
SDS__BADID | Invalid identifier |
---|---|
SDS__UNDEFINED | Data undefined |
Click here for the DRAMA home page and here for the AAO home page.
For more information, contact tony.farrell@mq.edu.au