10#ifndef TEUCHOS_SERIALIZATION_TRAITS_HELPERS_HPP 
   11#define TEUCHOS_SERIALIZATION_TRAITS_HELPERS_HPP 
   14#include "Teuchos_ArrayView.hpp" 
   37template <
typename Ordinal, 
typename T>
 
   62template <
typename Ordinal, 
typename T, 
typename Serializer,
 
   63          bool direct = Serializer::supportsDirectSerialization>
 
   73template <
typename Ordinal, 
typename T, 
typename Serializer,
 
   74          bool direct = Serializer::supportsDirectSerialization>
 
   85template <
typename Ordinal, 
typename T, 
typename Serializer,
 
   86          bool direct = Serializer::supportsDirectSerialization>
 
   97template <
typename Ordinal, 
typename T, 
typename Serializer,
 
   98          bool direct = Serializer::supportsDirectSerialization>
 
  106template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  111    const Ordinal count, 
T buffer[],
 
  119  char* getCharBuffer() 
const;
 
  121  Ordinal getBytes() 
const;
 
 
  141template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  146    const Ordinal count, 
const T buffer[],
 
  154  const char* getCharBuffer() 
const;
 
  156  Ordinal getBytes() 
const;
 
  163  const char *charBuffer_;
 
 
  177template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  190  T* getBuffer() 
const;
 
  192  Ordinal getCount() 
const;
 
 
  211template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  224  const T* getBuffer() 
const;
 
  226  Ordinal getCount() 
const;
 
  229  const char *charBuffer_;
 
 
  244template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  249    const Ordinal count, 
T buffer[],
 
  257  char* getCharBuffer() 
const;
 
  259  Ordinal getBytes() 
const;
 
 
  279template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  284    const Ordinal count, 
const T buffer[],
 
  292  const char* getCharBuffer() 
const;
 
  294  Ordinal getBytes() 
const;
 
 
  315template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  328  T* getBuffer() 
const;
 
  330  Ordinal getCount() 
const;
 
 
  349template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  362  const T* getBuffer() 
const;
 
  364  Ordinal getCount() 
const;
 
  367  const char *charBuffer_;
 
 
  381template <
typename Ordinal, 
typename T,
 
  389    const Ordinal count, 
T buffer[],
 
 
 
  397template <
typename Ordinal, 
typename T,
 
  405    const Ordinal count, 
const T buffer[],
 
 
 
  414template <
typename Ordinal, 
typename T,
 
  431template <
typename Ordinal, 
typename T,
 
  450template <
typename Ordinal, 
typename T>
 
  455  typedef typename DS::DefaultSerializerType Serializer;
 
  459    const Ordinal count, 
T buffer[],
 
 
 
  470template <
typename Ordinal, 
typename T>
 
  475  typedef typename DS::DefaultSerializerType Serializer;
 
  479    const Ordinal count, 
const T buffer[],
 
 
 
  491template <
typename Ordinal, 
typename T>
 
  496  typedef typename DS::DefaultSerializerType Serializer;
 
 
  512template <
typename Ordinal, 
typename T>
 
  517  typedef typename DS::DefaultSerializerType Serializer;
 
 
  533template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  540  bytes_ = serializer_->fromCountToDirectBytes(count_);
 
  541  charBuffer_ = serializer_->convertToCharPtr(buffer_);
 
 
  544template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  551template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  558template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  566template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  571  return arrayView(charBuffer_, bytes_);
 
 
  579template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  586  bytes_ = serializer_->fromCountToDirectBytes(count_);
 
  587  charBuffer_ = serializer_->convertToCharPtr(buffer_);
 
 
  590template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  597template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  604template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  611template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  616  return arrayView(charBuffer_, bytes_);
 
 
  623template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  630  count_ = serializer_->fromDirectBytesToCount(bytes_);
 
  631  buffer_ = serializer_->convertFromCharPtr(charBuffer_);
 
 
  634template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  641template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  648template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  659template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  666  count_ = serializer_->fromDirectBytesToCount(bytes_);
 
  667  buffer_ = serializer_->convertFromCharPtr(charBuffer_);
 
 
  670template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  677template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  684template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  699template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  706  bytes_ = serializer_->fromCountToIndirectBytes(count_, buffer_);
 
  707  charBuffer_.resize(bytes_);
 
  708  serializer_->serialize(count_, buffer_, bytes_, &charBuffer_[0]);
 
 
  711template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  715  serializer_->deserialize(bytes_, &charBuffer_[0], count_, buffer_);
 
 
  718template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  722  return &charBuffer_[0];
 
 
  725template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  732template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  737  return charBuffer_.view(0, bytes_);
 
 
  745template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  752  bytes_ = serializer_->fromCountToIndirectBytes(count_, buffer_);
 
  753  charBuffer_.resize(bytes_);
 
  754  serializer_->serialize(count_, buffer_, bytes_, &charBuffer_[0]);
 
 
  757template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  763template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  767  return &charBuffer_[0];
 
 
  770template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  777template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  782  return charBuffer_.view(0, bytes_);
 
 
  789template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  796  count_ = serializer_->fromIndirectBytesToCount(bytes_, charBuffer_);
 
  797  buffer_.resize(count_);
 
  798  serializer_->deserialize(bytes_, charBuffer_, count_, &buffer_[0]);
 
 
  801template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  805  serializer_->serialize(count_, &buffer_[0], bytes_, charBuffer_);
 
 
  808template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  815template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  826template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  833  count_ = serializer_->fromIndirectBytesToCount(bytes_, charBuffer_);
 
  834  buffer_.resize(count_);
 
  835  serializer_->deserialize(bytes_, charBuffer_, count_, &buffer_[0]);
 
 
  838template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  844template <
typename Ordinal, 
typename T, 
typename Serializer>
 
  851template <
typename Ordinal, 
typename T, 
typename Serializer>
 
Templated array class derived from the STL std::vector.
 
Teuchos::SerializationTraits and Teuchos::DirectSerializationTraits definitions.
 
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
 
ConstValueTypeDeserializationBuffer(const Ordinal bytes, const char charBuffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
 
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
 
ConstValueTypeDeserializationBuffer(const Ordinal bytes, const char charBuffer[], const RCP< const Serializer > &serializer)
Serialize to an internally stored char[] buffer.
 
Encapsulate how an array of const objects with value sematics is serialized into a const char[] array...
 
ConstValueTypeSerializationBuffer(const Ordinal count, const T buffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
 
Encapsulate how an array of const objects with value sematics is serialized into a const char[] array...
 
ConstValueTypeSerializationBuffer(const Ordinal count, const T buffer[], const RCP< const Serializer > &serializer)
Serialize to an internally stored char[] buffer.
 
A class for instantiating a default serialization object.
 
static DefaultSerializerType getDefaultSerializer()
Return an instance of the default serializer.
 
SerializationTraits< Ordinal, T > DefaultSerializerType
Typename of default serializer.
 
static Teuchos::RCP< DefaultSerializerType > getDefaultSerializerRCP()
Return an RCP of an instance of the default serializer.
 
Smart reference counting pointer class for automatic garbage collection.
 
Strategy interface for the indirect serializing and deserializing objects of a given type handled usi...
 
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
 
ValueTypeDeserializationBuffer(const Ordinal bytes, char charBuffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
 
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
 
ValueTypeDeserializationBuffer(const Ordinal bytes, char charBuffer[], const RCP< const Serializer > &serializer)
Serialize to an internally stored char[] buffer.
 
Encapsulate how an array of non-const objects with value sematics is serialized into a char[] array.
 
ValueTypeSerializationBuffer(const Ordinal count, T buffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
 
Encapsulate how an array of non-const objects with value sematics is serialized into a char[] array.
 
ValueTypeSerializationBuffer(const Ordinal count, T buffer[], const RCP< const Serializer > &serializer)
Serialize to an internally stored char[] buffer.
 
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.