RTI Connext Cert C API  Version 2.4.15
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
String Support

String creation, cloning, assignment, and deletion. More...

Functions

char * DDS_String_alloc (DDS_UnsignedLong length)
 Create a new empty string that can hold up to length characters.
char * DDS_String_dup (const char *str)
 Clone a string. Creates a new string that duplicates the value of string.
int DDS_String_cmp (const char *s1, const char *s2)
 Compare two strings.
int DDS_String_ncmp (const char *s1, const char *s2, DDS_UnsignedLong num)
 Compare two strings.
int DDS_String_length (const char *string)
 Return the length of a string.
int DDS_Wstring_cmp (const CDR_Wstring *s1, const CDR_Wstring *s2)
 Return the length of a string.

Detailed Description

String creation, cloning, assignment, and deletion.

The functions in this class ensure consistent cross-platform implementations for string creation (DDS_String_alloc()), deletion (DDS_String_free()), and cloning (DDS_String_dup()) that preserve the mutable value type semantics. These are to be viewed as functions that define a string class whose data is represented by a 'char*'.

The following conventions govern the memory management of strings in RTI Connext Micro:

The representation of a string in C/C++ unfortunately does not allow programs to detect how much memory has been allocated for a string. RTI Connext Micro must therefore make some assumptions when a user requests that a string be copied into. The following rules apply when RTI Connext Micro is copying into a string or string sequence:

This requirement can generally be assured by adhering to the following idiom for manipulating strings:


Function Documentation

char* DDS_String_alloc ( DDS_UnsignedLong  length)

Create a new empty string that can hold up to length characters.

This function will allocate enough memory to hold a string of length characters, plus one additional byte to hold the NULL terminating character.

Parameters:
length<<in>> Capacity of the string.
Returns:
A newly created non-NULL string upon success or NULL upon failure.
MT Safety:
This operation is thread safe.
API Restriction:
This function must only be called after DDS_DomainParticipantFactory_get_instance.
char* DDS_String_dup ( const char *  str)

Clone a string. Creates a new string that duplicates the value of string.

Parameters:
str<<in>> The string to duplicate.
Returns:
If string == NULL, this function always returns NULL. Otherwise, upon success it returns a newly created string whose value is string; upon failure it returns NULL.
MT Safety:
This operation is not thread safe.
API Restriction:
This function must only be called after DDS_DomainParticipantFactory_get_instance.
int DDS_String_cmp ( const char *  s1,
const char *  s2 
)

Compare two strings.

Precondition:
s1 and s2 can be NULL or non-NULL.
Parameters:
s1<<in>> String 1 to compare.
s2<<in>> String 2 to compare.
Returns:
0 if s1 equals s2, positive integer if s1 is greater than s2, negative integer if s1 is less than s2
MT Safety:
This operation is not thread safe.
int DDS_String_ncmp ( const char *  s1,
const char *  s2,
DDS_UnsignedLong  num 
)

Compare two strings.

This function compares two strings for lexicographic equivalence, but only up to num bytes.

Parameters:
[in]s1<<in>> Left side of comparison
[in]s2<<in>> Right side of comparison
[in]numMaximum number of bytes to compare
Returns:
0 if s1 equals s2, positive integer if s1 is greater than s2, negative integer if s1 is less than s2
MT Safety:
This operation is not thread safe.
int DDS_String_length ( const char *  string)

Return the length of a string.

Precondition:
string must be non-NULL
Parameters:
string<<in>> String to return length of
Returns:
length of string. Does not include the NUL-termination character. If a NULL value is passed as argument, RTI_SIZE_INVALID will be returned.
MT Safety:
This operation is not thread safe.
int DDS_Wstring_cmp ( const CDR_Wstring *  s1,
const CDR_Wstring *  s2 
)

Return the length of a string.

Precondition:
s1 and s2 can be NULL or non-NULL.
Parameters:
s1<<in>> String 1 to compare.
s2<<in>> String 2 to compare.
Returns:
0 if s1 equals s2, positive integer if s1 is greater than s2, negative integer if s1 is less than s2
MT Safety:
This operation is not thread safe.

RTI Connext Cert C API Version 2.4.15 Copyright © Tue Jan 21 2025 Real-Time Innovations, Inc