gtpc2mf6C/C++ Language Support User's Guide

TO2_createReadWriteCursor-Create a Locking Cursor

This function creates a locking cursor for the specified collection. An exclusive lock will be imposed on the specific collection for the life of the cursor. Only this particular cursor and a nonlocking cursor can update elements in the collection at the same time.

Format

#include <c$to2.h>
long TO2_createReadWriteCursor (const TO2_PID_PTR pid_ptr,
                                      TO2_ENV_PTR env_ptr,
                                      TO2_PID_PTR cursorPidPtr);

pid_ptr
The pointer to the persistent identifier (PID) of the collection that will be accessed.

env_ptr
The pointer to the environment as returned by the TO2_createEnv function.

cursorPidPtr
The pointer to the cursor PID that is created by one of the TPF collection support (TPFCS) create cursor application programming interfaces (APIs). The cursor collection is a temporary collection and is only valid for the life of the entry control block (ECB) that creates it.

Normal Return

The normal return is a positive value.

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_ACCESS_MISMATCH

TO2_ERROR_DELETED_PID

TO2_ERROR_ENV

TO2_ERROR_METHOD

TO2_ERROR_PID

TO2_ERROR_UPDATE_NOT_ALLOWED

TO2_ERROR_ZERO_PID

Programming Considerations

Examples

The following example creates a locking cursor.

#include <c$to2.h>             /* Needed for TO2 API Functions     */
#include <stdio.h>             /* APIs for standard I/O functions  */
 
TO2_PID       collect;         /* PID of the collection object     */
TO2_ENV_PTR   env_ptr;         /* Pointer to TO2 environment       */
TO2_PID       cursor;          /* PID of the cursor object         */
TO2_ERR_CODE  err_code;        /* TO2 error code value             */

  ·
  ·
  ·
/*******************************************************************/ /* Place a locking cursor on the temporary collection. */ /*******************************************************************/ if (TO2_createReadWriteCursor(&collect, env_ptr, &cursor) == TO2_ERROR) { printf("TO2_createReadWriteCursor failed!\n"); process_error(env_ptr); return(0); } else printf("TO2_createReadWriteCursor successful!\n"); err_code = TO2_first(&cursor, env_ptr);
  ·
  ·
  ·
err_code = TO2_deleteCursor(&cursor, env_ptr);

Related Information