CMS 3D CMS Logo

Classes | Namespaces | Macros
SoAView.h File Reference
#include "SoACommon.h"

Go to the source code of this file.

Classes

struct  cms::soa::ConstValueTraits< C, COLUMN_TYPE >
 
struct  cms::soa::ConstValueTraits< C, SoAColumnType::scalar >
 

Namespaces

 cms::soa
 

Macros

#define _COLUMN_TYPE(LAYOUT_NAME, LAYOUT_MEMBER)   typename std::remove_pointer<decltype(BOOST_PP_CAT(LAYOUT_NAME, Type)()::LAYOUT_MEMBER())>::type
 
#define _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG(R, DATA, LAYOUT_MEMBER_NAME)   _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA)
 
#define _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)   (DATA typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME)::ConstType LOCAL_NAME)
 
#define _DECLARE_CONST_VIEW_SOA_MEMBER(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_CONST_VIEW_SOA_MEMBER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_CONST_VIEW_SOA_MEMBER_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)   typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME)::ConstType BOOST_PP_CAT(LOCAL_NAME, Parameters_);
 
#define _DECLARE_LAYOUT_LIST(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_LAYOUT_LIST_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_LAYOUT_LIST_IMPL(LAYOUT, NAME)   (NAME)
 
#define _DECLARE_VIEW_CONST_ELEM_MEMBER_INIT(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_CONST_ELEM_MEMBER_INIT_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_VIEW_CONST_ELEM_MEMBER_INIT_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)   (BOOST_PP_CAT(LOCAL_NAME, _)(DATA, LOCAL_NAME))
 
#define _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR(R, DATA, LAYOUT_MEMBER_NAME)   _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR_IMPL LAYOUT_MEMBER_NAME
 
#define _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)   (BOOST_PP_CAT(LOCAL_NAME, Parameters_))
 
#define _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER(R, DATA, LAYOUT_MEMBER_NAME)   _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER_IMPL LAYOUT_MEMBER_NAME
 
#define _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS(R, DATA, LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)   (DATA typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME)::TupleOrPointerType LOCAL_NAME)
 
#define _DECLARE_VIEW_CONSTRUCTION_PARAMETERS(R, DATA, TYPE_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_CONSTRUCTION_PARAMETERS_IMPL BOOST_PP_TUPLE_PUSH_BACK(TYPE_NAME, DATA))
 
#define _DECLARE_VIEW_CONSTRUCTION_PARAMETERS_IMPL(LAYOUT_TYPE, LAYOUT_NAME, DATA)   (DATA LAYOUT_TYPE & LAYOUT_NAME)
 
#define _DECLARE_VIEW_ELEM_MEMBER_INIT(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_ELEM_MEMBER_INIT_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_VIEW_ELEM_MEMBER_INIT_IMPL(LAYOUT, MEMBER, LOCAL_NAME, DATA)   (LOCAL_NAME(DATA, LOCAL_NAME))
 
#define _DECLARE_VIEW_ELEMENT_CONSTR_CALL(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_ELEMENT_CONSTR_CALL_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_ELEMENT_CONSTR_CALL_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)   (const_cast_SoAParametersImpl(base_type::BOOST_PP_CAT(LOCAL_NAME, Parameters_)))
 
#define _DECLARE_VIEW_ELEMENT_VALUE_ARG(R, DATA, LAYOUT_MEMBER_NAME)   _DECLARE_VIEW_ELEMENT_VALUE_ARG_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA)
 
#define _DECLARE_VIEW_ELEMENT_VALUE_ARG_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)   (DATA typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME) LOCAL_NAME)
 
#define _DECLARE_VIEW_ELEMENT_VALUE_COPY(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_ELEMENT_VALUE_COPY_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_ELEMENT_VALUE_COPY_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_ELEMENT_VALUE_MEMBER(R, DATA, LAYOUT_MEMBER_NAME)   _DECLARE_VIEW_ELEMENT_VALUE_MEMBER_IMPL LAYOUT_MEMBER_NAME
 
#define _DECLARE_VIEW_ELEMENT_VALUE_MEMBER_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE(R, DATA, TYPE_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE_IMPL TYPE_NAME)
 
#define _DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE_IMPL(TYPE, NAME)
 
#define _DECLARE_VIEW_LAYOUT_TYPE_ALIAS(R, DATA, TYPE_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_LAYOUT_TYPE_ALIAS_IMPL TYPE_NAME)
 
#define _DECLARE_VIEW_LAYOUT_TYPE_ALIAS_IMPL(TYPE, NAME)   using BOOST_PP_CAT(TypeOf_, NAME) = TYPE;
 
#define _DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER_IMPL(LAYOUT, MEMBER, LOCAL_NAME, DATA)   BOOST_PP_CAT(MEMBER, Parameters_) = DATA.BOOST_PP_CAT(MEMBER, Parameters_);
 
#define _DECLARE_VIEW_MEMBER_CONST_POINTERS(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_CONST_POINTERS_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_MEMBER_CONST_POINTERS_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_MEMBER_INITIALIZERS(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_INITIALIZERS_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN_IMPL(LAYOUT, MEMBER, NAME)
 
#define _DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER_IMPL(LAYOUT, MEMBER, LOCAL_NAME, DATA)   (BOOST_PP_CAT(MEMBER, Parameters_){DATA.BOOST_PP_CAT(MEMBER, Parameters_)})
 
#define _DECLARE_VIEW_MEMBER_INITIALIZERS_IMPL(LAYOUT, MEMBER, NAME)
 
#define _DECLARE_VIEW_MEMBER_LIST(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_LIST_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_MEMBER_LIST_IMPL(LAYOUT, MEMBER, NAME)   (NAME)
 
#define _DECLARE_VIEW_MEMBER_POINTERS(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_POINTERS_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_MEMBER_POINTERS_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_MEMBER_TYPE_ALIAS(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_TYPE_ALIAS_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_VIEW_MEMBER_TYPE_ALIAS_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, CAST)
 
