42#ifndef TEUCHOS_SERIALIZATION_TRAITS_HELPERS_HPP
43#define TEUCHOS_SERIALIZATION_TRAITS_HELPERS_HPP
46#include "Teuchos_ArrayView.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;
195 const char *charBuffer_;
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;
261 const char *charBuffer_;
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;
399 const char *charBuffer_;
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>
487 typedef typename DS::DefaultSerializerType Serializer;
491 const Ordinal count,
T buffer[],
502template <
typename Ordinal,
typename T>
507 typedef typename DS::DefaultSerializerType Serializer;
511 const Ordinal count,
const T buffer[],
523template <
typename Ordinal,
typename T>
528 typedef typename DS::DefaultSerializerType Serializer;
544template <
typename Ordinal,
typename T>
549 typedef typename DS::DefaultSerializerType Serializer;
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.
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.