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.