#define _DECLARE_VIEW_OTHER_MEMBER_LIST(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_OTHER_MEMBER_LIST_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_OTHER_MEMBER_LIST_IMPL(LAYOUT, MEMBER, NAME)   (const_cast_SoAParametersImpl(other.BOOST_PP_CAT(NAME, Parameters_)).tupleOrPointer())
 
#define _DECLARE_VIEW_SOA_ACCESSOR(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_SOA_ACCESSOR_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_SOA_ACCESSOR_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_SOA_CONST_ACCESSOR(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_SOA_CONST_ACCESSOR_IMPL LAYOUT_MEMBER_NAME)
 
#define _DECLARE_VIEW_SOA_CONST_ACCESSOR_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 
#define _DECLARE_VIEW_SOA_MEMBER(R, DATA, LAYOUT_MEMBER_NAME)   BOOST_PP_EXPAND(_DECLARE_VIEW_SOA_MEMBER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
 
#define _DECLARE_VIEW_SOA_MEMBER_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)   typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME) BOOST_PP_CAT(LOCAL_NAME, Parameters_);
 
#define _GENERATE_SOA_CONST_VIEW(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_CONST_VIEW_PART_0(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_CONST_VIEW_PART_0_NO_DEFAULTS(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_CONST_VIEW_PART_1(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_TRIVIAL_CONST_VIEW(CLASS, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_TRIVIAL_VIEW(CLASS, LAYOUTS_LIST, VALUE_LIST, ...)
 
#define _GENERATE_SOA_VIEW(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_VIEW_PART_0(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_VIEW_PART_0_NO_DEFAULTS(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_VIEW_PART_1(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _GENERATE_SOA_VIEW_PART_2(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT(R, DATA, TYPE_NAME)   _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT_IMPL TYPE_NAME
 
#define _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT_IMPL(VALUE_TYPE, CPP_TYPE, NAME)
 
#define _UPDATE_SIZE_OF_VIEW(R, DATA, TYPE_NAME)   BOOST_PP_EXPAND(_UPDATE_SIZE_OF_VIEW_IMPL TYPE_NAME)
 
#define _UPDATE_SIZE_OF_VIEW_IMPL(LAYOUT_TYPE, LAYOUT_NAME)
 
#define _VIEW_FIELD_FROM_LAYOUT(R, DATA, VALUE_TYPE_NAME)   BOOST_PP_EXPAND((_VIEW_FIELD_FROM_LAYOUT_IMPL BOOST_PP_TUPLE_PUSH_BACK(VALUE_TYPE_NAME, DATA)))
 
#define _VIEW_FIELD_FROM_LAYOUT_IMPL(VALUE_TYPE, CPP_TYPE, NAME, DATA)   (DATA, NAME, NAME)
 
#define GENERATE_SOA_CONST_VIEW(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define GENERATE_SOA_VIEW(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
 
#define SOA_VIEW_LAYOUT(TYPE, NAME)   (TYPE, NAME)
 
#define SOA_VIEW_LAYOUT_LIST(...)   __VA_ARGS__
 
#define SOA_VIEW_VALUE(LAYOUT_NAME, LAYOUT_MEMBER)   (LAYOUT_NAME, LAYOUT_MEMBER, LAYOUT_MEMBER)
 
#define SOA_VIEW_VALUE_LIST(...)   __VA_ARGS__
 
#define SOA_VIEW_VALUE_RENAME(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)   (LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)
 

Macro Definition Documentation

◆ _COLUMN_TYPE

#define _COLUMN_TYPE (   LAYOUT_NAME,
  LAYOUT_MEMBER 
)    typename std::remove_pointer<decltype(BOOST_PP_CAT(LAYOUT_NAME, Type)()::LAYOUT_MEMBER())>::type

Helper macro extracting the data type from metadata of a layout or view

Definition at line 272 of file SoAView.h.

◆ _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG

#define _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA)

Definition at line 290 of file SoAView.h.

◆ _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG_IMPL

#define _DECLARE_CONST_VIEW_ELEMENT_VALUE_ARG_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  DATA 
)    (DATA typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME)::ConstType LOCAL_NAME)

Generator of parameters for (const) element subclass (expanded comma separated).

Definition at line 287 of file SoAView.h.

◆ _DECLARE_CONST_VIEW_SOA_MEMBER

#define _DECLARE_CONST_VIEW_SOA_MEMBER (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_CONST_VIEW_SOA_MEMBER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 468 of file SoAView.h.

◆ _DECLARE_CONST_VIEW_SOA_MEMBER_IMPL

#define _DECLARE_CONST_VIEW_SOA_MEMBER_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  DATA 
)    typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME)::ConstType BOOST_PP_CAT(LOCAL_NAME, Parameters_);

Const SoA class member declaration (column pointers and parameters).

Definition at line 465 of file SoAView.h.

◆ _DECLARE_LAYOUT_LIST

#define _DECLARE_LAYOUT_LIST (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_LAYOUT_LIST_IMPL LAYOUT_MEMBER_NAME)

Definition at line 224 of file SoAView.h.

◆ _DECLARE_LAYOUT_LIST_IMPL

#define _DECLARE_LAYOUT_LIST_IMPL (   LAYOUT,
  NAME 
)    (NAME)

Generator of layout list.

Definition at line 222 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEM_MEMBER_INIT

#define _DECLARE_VIEW_CONST_ELEM_MEMBER_INIT (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_CONST_ELEM_MEMBER_INIT_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 300 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEM_MEMBER_INIT_IMPL

#define _DECLARE_VIEW_CONST_ELEM_MEMBER_INIT_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  DATA 
)    (BOOST_PP_CAT(LOCAL_NAME, _)(DATA, LOCAL_NAME))

Generator of member initialization for constructor of element subclass

Definition at line 296 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR

#define _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR_IMPL LAYOUT_MEMBER_NAME

Definition at line 316 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR_IMPL

