gtpc2mdz | C/C++ Language Support User's Guide |
This function allows an application program to retrieve the current contents of a binary large object (BLOB). TPF collection support (TPFCS) will read the contents of the BLOB into the storage area passed as a parameter along with the current sequence counter value of the BLOB. The size that is read is determined by the size of your buffer or the size of the BLOB, whichever is smaller.
Format
#include <c$to2.h> void * TO2_getBLOBwithBuffer (const TO2_PID_PTR pid_ptr, TO2_ENV_PTR env_ptr, void *buffer, long *bufferLength, long *sequenceCounter);
Normal Return
The normal return is a pointer to the passed buffer.
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_ENV
TO2_ERROR_EMPTY
TO2_ERROR_METHOD
TO2_ERROR_NOT_INIT
TO2_ERROR_PID
TO2_ERROR_ZERO_PID
Programming Considerations
This function does not use TPF transaction services on behalf of the caller.
Examples
The following example retrieves the contents of a BLOB.
#include <c$to2.h> /* TO2 API function prototypes */ #include <stdio.h> /* APIs for standard I/O functions */ TO2_ENV_PTR env_ptr; /* Pointer to TO2 Environment */ TO2_PID blob; long seqCtr; /* field to hold sequence counter */ long bufferLength=400; /* field to hold length of BLOB */ long userBufLgh=400; /* user buffer length */ char buffer[400];
·
·
·
if (TO2_getBLOBwithBuffer(&blob, env_ptr, buffer, &bufferLength, &seqctr) == TO2_ERROR) { printf("TO2_getBLOBwithBuffer failed!\n"); process_error(env_ptr); } else if (bufferLength < userBufLgh) printf("BLOB larger than passed buffer\n"); else printf("TO2_getBLOBwithBuffer was successful!\n");
Related Information