VTK-m  2.0
Classes | Namespaces | Macros | Functions
ArrayHandle.h File Reference
#include <vtkm/cont/vtkm_cont_export.h>
#include <vtkm/Assert.h>
#include <vtkm/Flags.h>
#include <vtkm/Types.h>
#include <vtkm/cont/DeviceAdapterList.h>
#include <vtkm/cont/ErrorBadValue.h>
#include <vtkm/cont/ErrorInternal.h>
#include <vtkm/cont/Storage.h>
#include <vtkm/cont/Token.h>
#include <vtkm/internal/ArrayPortalHelpers.h>
#include <algorithm>
#include <deque>
#include <iterator>
#include <memory>
#include <mutex>
#include <vector>
#include <vtkm/cont/internal/Buffer.h>
#include <vtkm/cont/ArrayHandleBasic.h>

Go to the source code of this file.

Classes

struct  vtkm::cont::StorageTagBasic
 A tag for the basic implementation of a Storage object. More...
 
class  vtkm::cont::ArrayHandle< T, StorageTag_ >
 Manages an array-worth of data. More...
 

Namespaces

 vtkm
 Groups connected points that have the same field value.
 
 vtkm::cont
 VTK-m Control Environment.
 

Macros

#define VTKM_IS_ARRAY_HANDLE(T)   VTKM_STATIC_ASSERT(::vtkm::cont::internal::ArrayHandleCheck<T>{})
 
#define VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, fullclasstype, superclass, typename__)
 
#define VTKM_ARRAY_HANDLE_SUBCLASS(classname, fullclasstype, superclass)   VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, fullclasstype, superclass, typename)
 Macro to make default methods in ArrayHandle subclasses. More...
 
#define VTKM_ARRAY_HANDLE_SUBCLASS_NT(classname, superclass)   VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, (classname), superclass, )
 Macro to make default methods in ArrayHandle subclasses. More...
 

Functions

template<typename T , typename StorageT >
VTKM_NEVER_EXPORT VTKM_CONT void vtkm::cont::printSummary_ArrayHandle (const vtkm::cont::ArrayHandle< T, StorageT > &array, std::ostream &out, bool full=false)
 

Macro Definition Documentation

◆ VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL

#define VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL (   classname,
  fullclasstype,
  superclass,
  typename__ 
)

◆ VTKM_ARRAY_HANDLE_SUBCLASS

#define VTKM_ARRAY_HANDLE_SUBCLASS (   classname,
  fullclasstype,
  superclass 
)    VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, fullclasstype, superclass, typename)

Macro to make default methods in ArrayHandle subclasses.

This macro defines the default constructors, destructors and assignment operators for ArrayHandle subclasses that are templates. The ArrayHandle subclasses are assumed to be empty convenience classes. The macro should be defined after a public: declaration.

This macro takes three arguments. The first argument is the classname. The second argument is the full class type. The third argument is the superclass type (either ArrayHandle or another sublcass). Because C macros do not handle template parameters very well (the preprocessor thinks the template commas are macro argument commas), the second and third arguments must be wrapped in parentheses.

This macro also defines a Superclass typedef as well as ValueType and StorageTag.

Note that this macro only works on ArrayHandle subclasses that are templated. For ArrayHandle sublcasses that are not templates, use VTKM_ARRAY_HANDLE_SUBCLASS_NT.

◆ VTKM_ARRAY_HANDLE_SUBCLASS_NT

#define VTKM_ARRAY_HANDLE_SUBCLASS_NT (   classname,
  superclass 
)    VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, (classname), superclass, )

Macro to make default methods in ArrayHandle subclasses.

This macro defines the default constructors, destructors and assignment operators for ArrayHandle subclasses that are not templates. The ArrayHandle subclasses are assumed to be empty convenience classes. The macro should be defined after a public: declaration.

This macro takes two arguments. The first argument is the classname. The second argument is the superclass type (either ArrayHandle or another sublcass). Because C macros do not handle template parameters very well (the preprocessor thinks the template commas are macro argument commas), the second argument must be wrapped in parentheses.

This macro also defines a Superclass typedef as well as ValueType and StorageTag.

Note that this macro only works on ArrayHandle subclasses that are not templated. For ArrayHandle sublcasses that are templates, use VTKM_ARRAY_HANDLE_SUBCLASS.

◆ VTKM_IS_ARRAY_HANDLE

#define VTKM_IS_ARRAY_HANDLE (   T)    VTKM_STATIC_ASSERT(::vtkm::cont::internal::ArrayHandleCheck<T>{})