#define _DECLARE_VIEW_CONST_ELEMENT_ACCESSOR_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
SOA_HOST_DEVICE SOA_INLINE \
const typename SoAConstValueWithConf<BOOST_PP_CAT(Metadata::ColumnTypeOf_, LOCAL_NAME), \
const typename BOOST_PP_CAT(Metadata::TypeOf_, LOCAL_NAME)>::RefToConst \
LOCAL_NAME() const { \
return BOOST_PP_CAT(LOCAL_NAME, _)(); \
}
#define SOA_HOST_DEVICE
Definition: SoACommon.h:27

Declaration of the members accessors of the const element subclass

Definition at line 307 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL

#define _DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL_IMPL LAYOUT_MEMBER_NAME)

Definition at line 362 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL_IMPL

#define _DECLARE_VIEW_CONST_ELEMENT_CONSTR_CALL_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)    (BOOST_PP_CAT(LOCAL_NAME, Parameters_))

Parameters passed to const element subclass constructor in operator[]

Definition at line 359 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER

#define _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER_IMPL LAYOUT_MEMBER_NAME

Definition at line 330 of file SoAView.h.

◆ _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER_IMPL

#define _DECLARE_VIEW_CONST_ELEMENT_VALUE_MEMBER_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
const cms::soa::ConstValueTraits<SoAConstValueWithConf<BOOST_PP_CAT(Metadata::ColumnTypeOf_, LOCAL_NAME), \
typename BOOST_PP_CAT(Metadata::TypeOf_, LOCAL_NAME)>, \
BOOST_PP_CAT(Metadata::ColumnTypeOf_, LOCAL_NAME)> \
BOOST_PP_CAT(LOCAL_NAME, _);

Declaration of the private members of the const element subclass

Definition at line 323 of file SoAView.h.

◆ _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS

#define _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)
Value:
BOOST_PP_EXPAND( \
_DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))
#define _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS_IMPL(LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME, DATA)
Definition: SoAView.h:158
#define DATA
Definition: cutflowutil.h:20

Definition at line 161 of file SoAView.h.

◆ _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS_IMPL

#define _DECLARE_VIEW_CONSTRUCTION_BYCOLUMN_PARAMETERS_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  DATA 
)    (DATA typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME)::TupleOrPointerType LOCAL_NAME)

Generator of parameters for constructor by column.

Definition at line 158 of file SoAView.h.

◆ _DECLARE_VIEW_CONSTRUCTION_PARAMETERS

#define _DECLARE_VIEW_CONSTRUCTION_PARAMETERS (   R,
  DATA,
  TYPE_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_CONSTRUCTION_PARAMETERS_IMPL BOOST_PP_TUPLE_PUSH_BACK(TYPE_NAME, DATA))

Definition at line 152 of file SoAView.h.

◆ _DECLARE_VIEW_CONSTRUCTION_PARAMETERS_IMPL

#define _DECLARE_VIEW_CONSTRUCTION_PARAMETERS_IMPL (   LAYOUT_TYPE,
  LAYOUT_NAME,
  DATA 
)    (DATA LAYOUT_TYPE & LAYOUT_NAME)

Generator of parameters (layouts/views) for constructor by layouts/views.

Definition at line 150 of file SoAView.h.

◆ _DECLARE_VIEW_ELEM_MEMBER_INIT

#define _DECLARE_VIEW_ELEM_MEMBER_INIT (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_ELEM_MEMBER_INIT_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 266 of file SoAView.h.

◆ _DECLARE_VIEW_ELEM_MEMBER_INIT_IMPL

#define _DECLARE_VIEW_ELEM_MEMBER_INIT_IMPL (   LAYOUT,
  MEMBER,
  LOCAL_NAME,
  DATA 
)    (LOCAL_NAME(DATA, LOCAL_NAME))

Generator of element members initializer.

Definition at line 264 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_CONSTR_CALL

#define _DECLARE_VIEW_ELEMENT_CONSTR_CALL (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_ELEMENT_CONSTR_CALL_IMPL LAYOUT_MEMBER_NAME)

Definition at line 374 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_CONSTR_CALL_IMPL

#define _DECLARE_VIEW_ELEMENT_CONSTR_CALL_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)    (const_cast_SoAParametersImpl(base_type::BOOST_PP_CAT(LOCAL_NAME, Parameters_)))

Parameters passed to element subclass constructor in operator[]

The use of const_cast (inside const_cast_SoAParametersImpl) is safe because the constructor of a View binds only to non-const arguments.

Definition at line 371 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_VALUE_ARG

#define _DECLARE_VIEW_ELEMENT_VALUE_ARG (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    _DECLARE_VIEW_ELEMENT_VALUE_ARG_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA)

Definition at line 281 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_VALUE_ARG_IMPL

#define _DECLARE_VIEW_ELEMENT_VALUE_ARG_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  DATA 
)    (DATA typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME) LOCAL_NAME)

Generator of parameters for (non-const) element subclass (expanded comma separated).

Definition at line 278 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_VALUE_COPY

#define _DECLARE_VIEW_ELEMENT_VALUE_COPY (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_ELEMENT_VALUE_COPY_IMPL LAYOUT_MEMBER_NAME)

Definition at line 340 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_VALUE_COPY_IMPL

#define _DECLARE_VIEW_ELEMENT_VALUE_COPY_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
if constexpr (Metadata::BOOST_PP_CAT(ColumnTypeOf_, LOCAL_NAME) != cms::soa::SoAColumnType::scalar) \
LOCAL_NAME() = _soa_impl_other.LOCAL_NAME();

Generator of the member-by-member copy operator of the element subclass.

Definition at line 336 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_VALUE_MEMBER

#define _DECLARE_VIEW_ELEMENT_VALUE_MEMBER (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    _DECLARE_VIEW_ELEMENT_VALUE_MEMBER_IMPL LAYOUT_MEMBER_NAME

Definition at line 353 of file SoAView.h.

◆ _DECLARE_VIEW_ELEMENT_VALUE_MEMBER_IMPL

