OpenDDS  Snapshot(2023/04/28-20:55)
Classes | Public Types | Static Public Member Functions | Static Public Attributes | List of all members
OpenDDS::SafetyProfile::StringEltPolicy< CharT > Struct Template Reference

#include <SafetyProfileSequence.h>

Classes

struct  Element
 

Public Types

typedef const CharT * ConstElement
 
typedef const CharT * ConstRawElement
 

Static Public Member Functions

static Element make_element (CharT *&elt, seq_flag_type release)
 
static void construct (CharT **buf, seq_size_type n, seq_flag_type cookie)
 
static void copy_n (const CharT *const *in, seq_size_type n, CharT **out)
 
static void move_n (CharT **in, seq_size_type n, CharT **out)
 
static void reset_n (CharT **, seq_size_type)
 
static CharT ** destroy (CharT **buffer, seq_size_type n)
 

Static Public Attributes

static const seq_size_type extra = 1
 

Detailed Description

template<typename CharT>
struct OpenDDS::SafetyProfile::StringEltPolicy< CharT >

Element Policy for sequences of strings.

Template Parameters
CharTFACE::Char or FACE::WChar

Definition at line 126 of file SafetyProfileSequence.h.

Member Typedef Documentation

◆ ConstElement

template<typename CharT >
typedef const CharT* OpenDDS::SafetyProfile::StringEltPolicy< CharT >::ConstElement

Definition at line 202 of file SafetyProfileSequence.h.

◆ ConstRawElement

template<typename CharT >
typedef const CharT* OpenDDS::SafetyProfile::StringEltPolicy< CharT >::ConstRawElement

Definition at line 203 of file SafetyProfileSequence.h.

Member Function Documentation

◆ construct()

template<typename CharT >
void OpenDDS::SafetyProfile::StringEltPolicy< CharT >::construct ( CharT **  buf,
seq_size_type  n,
seq_flag_type  cookie 
)
inlinestatic

Definition at line 364 of file SafetyProfileSequence.h.

366  {
367  for (seq_size_type i = use_cookie; i < n + use_cookie; ++i) {
368  buffer[i] = StringTraits<CharT>::empty();
369  }
370  if (use_cookie) {
371  *reinterpret_cast<seq_size_type*>(buffer) = n;
372  }
373  }

◆ copy_n()

template<typename CharT >
void OpenDDS::SafetyProfile::StringEltPolicy< CharT >::copy_n ( const CharT *const *  in,
seq_size_type  n,
CharT **  out 
)
inlinestatic

Definition at line 376 of file SafetyProfileSequence.h.

378  {
379  for (seq_size_type i = 0; i < n; ++i) {
380  StringTraits<CharT>::free(out[i]);
381  out[i] = StringTraits<CharT>::dup(in[i]);
382  }
383  }

◆ destroy()

template<typename CharT >
CharT ** OpenDDS::SafetyProfile::StringEltPolicy< CharT >::destroy ( CharT **  buffer,
seq_size_type  n 
)
inlinestatic

Definition at line 404 of file SafetyProfileSequence.h.

406  {
407  seq_size_type n = n_or_int_max;
408  CharT** allocated = buffer;
409 
410  if (n_or_int_max == INT_MAX) {
411  allocated = buffer - 1;
412  n = *reinterpret_cast<seq_size_type*>(allocated);
413  }
414 
415  for (seq_size_type i = 0; i < n; ++i) {
416  StringTraits<CharT>::free(buffer[i]);
417  }
418 
419  return allocated;
420  }

◆ make_element()

template<typename CharT >
static Element OpenDDS::SafetyProfile::StringEltPolicy< CharT >::make_element ( CharT *&  elt,
seq_flag_type  release 
)
inlinestatic

Definition at line 197 of file SafetyProfileSequence.h.

198  {
199  return Element(elt, release);
200  }

◆ move_n()

template<typename CharT >
void OpenDDS::SafetyProfile::StringEltPolicy< CharT >::move_n ( CharT **  in,
seq_size_type  n,
CharT **  out 
)
inlinestatic

Definition at line 386 of file SafetyProfileSequence.h.

References OpenDDS::DCPS::swap().

388  {
389  for (seq_size_type i = 0; i < n; ++i) {
390  std::swap(in[i], out[i]);
391  }
392  }
void swap(MessageBlock &lhs, MessageBlock &rhs)

◆ reset_n()

template<typename CharT >
void OpenDDS::SafetyProfile::StringEltPolicy< CharT >::reset_n ( CharT **  buffer,
seq_size_type  n 
)
inlinestatic

Definition at line 395 of file SafetyProfileSequence.h.

396  {
397  for (seq_size_type i = 0; i < n; ++i) {
398  StringTraits<CharT>::free(buffer[i]);
399  buffer[i] = StringTraits<CharT>::empty();
400  }
401  }

Member Data Documentation

◆ extra

template<typename CharT >
const seq_size_type OpenDDS::SafetyProfile::StringEltPolicy< CharT >::extra = 1
static

Definition at line 204 of file SafetyProfileSequence.h.


The documentation for this struct was generated from the following file: