OpenDDS  Snapshot(2023/03/10-19:29)
Namespaces | Functions
FACE Namespace Reference

Namespaces

 TS
 

Functions

Charstring_alloc (UnsignedLong len)
 
Charstring_dup (const Char *str)
 
void string_free (Char *str)
 

Function Documentation

◆ string_alloc()

Char* FACE::string_alloc ( UnsignedLong  len)

Definition at line 15 of file StringManager.cpp.

References ACE_Allocator::instance(), and ACE_Allocator::malloc().

Referenced by OpenDDS::FaceTypes::operator>>(), OpenDDS::DCPS::Serializer::read_string(), and string_dup().

16 {
17  if (len == 0) return &s_empty;
18  void* const raw =
19  ACE_Allocator::instance()->malloc(len + 1);
20  Char* const str = static_cast<Char*>(raw);
21  if (str) str[0] = static_cast<Char>(0);
22  return str;
23 }
static ACE_Allocator * instance(void)
ACE_CDR::Char Char
virtual void * malloc(size_type nbytes)=0

◆ string_dup()

Char* FACE::string_dup ( const Char str)

Definition at line 25 of file StringManager.cpp.

References string_alloc().

Referenced by QOS_PubSub_T< XML_QOS_TYPE, DDS_QOS_TYPE >::read_qos().

26 {
27  if (!str) return 0;
28  if (!*str) return &s_empty;
29  const size_t len = std::strlen(str);
30  Char* const cpy = string_alloc(static_cast<UnsignedLong>(len));
31  if (cpy) std::strncpy(cpy, str, len + 1);
32  return cpy;
33 }
ACE_CDR::Char Char
Char * string_alloc(UnsignedLong len)

◆ string_free()

void FACE::string_free ( Char str)

Definition at line 35 of file StringManager.cpp.

References ACE_Allocator::free(), ACE_Allocator::instance(), ACE_Allocator::malloc(), wstring_alloc(), wstring_dup(), and wstring_free().

Referenced by OpenDDS::DCPS::Serializer::free_string(), and OpenDDS::FaceTypes::operator>>().

36 {
37  if (str != &s_empty) ACE_Allocator::instance()->free(str);
38 }
virtual void free(void *ptr)=0
static ACE_Allocator * instance(void)