1 #include "FACE/StringManager.h" 9 static Char s_empty = 0;
11 static WChar s_wempty = 0;
17 if (len == 0)
return &s_empty;
20 Char*
const str =
static_cast<Char*
>(raw);
21 if (str) str[0] =
static_cast<Char>(0);
28 if (!*str)
return &s_empty;
29 const size_t len = std::strlen(str);
31 if (cpy) std::strncpy(cpy, str, len + 1);
43 if (len == 0)
return &s_wempty;
44 const size_t n = (len + 1) *
sizeof(
WChar);
47 if (str) str[0] =
static_cast<WChar>(0);
54 if (!*str)
return &s_wempty;
55 const size_t len = std::wcslen(str);
57 if (cpy) std::wcsncpy(cpy, str, len + 1);
65 #endif // DDS_HAS_WCHAR 82 ser.
read_string(str.out(), FACE::wstring_alloc, FACE::wstring_free);
void wstring_free(WChar *const)
void string_free(Char *str)
virtual void free(void *ptr)=0
Char * string_alloc(UnsignedLong len)
Class to serialize and deserialize data for DDS.
static ACE_Allocator * instance(void)
WChar * wstring_dup(const WChar *const)
WChar * wstring_alloc(ULong len)
bool operator>>(DCPS::Serializer &ser, StringBase< FACE::Char > &str)
size_t read_string(ACE_CDR::Char *&dest, StrAllocate str_alloc=0, StrFree str_free=0)
Char * string_dup(const Char *str)
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
The Internal API and Implementation of OpenDDS.
virtual void * malloc(size_type nbytes)=0