42#ifndef TEUCHOS_SERIALIZATION_TRAITS_HELPERS_HPP
43#define TEUCHOS_SERIALIZATION_TRAITS_HELPERS_HPP
69template <
typename Ordinal,
typename T>
94template <
typename Ordinal,
typename T,
typename Serializer,
95 bool direct = Serializer::supportsDirectSerialization>
105template <
typename Ordinal,
typename T,
typename Serializer,
106 bool direct = Serializer::supportsDirectSerialization>
117template <
typename Ordinal,
typename T,
typename Serializer,
118 bool direct = Serializer::supportsDirectSerialization>
129template <
typename Ordinal,
typename T,
typename Serializer,
130 bool direct = Serializer::supportsDirectSerialization>
138template <
typename Ordinal,
typename T,
typename Serializer>
143 const Ordinal count,
T buffer[],
151 char* getCharBuffer()
const;
153 Ordinal getBytes()
const;
173template <
typename Ordinal,
typename T,
typename Serializer>
178 const Ordinal count,
const T buffer[],
186 const char* getCharBuffer()
const;
188 Ordinal getBytes()
const;
209template <
typename Ordinal,
typename T,
typename Serializer>
222 T* getBuffer()
const;
224 Ordinal getCount()
const;
243template <
typename Ordinal,
typename T,
typename Serializer>
256 const T* getBuffer()
const;
258 Ordinal getCount()
const;
276template <
typename Ordinal,
typename T,
typename Serializer>
281 const Ordinal count,
T buffer[],
289 char* getCharBuffer()
const;
291 Ordinal getBytes()
const;
311template <
typename Ordinal,
typename T,
typename Serializer>
316 const Ordinal count,
const T buffer[],
324 const char* getCharBuffer()
const;
326 Ordinal getBytes()
const;
347template <
typename Ordinal,
typename T,
typename Serializer>
360 T* getBuffer()
const;
362 Ordinal getCount()
const;
381template <
typename Ordinal,
typename T,
typename Serializer>
394 const T* getBuffer()
const;
396 Ordinal getCount()
const;
413template <
typename Ordinal,
typename T,
421 const Ordinal count,
T buffer[],
429template <
typename Ordinal,
typename T,
437 const Ordinal count,
const T buffer[],
446template <
typename Ordinal,
typename T,
463template <
typename Ordinal,
typename T,
482template <
typename Ordinal,
typename T>
491 const Ordinal count,
T buffer[],
502template <
typename Ordinal,
typename T>
511 const Ordinal count,
const T buffer[],
523template <
typename Ordinal,
typename T>
544template <
typename Ordinal,
typename T>
565template <
typename Ordinal,
typename T,
typename Serializer>
572 bytes_ = serializer_->fromCountToDirectBytes(count_);
573 charBuffer_ = serializer_->convertToCharPtr(buffer_);
576template <
typename Ordinal,
typename T,
typename Serializer>
583template <
typename Ordinal,
typename T,
typename Serializer>
590template <
typename Ordinal,
typename T,
typename Serializer>
598template <
typename Ordinal,
typename T,
typename Serializer>
603 return arrayView(charBuffer_, bytes_);
611template <
typename Ordinal,
typename T,
typename Serializer>
618 bytes_ = serializer_->fromCountToDirectBytes(count_);
619 charBuffer_ = serializer_->convertToCharPtr(buffer_);
622template <
typename Ordinal,
typename T,
typename Serializer>
629template <
typename Ordinal,
typename T,
typename Serializer>
636template <
typename Ordinal,
typename T,
typename Serializer>
643template <
typename Ordinal,
typename T,
typename Serializer>
648 return arrayView(charBuffer_, bytes_);
655template <
typename Ordinal,
typename T,
typename Serializer>
662 count_ = serializer_->fromDirectBytesToCount(bytes_);
663 buffer_ = serializer_->convertFromCharPtr(charBuffer_);
666template <
typename Ordinal,
typename T,
typename Serializer>
673template <
typename Ordinal,
typename T,
typename Serializer>
680template <
typename Ordinal,
typename T,
typename Serializer>
691template <
typename Ordinal,
typename T,
typename Serializer>
698 count_ = serializer_->fromDirectBytesToCount(bytes_);
699 buffer_ = serializer_->convertFromCharPtr(charBuffer_);
702template <
typename Ordinal,
typename T,
typename Serializer>
709template <
typename Ordinal,
typename T,
typename Serializer>
716template <
typename Ordinal,
typename T,
typename Serializer>
731template <
typename Ordinal,
typename T,
typename Serializer>
738 bytes_ = serializer_->fromCountToIndirectBytes(count_, buffer_);
739 charBuffer_.resize(bytes_);
740 serializer_->serialize(count_, buffer_, bytes_, &charBuffer_[0]);
743template <
typename Ordinal,
typename T,
typename Serializer>
747 serializer_->deserialize(bytes_, &charBuffer_[0], count_, buffer_);
750template <
typename Ordinal,
typename T,
typename Serializer>
754 return &charBuffer_[0];
757template <
typename Ordinal,
typename T,
typename Serializer>
764template <
typename Ordinal,
typename T,
typename Serializer>
769 return charBuffer_.view(0, bytes_);
777template <
typename Ordinal,
typename T,
typename Serializer>
784 bytes_ = serializer_->fromCountToIndirectBytes(count_, buffer_);
785 charBuffer_.resize(bytes_);
786 serializer_->serialize(count_, buffer_, bytes_, &charBuffer_[0]);
789template <
typename Ordinal,
typename T,
typename Serializer>
795template <
typename Ordinal,
typename T,
typename Serializer>
799 return &charBuffer_[0];
802template <
typename Ordinal,
typename T,
typename Serializer>
809template <
typename Ordinal,
typename T,
typename Serializer>
814 return charBuffer_.view(0, bytes_);
821template <
typename Ordinal,
typename T,
typename Serializer>
828 count_ = serializer_->fromIndirectBytesToCount(bytes_, charBuffer_);
829 buffer_.resize(count_);
830 serializer_->deserialize(bytes_, charBuffer_, count_, &buffer_[0]);
833template <
typename Ordinal,
typename T,
typename Serializer>
837 serializer_->serialize(count_, &buffer_[0], bytes_, charBuffer_);
840template <
typename Ordinal,
typename T,
typename Serializer>
847template <
typename Ordinal,
typename T,
typename Serializer>
858template <
typename Ordinal,
typename T,
typename Serializer>
865 count_ = serializer_->fromIndirectBytesToCount(bytes_, charBuffer_);
866 buffer_.resize(count_);
867 serializer_->deserialize(bytes_, charBuffer_, count_, &buffer_[0]);
870template <
typename Ordinal,
typename T,
typename Serializer>
876template <
typename Ordinal,
typename T,
typename Serializer>
883template <
typename Ordinal,
typename T,
typename Serializer>
Templated array class derived from the STL std::vector.
Teuchos::SerializationTraits and Teuchos::DirectSerializationTraits definitions.
ConstValueTypeDeserializationBufferImp & operator=(const ConstValueTypeDeserializationBufferImp &)
ConstValueTypeDeserializationBufferImp(const ConstValueTypeDeserializationBufferImp &)
ConstValueTypeDeserializationBufferImp()
RCP< const Serializer > serializer_
RCP< const Serializer > serializer_
ConstValueTypeDeserializationBufferImp(const ConstValueTypeDeserializationBufferImp &)
ConstValueTypeDeserializationBufferImp & operator=(const ConstValueTypeDeserializationBufferImp &)
ConstValueTypeDeserializationBufferImp()
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.
DefaultSerializer< Ordinal, T > DS
DS::DefaultSerializerType Serializer
ConstValueTypeDeserializationBufferImp< Ordinal, T, Serializer > Base
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.
ConstValueTypeDeserializationBufferImp< Ordinal, T, Serializer > Base
ConstValueTypeSerializationBufferImp & operator=(const ConstValueTypeSerializationBufferImp &)
ConstValueTypeSerializationBufferImp(const ConstValueTypeSerializationBufferImp &)
Array< char > charBuffer_
RCP< const Serializer > serializer_
ConstValueTypeSerializationBufferImp()
ConstValueTypeSerializationBufferImp & operator=(const ConstValueTypeSerializationBufferImp &)
RCP< const Serializer > serializer_
ConstValueTypeSerializationBufferImp()
ConstValueTypeSerializationBufferImp(const ConstValueTypeSerializationBufferImp &)
Encapsulate how an array of const objects with value sematics is serialized into a const char[] array...
DefaultSerializer< Ordinal, T > DS
ConstValueTypeSerializationBuffer(const Ordinal count, const T buffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
ConstValueTypeSerializationBufferImp< Ordinal, T, Serializer > Base
DS::DefaultSerializerType Serializer
Encapsulate how an array of const objects with value sematics is serialized into a const char[] array...
ConstValueTypeSerializationBufferImp< Ordinal, T, Serializer > Base
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.
Concrete serial communicator subclass.
Strategy interface for the indirect serializing and deserializing objects of a given type handled usi...
RCP< const Serializer > serializer_
ValueTypeDeserializationBufferImp(const ValueTypeDeserializationBufferImp &)
ValueTypeDeserializationBufferImp & operator=(const ValueTypeDeserializationBufferImp &)
ValueTypeDeserializationBufferImp()
ValueTypeDeserializationBufferImp(const ValueTypeDeserializationBufferImp &)
RCP< const Serializer > serializer_
ValueTypeDeserializationBufferImp & operator=(const ValueTypeDeserializationBufferImp &)
ValueTypeDeserializationBufferImp()
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
DefaultSerializer< Ordinal, T > DS
ValueTypeDeserializationBuffer(const Ordinal bytes, char charBuffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
ValueTypeDeserializationBufferImp< Ordinal, T, Serializer > Base
DS::DefaultSerializerType Serializer
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
ValueTypeDeserializationBufferImp< Ordinal, T, Serializer > Base
ValueTypeDeserializationBuffer(const Ordinal bytes, char charBuffer[], const RCP< const Serializer > &serializer)
Serialize to an internally stored char[] buffer.
ValueTypeSerializationBufferImp()
Array< char > charBuffer_
ValueTypeSerializationBufferImp & operator=(const ValueTypeSerializationBufferImp &)
ValueTypeSerializationBufferImp(const ValueTypeSerializationBufferImp &)
RCP< const Serializer > serializer_
RCP< const Serializer > serializer_
ValueTypeSerializationBufferImp()
ValueTypeSerializationBufferImp & operator=(const ValueTypeSerializationBufferImp &)
ValueTypeSerializationBufferImp(const ValueTypeSerializationBufferImp &)
Encapsulate how an array of non-const objects with value sematics is serialized into a char[] array.
ValueTypeSerializationBufferImp< Ordinal, T, Serializer > Base
ValueTypeSerializationBuffer(const Ordinal count, T buffer[], const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
Serialize to an internally stored char[] buffer.
DefaultSerializer< Ordinal, T > DS
DS::DefaultSerializerType Serializer
Encapsulate how an array of non-const objects with value sematics is serialized into a char[] array.
ValueTypeSerializationBufferImp< Ordinal, T, Serializer > Base
ValueTypeSerializationBuffer(const Ordinal count, T buffer[], const RCP< const Serializer > &serializer)
Serialize to an internally stored char[] buffer.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.