#define _DECLARE_VIEW_ELEMENT_VALUE_MEMBER_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
SoAValueWithConf<BOOST_PP_CAT(Metadata::ColumnTypeOf_, LOCAL_NAME), \
typename BOOST_PP_CAT(Metadata::TypeOf_, LOCAL_NAME)> \
LOCAL_NAME;

Declaration of the private members of the const element subclass

Definition at line 347 of file SoAView.h.

◆ _DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE

#define _DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE (   R,
  DATA,
  TYPE_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE_IMPL TYPE_NAME)

Definition at line 73 of file SoAView.h.

◆ _DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE_IMPL

#define _DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE_IMPL (   TYPE,
  NAME 
)
Value:
(using BOOST_PP_CAT(TYPE, _default) = BOOST_PP_CAT(TYPE, _StagedTemplates) < VIEW_ALIGNMENT, \
VIEW_ALIGNMENT_ENFORCEMENT > ;)

Layout templates parametrization

Definition at line 69 of file SoAView.h.

◆ _DECLARE_VIEW_LAYOUT_TYPE_ALIAS

#define _DECLARE_VIEW_LAYOUT_TYPE_ALIAS (   R,
  DATA,
  TYPE_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_LAYOUT_TYPE_ALIAS_IMPL TYPE_NAME)

Definition at line 81 of file SoAView.h.

◆ _DECLARE_VIEW_LAYOUT_TYPE_ALIAS_IMPL

#define _DECLARE_VIEW_LAYOUT_TYPE_ALIAS_IMPL (   TYPE,
  NAME 
)    using BOOST_PP_CAT(TypeOf_, NAME) = TYPE;

Layout types aliasing for referencing by name

Definition at line 79 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER

#define _DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 258 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER_IMPL

#define _DECLARE_VIEW_MEMBER_ASSIGNMENT_FROM_OTHER_IMPL (   LAYOUT,
  MEMBER,
  LOCAL_NAME,
  DATA 
)    BOOST_PP_CAT(MEMBER, Parameters_) = DATA.BOOST_PP_CAT(MEMBER, Parameters_);

Generator of member assignment for assignment operator.

Definition at line 255 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_CONST_POINTERS

#define _DECLARE_VIEW_MEMBER_CONST_POINTERS (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_CONST_POINTERS_IMPL LAYOUT_MEMBER_NAME)

Definition at line 144 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_CONST_POINTERS_IMPL

#define _DECLARE_VIEW_MEMBER_CONST_POINTERS_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
SOA_HOST_DEVICE SOA_INLINE auto const* BOOST_PP_CAT(addressOf_, LOCAL_NAME)() const { \
return BOOST_PP_CAT(parametersOf_, LOCAL_NAME)().addr_; \
};
#define SOA_INLINE
Definition: SoACommon.h:28
#define SOA_HOST_DEVICE
Definition: SoACommon.h:27

Member type const pointers for referencing by name

Definition at line 138 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_INITIALIZERS

#define _DECLARE_VIEW_MEMBER_INITIALIZERS (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_INITIALIZERS_IMPL LAYOUT_MEMBER_NAME)

Definition at line 180 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN

#define _DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN_IMPL LAYOUT_MEMBER_NAME)

Definition at line 216 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN_IMPL

#define _DECLARE_VIEW_MEMBER_INITIALIZERS_BYCOLUMN_IMPL (   LAYOUT,
  MEMBER,
  NAME 
)
Value:
( \
BOOST_PP_CAT(NAME, Parameters_)([&]() -> auto { \
if constexpr (alignmentEnforcement == AlignmentEnforcement::enforced) \
if (Metadata:: BOOST_PP_CAT(ParametersTypeOf_, NAME)::checkAlignment(NAME, alignment)) \
throw std::runtime_error("In constructor by column: misaligned column: " #NAME); \
return NAME; \
}()) \
)

Generator of member initialization from constructor. We use a lambda with auto return type to handle multiple possible return types.

Definition at line 205 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER

#define _DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 249 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER_IMPL

#define _DECLARE_VIEW_MEMBER_INITIALIZERS_FROM_OTHER_IMPL (   LAYOUT,
  MEMBER,
  LOCAL_NAME,
  DATA 
)    (BOOST_PP_CAT(MEMBER, Parameters_){DATA.BOOST_PP_CAT(MEMBER, Parameters_)})

Generator of member initializer for copy constructor.

Definition at line 246 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_INITIALIZERS_IMPL

#define _DECLARE_VIEW_MEMBER_INITIALIZERS_IMPL (   LAYOUT,
  MEMBER,
  NAME 
)
Value:
(BOOST_PP_CAT(NAME, Parameters_)([&]() -> auto { \
auto params = LAYOUT.metadata().BOOST_PP_CAT(parametersOf_, MEMBER)(); \
if constexpr (alignmentEnforcement == AlignmentEnforcement::enforced) \
if (reinterpret_cast<intptr_t>(params.addr_) % alignment) \
throw std::runtime_error("In constructor by layout: misaligned column: " #NAME); \
return params; \
}()))

Generator of member initialization from constructor. We use a lambda with auto return type to handle multiple possible return types.

Definition at line 170 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_LIST

#define _DECLARE_VIEW_MEMBER_LIST (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_LIST_IMPL LAYOUT_MEMBER_NAME)

Definition at line 231 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_LIST_IMPL

#define _DECLARE_VIEW_MEMBER_LIST_IMPL (   LAYOUT,
  MEMBER,
  NAME 
)    (NAME)

Generator of view member list.

Definition at line 229 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_POINTERS

#define _DECLARE_VIEW_MEMBER_POINTERS (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_POINTERS_IMPL LAYOUT_MEMBER_NAME)

Definition at line 131 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_POINTERS_IMPL

#define _DECLARE_VIEW_MEMBER_POINTERS_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
SOA_HOST_DEVICE SOA_INLINE auto* BOOST_PP_CAT(addressOf_, LOCAL_NAME)() { \
return BOOST_PP_CAT(parametersOf_, LOCAL_NAME)().addr_; \
};
#define SOA_INLINE
Definition: SoACommon.h:28
#define SOA_HOST_DEVICE
Definition: SoACommon.h:27

