11#include <alien/core/backend/BackEnd.h>
13#include <alien/utils/ObjectWithTrace.h>
80 ALIEN_ASSERT((impl != NULL), (
"Null implementation"));
81 ALIEN_ASSERT((impl->
backend() == backend), (
"Bad backend"));
82 T* t =
dynamic_cast<T*
>(impl);
83 ALIEN_ASSERT((t != NULL), (
"Bad dynamic cast"));
98 ALIEN_ASSERT((impl != NULL), (
"Null implementation"));
99 ALIEN_ASSERT((impl->
backend() == backend), (
"Bad backend"));
100 const T* t =
dynamic_cast<const T*
>(impl);
101 ALIEN_ASSERT((t != NULL), (
"Bad dynamic cast"));
106template<
typename SourceTagT,
116 virtual void convert(SourceVectorType
const& source, TargetVectorType& target)
const = 0 ;
virtual ~IVectorConverter()
Free resources.
static T & cast(IVectorImpl *impl, BackEndId backend)
Cast a vector implementation in its actual type.
virtual void convert(const IVectorImpl *sourceImpl, IVectorImpl *targetImpl) const =0
Convert a vector from one format to another.
static const T & cast(const IVectorImpl *impl, BackEndId backend)
Const cast a vector implementation in its actual type.
virtual BackEndId targetBackend() const =0
Get the target backend id.
virtual BackEndId sourceBackend() const =0
Get the source backend id.
BackEndId backendId() const
Get the target backend id.
Interface to handle abstract vectors implementation.
virtual BackEndId backend() const
virtual ~VectorConverterT()
Free resources.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --