gtpc2mfo | C/C++ Language Support User's Guide |
This function returns the next element in the collection but does not update the cursor position. The definition of the next element depends on the collection implementation.
Format
#include <c$to2.h> TO2_BUF_PTR TO2_peek (const TO2_PID_PTR cursorPidPtr, TO2_ENV_PTR env_ptr);
Normal Return
For a normal return, this buffer contains a C header file followed by a copy of the data requested. The normal return is a pointer (TO2_BUF_PTR) to a structure (buffer) of type TO2_BUF_HDR (see Type Definitions).
Error Return
An error return is indicated by a zero. When zero is returned, use the TO2_getErrorCode function to determine the specific error code. For more information, see Error Handling.
The following error codes are common for this function:
TO2_ERROR_CURSOR
TO2_ERROR_EMPTY
TO2_ERROR_ENV
TO2_ERROR_EODAD
TO2_ERROR_METHOD
TO2_ERROR_PID
TO2_ERROR_ZERO_PID
Programming Considerations
Examples
The following example returns the next element in the collection that the cursor points to, but does not update the cursor position.
#include <c$to2.h> /* Needed for TO2 API functions */ #include <stdio.h> /* APIs for standard I/O functions */ TO2_ERR_CODE err_code; /* TO2 error code value */ TO2_ERR_TEXT_PTR err_text_ptr; /* TO2 error code text pointer */ TO2_BUF_PTR buffer_ptr; TO2_PID cursor; TO2_ENV_PTR env_ptr;
·
·
·
/*********************************************************************/ /* Read the next item that the cursor points to. */ /*********************************************************************/ if ((buffer_ptr = TO2_peek(&cursor, env_ptr)) == NULL) { err_code = TO2_getErrorCode(env_ptr); if (err_code != TO2_ERROR_EODAD) { printf("TO2_peek failed!\n"); process_error(env_ptr); } else printf("TO2_atCursor is at the end of the data!\n"); } else { person_ptr = buffer_ptr->data; if (buffer_length < (DATA_SIZE + sizeof(TO2_BUF_HDR))) printf("Data returned did not fit in allocated buffer!\n"); else printf("TO2_peek successful!\n"); }
Related Information