Member type pointers for referencing by name

Definition at line 125 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_TYPE_ALIAS

#define _DECLARE_VIEW_MEMBER_TYPE_ALIAS (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_MEMBER_TYPE_ALIAS_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 118 of file SoAView.h.

◆ _DECLARE_VIEW_MEMBER_TYPE_ALIAS_IMPL

#define _DECLARE_VIEW_MEMBER_TYPE_ALIAS_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  CAST 
)
Value:
using BOOST_PP_CAT(TypeOf_, LOCAL_NAME) = \
typename BOOST_PP_CAT(TypeOf_, LAYOUT_NAME)::Metadata::BOOST_PP_CAT(TypeOf_, LAYOUT_MEMBER); \
using BOOST_PP_CAT(ParametersTypeOf_, LOCAL_NAME) = \
typename BOOST_PP_CAT(TypeOf_, LAYOUT_NAME)::Metadata::BOOST_PP_CAT(ParametersTypeOf_, LAYOUT_MEMBER); \
constexpr static cms::soa::SoAColumnType BOOST_PP_CAT(ColumnTypeOf_, LOCAL_NAME) = \
BOOST_PP_CAT(TypeOf_, LAYOUT_NAME)::Metadata::BOOST_PP_CAT(ColumnTypeOf_, LAYOUT_MEMBER); \
using BOOST_PP_CAT(ConstAccessorOf_, LOCAL_NAME) = \
cms::soa::SoAAccessType::constAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify> ; \
using BOOST_PP_CAT(MutableAccessorOf_, LOCAL_NAME) = \
cms::soa::SoAAccessType::mutableAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify> ; \
SOA_HOST_DEVICE SOA_INLINE \
const auto BOOST_PP_CAT(parametersOf_, LOCAL_NAME)() const { \
return CAST(parent_.BOOST_PP_CAT(LOCAL_NAME, Parameters_)); \
};
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521
SoAColumnType
Definition: SoACommon.h:66

Member types aliasing for referencing by name

Definition at line 88 of file SoAView.h.

◆ _DECLARE_VIEW_OTHER_MEMBER_LIST

#define _DECLARE_VIEW_OTHER_MEMBER_LIST (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_OTHER_MEMBER_LIST_IMPL LAYOUT_MEMBER_NAME)

Definition at line 240 of file SoAView.h.

◆ _DECLARE_VIEW_OTHER_MEMBER_LIST_IMPL

#define _DECLARE_VIEW_OTHER_MEMBER_LIST_IMPL (   LAYOUT,
  MEMBER,
  NAME 
)    (const_cast_SoAParametersImpl(other.BOOST_PP_CAT(NAME, Parameters_)).tupleOrPointer())

Generator of view member list.

Definition at line 237 of file SoAView.h.

◆ _DECLARE_VIEW_SOA_ACCESSOR

#define _DECLARE_VIEW_SOA_ACCESSOR (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_SOA_ACCESSOR_IMPL LAYOUT_MEMBER_NAME)

Definition at line 413 of file SoAView.h.

◆ _DECLARE_VIEW_SOA_ACCESSOR_IMPL

#define _DECLARE_VIEW_SOA_ACCESSOR_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
/* Column or scalar */ \
SOA_HOST_DEVICE SOA_INLINE \
cms::soa::SoAAccessType::mutableAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>::NoParamReturnType \
LOCAL_NAME() { \
cms::soa::SoAAccessType::mutableAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>(const_cast_SoAParametersImpl( \
base_type:: BOOST_PP_CAT(LOCAL_NAME, Parameters_)))(); \
} \
SOA_HOST_DEVICE SOA_INLINE \
cms::soa::SoAAccessType::mutableAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>::ParamReturnType \
LOCAL_NAME(size_type _soa_impl_index) { \
if constexpr (rangeChecking == cms::soa::RangeChecking::enabled) { \
if (_soa_impl_index >= base_type::elements_ or _soa_impl_index < 0) \
SOA_THROW_OUT_OF_RANGE("Out of range index in mutable " #LOCAL_NAME "(size_type index)") \
} \
cms::soa::SoAAccessType::mutableAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>(const_cast_SoAParametersImpl( \
base_type:: BOOST_PP_CAT(LOCAL_NAME, Parameters_)))(_soa_impl_index); \
}
constexpr bool enabled
Definition: SoACommon.h:79
uint16_t size_type
T const_cast_SoAParametersImpl(SoAConstParametersImpl< COLUMN_TYPE, T > const &o)
Definition: SoACommon.h:269
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521

Direct access to column pointer and indexed access

Definition at line 381 of file SoAView.h.

◆ _DECLARE_VIEW_SOA_CONST_ACCESSOR

#define _DECLARE_VIEW_SOA_CONST_ACCESSOR (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_SOA_CONST_ACCESSOR_IMPL LAYOUT_MEMBER_NAME)

Definition at line 450 of file SoAView.h.

◆ _DECLARE_VIEW_SOA_CONST_ACCESSOR_IMPL

#define _DECLARE_VIEW_SOA_CONST_ACCESSOR_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)
Value:
/* Column or scalar */ \
SOA_HOST_DEVICE SOA_INLINE \
cms::soa::SoAAccessType::constAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>::NoParamReturnType \
LOCAL_NAME() const { \
cms::soa::SoAAccessType::constAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>(BOOST_PP_CAT(LOCAL_NAME, Parameters_))(); \
} \
SOA_HOST_DEVICE SOA_INLINE \
cms::soa::SoAAccessType::constAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>::ParamReturnType \
LOCAL_NAME(size_type _soa_impl_index) const { \
if constexpr (rangeChecking == cms::soa::RangeChecking::enabled) { \
if (_soa_impl_index >= elements_ or _soa_impl_index < 0) \
SOA_THROW_OUT_OF_RANGE("Out of range index in const " #LOCAL_NAME "(size_type index)") \
} \
cms::soa::SoAAccessType::constAccess>::template Alignment<conditionalAlignment>:: \
template RestrictQualifier<restrictQualify>(BOOST_PP_CAT(LOCAL_NAME, Parameters_))(_soa_impl_index); \
}
constexpr bool enabled
Definition: SoACommon.h:79
uint16_t size_type
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521

Direct access to column pointer (const) and indexed access.

Definition at line 420 of file SoAView.h.

◆ _DECLARE_VIEW_SOA_MEMBER

#define _DECLARE_VIEW_SOA_MEMBER (   R,
  DATA,
  LAYOUT_MEMBER_NAME 
)    BOOST_PP_EXPAND(_DECLARE_VIEW_SOA_MEMBER_IMPL BOOST_PP_TUPLE_PUSH_BACK(LAYOUT_MEMBER_NAME, DATA))

Definition at line 459 of file SoAView.h.

◆ _DECLARE_VIEW_SOA_MEMBER_IMPL

#define _DECLARE_VIEW_SOA_MEMBER_IMPL (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME,
  DATA 
)    typename BOOST_PP_CAT(Metadata::ParametersTypeOf_, LOCAL_NAME) BOOST_PP_CAT(LOCAL_NAME, Parameters_);

