Get DateTime
Convenience Function
Declaration
tibrv_statustibrvMsg_GetDateTime
(
tibrvMsg message,
const char* fieldName,
tibrvMsgDateTime* value);
tibrv_statustibrvMsg_GetDateTimeEx
(
tibrvMsg message,
const char* fieldName,
tibrvMsgDateTime* value,
tibrv_u16 fieldId);
Purpose
Get the value of a field as a Rendezvous datetime value.
Remarks
This convenience function retrieves a field and extracts its data.
Since it is not possible to convert any other datatype to a datetime value, the field must already contain a datetime. Otherwise, the function returns TIBRV_CONVERSION_FAILED.
Pointer data extracted from the field remain valid until the message is destroyed; that is, even removing the field or updating the field’s value does not invalidate pointer data.
This function produces values that are read-only snapshots of the field data (see Pointer Snapshot). Programs must not modify the datetime value.
Parameter |
Description |
|
Get the specified field of this message. |
|
Get a field with this name. |
|
The program supplies a location in this parameter, and the function stores a pointer to the field value in that location. |
|
Get the field with this identifier. Zero is a special value that signifies no field identifier. All non-zero field identifiers must be unique within each message. |
Example
This example code extracts a datetime value from a message field, and converts it to a time_t
value. Programs can adapt this code as appropriate. (For corresponding code to convert a time_t
value to a datetime value, and add the datetime to a message field, see the example at Add DateTime.)
#include <limits.h>
tibrv_status
getAsTimeT(tibrvMsg msg,
const char * field,
time_t * value)
{
tibrvMsgDateTime d;
tibrv_status err;
err = tibrvMsg_GetDateTime(msg, field, &d);
if( err != TIBRV_OK )
return err;
if( d.sec > INT_MAX || d.sec < INT_MIN )
return TIBRV_CONVERSION_FAILED;
*value = (time_t) d.sec;
return TIBRV_OK;
}