www.mooseframework.org
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
libMesh::Parallel::Packing< std::basic_string< T > > Class Template Reference

#include <DataIO.h>

Public Types

typedef T buffer_type
 

Static Public Member Functions

static unsigned int get_string_len (typename std::vector< T >::const_iterator in)
 
static unsigned int packed_size (typename std::vector< T >::const_iterator in)
 
static unsigned int packable_size (const std::basic_string< T > &s, const void *)
 
template<typename Iter >
static void pack (const std::basic_string< T > &b, Iter data_out, const void *)
 
static std::basic_string< T > unpack (typename std::vector< T >::const_iterator in, void *)
 

Static Public Attributes

static const unsigned int size_bytes = 4
 

Detailed Description

template<typename T>
class libMesh::Parallel::Packing< std::basic_string< T > >

Definition at line 1050 of file DataIO.h.

Member Typedef Documentation

◆ buffer_type

template<typename T >
typedef T libMesh::Parallel::Packing< std::basic_string< T > >::buffer_type

Definition at line 1055 of file DataIO.h.

Member Function Documentation

◆ get_string_len()

template<typename T >
static unsigned int libMesh::Parallel::Packing< std::basic_string< T > >::get_string_len ( typename std::vector< T >::const_iterator  in)
inlinestatic

Definition at line 1057 of file DataIO.h.

1058  {
1059  unsigned int string_len = reinterpret_cast<const unsigned char &>(in[size_bytes - 1]);
1060  for (signed int i = size_bytes - 2; i >= 0; --i)
1061  {
1062  string_len *= 256;
1063  string_len += reinterpret_cast<const unsigned char &>(in[i]);
1064  }
1065  return string_len;
1066  }

◆ pack()

template<typename T >
template<typename Iter >
static void libMesh::Parallel::Packing< std::basic_string< T > >::pack ( const std::basic_string< T > &  b,
Iter  data_out,
const void  
)
inlinestatic

Definition at line 1079 of file DataIO.h.

1080  {
1081  unsigned int string_len = b.size();
1082  for (unsigned int i = 0; i != size_bytes; ++i)
1083  {
1084  *data_out++ = (string_len % 256);
1085  string_len /= 256;
1086  }
1087 
1088  std::copy(b.begin(), b.end(), data_out);
1089  }

◆ packable_size()

template<typename T >
static unsigned int libMesh::Parallel::Packing< std::basic_string< T > >::packable_size ( const std::basic_string< T > &  s,
const void  
)
inlinestatic

Definition at line 1073 of file DataIO.h.

1074  {
1075  return s.size() + size_bytes;
1076  }

◆ packed_size()

template<typename T >
static unsigned int libMesh::Parallel::Packing< std::basic_string< T > >::packed_size ( typename std::vector< T >::const_iterator  in)
inlinestatic

Definition at line 1068 of file DataIO.h.

1069  {
1070  return get_string_len(in) + size_bytes;
1071  }
static unsigned int get_string_len(typename std::vector< T >::const_iterator in)
Definition: DataIO.h:1057

◆ unpack()

template<typename T >
static std::basic_string<T> libMesh::Parallel::Packing< std::basic_string< T > >::unpack ( typename std::vector< T >::const_iterator  in,
void  
)
inlinestatic

Definition at line 1091 of file DataIO.h.

1092  {
1093  unsigned int string_len = get_string_len(in);
1094 
1095  std::ostringstream oss;
1096  for (unsigned int i = 0; i < string_len; ++i)
1097  oss << reinterpret_cast<const unsigned char &>(in[i + size_bytes]);
1098 
1099  in += size_bytes + string_len;
1100 
1101  return oss.str();
1102  }
static unsigned int get_string_len(typename std::vector< T >::const_iterator in)
Definition: DataIO.h:1057

Member Data Documentation

◆ size_bytes

template<typename T >
const unsigned int libMesh::Parallel::Packing< std::basic_string< T > >::size_bytes = 4
static

Definition at line 1053 of file DataIO.h.


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