gtpc2mfk | C/C++ Language Support User's Guide |
This function returns the next element in the collection and points the cursor at that element. The definition of the next element depends on the collection implementation.
Format
#include <c$to2.h> TO2_BUF_PTR TO2_next (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.
#include <c$to2.h> /* Needed for TO2 API Functions */ #include <stdio.h> /* APIs for standard I/O functions */ struct person_record { char *name; char *address; }; typedef struct person_record PERSON_RECORD; TO2_PID cursor; /* PID of the cursor */ TO2_ENV_PTR env_ptr; /* Pointer to TO2 environment */ TO2_BUF_PTR buffer_ptr; /* Pointer to element buffer */ PERSON_RECORD *person_ptr; /* Pointer to element data */ TO2_ERR_CODE err_code; /* TO2 error code value */ TO2_ERR_TEXT_PTR err_text_ptr; /* TO2 error code text pointer */
·
·
·
/**********************************************************************/ /* Access and return the next item the cursor points to. */ /**********************************************************************/ if ((buffer_ptr = TO2_next(&cursor, env_ptr)) == NULL) { err_code = TO2_getErrorCode(env_ptr); if (err_code != TO2_ERROR_EODAD) { printf("TO2_next failed!\n"); process_error(env_ptr); } else printf("The cursor is at the end of the collection!\n"); return(0); } else { person_ptr = (PERSON RECORD *) buffer_ptr->data; printf("TO2_next successful!\n"); }
·
·
·
free(buffer_ptr);
Related Information