SoA class member declaration (column pointers and parameters).

Definition at line 456 of file SoAView.h.

◆ _GENERATE_SOA_CONST_VIEW

#define _GENERATE_SOA_CONST_VIEW (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
_GENERATE_SOA_CONST_VIEW_PART_1(CONST_VIEW, VIEW, \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST))
#define SOA_VIEW_VALUE_LIST(...)
Definition: SoAView.h:20
#define SOA_VIEW_LAYOUT_LIST(...)
Definition: SoAView.h:14
#define _GENERATE_SOA_CONST_VIEW_PART_0(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:671

Definition at line 836 of file SoAView.h.

◆ _GENERATE_SOA_CONST_VIEW_PART_0

#define _GENERATE_SOA_CONST_VIEW_PART_0 (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
bool VIEW_ALIGNMENT_ENFORCEMENT = cms::soa::AlignmentEnforcement::relaxed, \
bool RESTRICT_QUALIFY = cms::soa::RestrictQualify::Default, \
bool RANGE_CHECKING = cms::soa::RangeChecking::Default> \
struct CONST_VIEW { \
/* these could be moved to an external type trait to free up the symbol names */ \
using self_type = CONST_VIEW;
constexpr bool Default
Definition: SoACommon.h:81
static constexpr byte_size_type defaultSize
Definition: SoACommon.h:720
static constexpr bool relaxed
Definition: SoACommon.h:711
constexpr bool Default
Definition: SoACommon.h:75
#define CMS_SOA_BYTE_SIZE_TYPE
Definition: SoACommon.h:57

Definition at line 671 of file SoAView.h.

◆ _GENERATE_SOA_CONST_VIEW_PART_0_NO_DEFAULTS

#define _GENERATE_SOA_CONST_VIEW_PART_0_NO_DEFAULTS (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
template <CMS_SOA_BYTE_SIZE_TYPE VIEW_ALIGNMENT, \
bool VIEW_ALIGNMENT_ENFORCEMENT, \
bool RESTRICT_QUALIFY, \
bool RANGE_CHECKING> \
struct CONST_VIEW { \
/* these could be moved to an external type trait to free up the symbol names */ \
using self_type = CONST_VIEW;
#define CMS_SOA_BYTE_SIZE_TYPE
Definition: SoACommon.h:57

Definition at line 682 of file SoAView.h.

◆ _GENERATE_SOA_CONST_VIEW_PART_1

#define _GENERATE_SOA_CONST_VIEW_PART_1 (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)

Split of the const view definition where the parametrized template alias for the layout is defined for layout trivial view.

Definition at line 697 of file SoAView.h.

◆ _GENERATE_SOA_TRIVIAL_CONST_VIEW

#define _GENERATE_SOA_TRIVIAL_CONST_VIEW (   CLASS,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
_GENERATE_SOA_CONST_VIEW_PART_0_NO_DEFAULTS(ConstViewTemplateFreeParams, ViewTemplateFreeParams, \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
using BOOST_PP_CAT(CLASS, _parametrized) = CLASS<VIEW_ALIGNMENT, VIEW_ALIGNMENT_ENFORCEMENT>; \
_GENERATE_SOA_CONST_VIEW_PART_1(ConstViewTemplateFreeParams, ViewTemplateFreeParams, \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST))
#define SOA_VIEW_VALUE_LIST(...)
Definition: SoAView.h:20
#define SOA_VIEW_LAYOUT_LIST(...)
Definition: SoAView.h:14
#define _GENERATE_SOA_CONST_VIEW_PART_0_NO_DEFAULTS(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:682

Definition at line 846 of file SoAView.h.

◆ _GENERATE_SOA_TRIVIAL_VIEW

#define _GENERATE_SOA_TRIVIAL_VIEW (   CLASS,
  LAYOUTS_LIST,
  VALUE_LIST,
  ... 
)
Value:
_GENERATE_SOA_VIEW_PART_0_NO_DEFAULTS(ConstViewTemplateFreeParams, ViewTemplateFreeParams, \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
using BOOST_PP_CAT(CLASS, _parametrized) = CLASS<VIEW_ALIGNMENT, VIEW_ALIGNMENT_ENFORCEMENT>; \
_GENERATE_SOA_VIEW_PART_1(ConstViewTemplateFreeParams, ViewTemplateFreeParams, \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
\
/* Extra operator=() for mutable element to emulate the aggregate initialisation syntax */ \
SOA_HOST_DEVICE SOA_INLINE constexpr element & operator=(const typename \
BOOST_PP_CAT(CLASS, _parametrized)::Metadata::value_element _soa_impl_value) { \
_ITERATE_ON_ALL(_TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT, ~, __VA_ARGS__) \
return *this; \
} \
_GENERATE_SOA_VIEW_PART_2(ConstViewTemplateFreeParams, ViewTemplateFreeParams, \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST))
Basic3DVector & operator=(const Basic3DVector &)=default
Assignment operator.
#define _GENERATE_SOA_VIEW_PART_0_NO_DEFAULTS(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:506
#define SOA_VIEW_VALUE_LIST(...)
Definition: SoAView.h:20
#define SOA_VIEW_LAYOUT_LIST(...)
Definition: SoAView.h:14
#define SOA_INLINE
Definition: SoACommon.h:28
#define _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT(R, DATA, TYPE_NAME)
Definition: SoAView.h:488
#define _GENERATE_SOA_VIEW_PART_2(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:645

Definition at line 862 of file SoAView.h.

◆ _GENERATE_SOA_VIEW

#define _GENERATE_SOA_VIEW (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
_GENERATE_SOA_VIEW_PART_0(CONST_VIEW, VIEW, SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
_GENERATE_SOA_VIEW_PART_1(CONST_VIEW, VIEW, SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
_GENERATE_SOA_VIEW_PART_2(CONST_VIEW, VIEW, SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST))
#define SOA_VIEW_VALUE_LIST(...)
Definition: SoAView.h:20
#define SOA_VIEW_LAYOUT_LIST(...)
Definition: SoAView.h:14
#define _GENERATE_SOA_VIEW_PART_0(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:492

Definition at line 853 of file SoAView.h.

◆ _GENERATE_SOA_VIEW_PART_0

#define _GENERATE_SOA_VIEW_PART_0 (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
bool VIEW_ALIGNMENT_ENFORCEMENT = cms::soa::AlignmentEnforcement::relaxed, \
bool RESTRICT_QUALIFY = cms::soa::RestrictQualify::Default, \
bool RANGE_CHECKING = cms::soa::RangeChecking::Default> \
struct VIEW : public CONST_VIEW<VIEW_ALIGNMENT, VIEW_ALIGNMENT_ENFORCEMENT, RESTRICT_QUALIFY, RANGE_CHECKING> { \
/* Declare the parametrized layouts as the default */ \
/*BOOST_PP_SEQ_CAT(_ITERATE_ON_ALL(_DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE, ~, LAYOUTS_LIST)) */ \
/* these could be moved to an external type trait to free up the symbol names */ \
using self_type = VIEW; \
using base_type = CONST_VIEW<VIEW_ALIGNMENT, VIEW_ALIGNMENT_ENFORCEMENT, RESTRICT_QUALIFY, RANGE_CHECKING>;
constexpr bool Default
Definition: SoACommon.h:81
static constexpr byte_size_type defaultSize
Definition: SoACommon.h:720
static constexpr bool relaxed
Definition: SoACommon.h:711
constexpr bool Default
Definition: SoACommon.h:75
#define CMS_SOA_BYTE_SIZE_TYPE
Definition: SoACommon.h:57

Definition at line 492 of file SoAView.h.

◆ _GENERATE_SOA_VIEW_PART_0_NO_DEFAULTS

#define _GENERATE_SOA_VIEW_PART_0_NO_DEFAULTS (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
template <CMS_SOA_BYTE_SIZE_TYPE VIEW_ALIGNMENT, \
bool VIEW_ALIGNMENT_ENFORCEMENT, \
bool RESTRICT_QUALIFY, \
bool RANGE_CHECKING> \
struct VIEW : public CONST_VIEW<VIEW_ALIGNMENT, VIEW_ALIGNMENT_ENFORCEMENT, RESTRICT_QUALIFY, RANGE_CHECKING> { \
/* Declare the parametrized layouts as the default */ \
/*BOOST_PP_SEQ_CAT(_ITERATE_ON_ALL(_DECLARE_VIEW_LAYOUT_PARAMETRIZED_TEMPLATE, ~, LAYOUTS_LIST)) */ \
/* these could be moved to an external type trait to free up the symbol names */ \
using self_type = VIEW; \
using base_type = CONST_VIEW<VIEW_ALIGNMENT, VIEW_ALIGNMENT_ENFORCEMENT, RESTRICT_QUALIFY, RANGE_CHECKING>;
#define CMS_SOA_BYTE_SIZE_TYPE
Definition: SoACommon.h:57

Definition at line 506 of file SoAView.h.

◆ _GENERATE_SOA_VIEW_PART_1

#define _GENERATE_SOA_VIEW_PART_1 (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)

Split of the const view definition where the parametrized template alias for the layout is defined for layout trivial view.

Definition at line 524 of file SoAView.h.

◆ _GENERATE_SOA_VIEW_PART_2

#define _GENERATE_SOA_VIEW_PART_2 (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
}; \
\
SOA_HOST_DEVICE SOA_INLINE \
element operator[](size_type _soa_impl_index) { \
if constexpr (rangeChecking == cms::soa::RangeChecking::enabled) { \
if (_soa_impl_index >= base_type::elements_ or _soa_impl_index < 0) \
SOA_THROW_OUT_OF_RANGE("Out of range index in " #VIEW "::operator[]") \
} \
return element{_soa_impl_index, _ITERATE_ON_ALL_COMMA(_DECLARE_VIEW_ELEMENT_CONSTR_CALL, ~, VALUE_LIST)}; \
} \
\
/* inherit const accessors from ConstView */ \
\
/* non-const accessors */ \
_ITERATE_ON_ALL(_DECLARE_VIEW_SOA_ACCESSOR, ~, VALUE_LIST) \
\
/* dump the SoA internal structure */ \
template <typename T> \
SOA_HOST_ONLY friend void dump(); \
};
constexpr bool enabled
Definition: SoACommon.h:79
#define _ITERATE_ON_ALL(MACRO, DATA,...)
Definition: SoACommon.h:572
uint16_t size_type
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
#define _DECLARE_VIEW_SOA_ACCESSOR(R, DATA, LAYOUT_MEMBER_NAME)
Definition: SoAView.h:413
#define _ITERATE_ON_ALL_COMMA(MACRO, DATA,...)
Definition: SoACommon.h:568
#define _DECLARE_VIEW_ELEMENT_VALUE_MEMBER(R, DATA, LAYOUT_MEMBER_NAME)
Definition: SoAView.h:353
#define _DECLARE_VIEW_ELEMENT_CONSTR_CALL(R, DATA, LAYOUT_MEMBER_NAME)
Definition: SoAView.h:374
T operator[](int i) const

Definition at line 645 of file SoAView.h.

◆ _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT

#define _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT (   R,
  DATA,
  TYPE_NAME 
)    _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT_IMPL TYPE_NAME

Definition at line 488 of file SoAView.h.

◆ _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT_IMPL

#define _TRIVIAL_VIEW_ASSIGN_VALUE_ELEMENT_IMPL (   VALUE_TYPE,
  CPP_TYPE,
  NAME 
)
Value:
_SWITCH_ON_TYPE(VALUE_TYPE, \
/* Scalar (empty) */ \
, \
/* Column */ \
NAME() = _soa_impl_value.NAME; \
, \
/* Eigen column */ \
NAME() = _soa_impl_value.NAME; \
)
#define _SWITCH_ON_TYPE(VALUE_TYPE, IF_SCALAR, IF_COLUMN, IF_EIGEN_COLUMN)
Definition: SoACommon.h:575

Assign the value of the view from the values in the value_element.

Definition at line 476 of file SoAView.h.

◆ _UPDATE_SIZE_OF_VIEW

#define _UPDATE_SIZE_OF_VIEW (   R,
  DATA,
  TYPE_NAME 
)    BOOST_PP_EXPAND(_UPDATE_SIZE_OF_VIEW_IMPL TYPE_NAME)

Definition at line 198 of file SoAView.h.

◆ _UPDATE_SIZE_OF_VIEW_IMPL

#define _UPDATE_SIZE_OF_VIEW_IMPL (   LAYOUT_TYPE,
  LAYOUT_NAME 
)
Value:
if (set) { \
if (ret != LAYOUT_NAME.metadata().size()) \
throw std::runtime_error("In constructor by layout: different sizes from layouts."); \
} else { \
ret = LAYOUT_NAME.metadata().size(); \
set = true; \
}
ret
prodAgent to be discontinued

