10#ifndef TEUCHOS_REDUCTION_OP_HELPERS_HPP
11#define TEUCHOS_REDUCTION_OP_HELPERS_HPP
13#include "Teuchos_ReductionOp.hpp"
14#include "Teuchos_SerializationTraitsHelpers.hpp"
15#include "Teuchos_SerializerHelpers.hpp"
25template<
typename Ordinal,
typename T,
typename Serializer>
36 const Ordinal charCount
37 ,
const char charInBuffer[]
38 ,
char charInoutBuffer[]
55template<
typename Ordinal,
typename T,
66 ) : Base(reductOp, serializer) {}
78template<
typename Ordinal,
typename T>
90 ) : Base(reductOp, serializer) {}
99template<
typename Ordinal,
typename T>
110 const Ordinal charCount
111 ,
const char charInBuffer[]
112 ,
char charInoutBuffer[]
130template<
typename Ordinal,
typename T,
typename Serializer>
135 :reductOp_(reductOp), serializer_(serializer)
138template<
typename Ordinal,
typename T,
typename Serializer>
140 const Ordinal charCount
141 ,
const char charInBuffer[]
142 ,
char charInoutBuffer[]
146 inBuffer(charCount,charInBuffer,serializer_);
148 inoutBuffer(charCount,charInoutBuffer,serializer_);
150 inBuffer.getCount(),inBuffer.getBuffer(),inoutBuffer.getBuffer()
158template<
typename Ordinal,
typename T>
163 :serializer_(serializer), reductOp_(reductOp)
166template<
typename Ordinal,
typename T>
168 const Ordinal charCount
169 ,
const char charInBuffer[]
170 ,
char charInoutBuffer[]
174 inBuffer(*serializer_,charCount,charInBuffer);
176 inoutBuffer(*serializer_,charCount,charInoutBuffer);
CharToReferenceTypeReductionOp(const RCP< const Serializer< Ordinal, T > > &serializer, const RCP< const ReferenceTypeReductionOp< Ordinal, T > > &reductOp)
void reduce(const Ordinal charCount, const char charInBuffer[], char charInoutBuffer[]) const
void reduce(const Ordinal charCount, const char charInBuffer[], char charInoutBuffer[]) const
CharToValueTypeReductionOpImp(const RCP< const ValueTypeReductionOp< Ordinal, T > > &reductOp, const RCP< const Serializer > &serializer)
CharToValueTypeReductionOp(const RCP< const ValueTypeReductionOp< Ordinal, T > > &reductOp, const RCP< const Serializer > &serializer=DS::getDefaultSerializerRCP())
CharToValueTypeReductionOp(const RCP< const ValueTypeReductionOp< Ordinal, T > > &reductOp, const RCP< const Serializer > &serializer)
Encapsulate how an array of onst objects with reference sematics is deserialized from a char[] array ...
const T *const * getBuffer() const
Encapsulate how an array of non-const serialized objects with value sematics stored in a char[] array...
A class for instantiating a default serialization object.
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.
Encapsulate how an array of non-const objects with reference sematics is deserialized from a char[] a...
T *const * getBuffer() const
Base interface class for user-defined reduction operations for objects that use reference semantics.
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...
Base interface class for user-defined reduction operations for objects that use value semantics.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...