Generator of size computation for constructor. This is the per-layout part of the lambda checking they all have the same size.

Definition at line 188 of file SoAView.h.

◆ _VIEW_FIELD_FROM_LAYOUT

#define _VIEW_FIELD_FROM_LAYOUT (   R,
  DATA,
  VALUE_TYPE_NAME 
)    BOOST_PP_EXPAND((_VIEW_FIELD_FROM_LAYOUT_IMPL BOOST_PP_TUPLE_PUSH_BACK(VALUE_TYPE_NAME, DATA)))

Definition at line 885 of file SoAView.h.

◆ _VIEW_FIELD_FROM_LAYOUT_IMPL

#define _VIEW_FIELD_FROM_LAYOUT_IMPL (   VALUE_TYPE,
  CPP_TYPE,
  NAME,
  DATA 
)    (DATA, NAME, NAME)

Helper macro turning layout field declaration into view field declaration.

Definition at line 883 of file SoAView.h.

◆ GENERATE_SOA_CONST_VIEW

#define GENERATE_SOA_CONST_VIEW (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
_GENERATE_SOA_CONST_VIEW(CONST_VIEW, BOOST_PP_CAT(CONST_VIEW, Unused_), \
SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST))
#define SOA_VIEW_VALUE_LIST(...)
Definition: SoAView.h:20
#define SOA_VIEW_LAYOUT_LIST(...)
Definition: SoAView.h:14
#define _GENERATE_SOA_CONST_VIEW(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:836

Definition at line 842 of file SoAView.h.

◆ GENERATE_SOA_VIEW

#define GENERATE_SOA_VIEW (   CONST_VIEW,
  VIEW,
  LAYOUTS_LIST,
  VALUE_LIST 
)
Value:
_GENERATE_SOA_CONST_VIEW(CONST_VIEW, VIEW, SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST)) \
_GENERATE_SOA_VIEW(CONST_VIEW, VIEW, SOA_VIEW_LAYOUT_LIST(LAYOUTS_LIST), SOA_VIEW_VALUE_LIST(VALUE_LIST))
#define SOA_VIEW_VALUE_LIST(...)
Definition: SoAView.h:20
#define SOA_VIEW_LAYOUT_LIST(...)
Definition: SoAView.h:14
#define _GENERATE_SOA_CONST_VIEW(CONST_VIEW, VIEW, LAYOUTS_LIST, VALUE_LIST)
Definition: SoAView.h:836

Definition at line 858 of file SoAView.h.

◆ SOA_VIEW_LAYOUT

#define SOA_VIEW_LAYOUT (   TYPE,
  NAME 
)    (TYPE, NAME)

Definition at line 12 of file SoAView.h.

◆ SOA_VIEW_LAYOUT_LIST

#define SOA_VIEW_LAYOUT_LIST (   ...)    __VA_ARGS__

Definition at line 14 of file SoAView.h.

◆ SOA_VIEW_VALUE

#define SOA_VIEW_VALUE (   LAYOUT_NAME,
  LAYOUT_MEMBER 
)    (LAYOUT_NAME, LAYOUT_MEMBER, LAYOUT_MEMBER)

Definition at line 16 of file SoAView.h.

◆ SOA_VIEW_VALUE_LIST

#define SOA_VIEW_VALUE_LIST (   ...)    __VA_ARGS__

Definition at line 20 of file SoAView.h.

◆ SOA_VIEW_VALUE_RENAME

#define SOA_VIEW_VALUE_RENAME (   LAYOUT_NAME,
  LAYOUT_MEMBER,
  LOCAL_NAME 
)    (LAYOUT_NAME, LAYOUT_MEMBER, LOCAL_NAME)

Definition at line 18 of file SoAView.h.