MADNESS 0.10.1
madness::detail::info_base< memfunT > Struct Template Reference

#include <world_object.h>

Inheritance diagram for madness::detail::info_base< memfunT >:
Collaboration diagram for madness::detail::info_base< memfunT >:

Public Types

using memfunT_rel_ptr = decltype(archive::to_rel_memfn_ptr(std::declval<memfunT>()))

Public Member Functions

memfunT memfun () const

Public Attributes

TaskAttributes attr
uniqueidT id
memfunT_rel_ptr memfun_rel_ptr
ProcessID requestor

Protected Member Functions

 info_base ()
 info_base (const uniqueidT &id, ProcessID requestor, memfunT memfun, const TaskAttributes &attr=TaskAttributes())
template<typename Archive>
void serialize (const Archive &ar)
 Serializes a info_base for I/O.

Detailed Description

template<typename memfunT>
struct madness::detail::info_base< memfunT >
Todo
Brief description needed.

We cannot use the normal task forwarding stuff here because pending messages can creating tasks are must be correctly handled. The following code does not easily merge with the send handlers since the task layer is more restrictive on the copy capability of arguments.

It is also annoying that info needs to be broken into two parts so that it id and ref are properly serialized. We need to have id correctly aligned via opaque_wrap, but ref cannot be serialized that way. Thus we break the class into two parts.

Info stored for AM method forwarding.

Template Parameters
memfunTDescription needed.
Todo
Verify & complete; what is AM?

Member Typedef Documentation

◆ memfunT_rel_ptr

template<typename memfunT>
using madness::detail::info_base< memfunT >::memfunT_rel_ptr = decltype(archive::to_rel_memfn_ptr(std::declval<memfunT>()))

Constructor & Destructor Documentation

◆ info_base() [1/2]

◆ info_base() [2/2]

template<typename memfunT>
madness::detail::info_base< memfunT >::info_base ( const uniqueidT & id,
ProcessID requestor,
memfunT memfun,
const TaskAttributes & attr = TaskAttributes() )
inlineprotected
Todo
Constructor that [brief description needed].
Todo
Descriptions needed.
Parameters
[in]idDescription needed.
[in]requestorDescription needed.
memfunVerify: The member function to be invoked for the task.
[in]attrDescription needed.

References attr, id, memfun(), memfun_rel_ptr, and requestor.

Member Function Documentation

◆ memfun()

template<typename memfunT>
memfunT madness::detail::info_base< memfunT >::memfun ( ) const
inline
Returns
the (absolute) member function pointer

References memfun_rel_ptr, and madness::archive::to_abs_memfn_ptr().

Referenced by madness::detail::info< memfunT >::info(), and info_base().

◆ serialize()

template<typename memfunT>
template<typename Archive>
void madness::detail::info_base< memfunT >::serialize ( const Archive & ar)
inlineprotected

Serializes a info_base for I/O.

Template Parameters
ArchiveThe type of I/O archive.
Parameters
[in,out]arThe I/O archive.

References madness::archive::wrap_opaque().

Referenced by madness::detail::info< memfunT >::serialize().

Member Data Documentation

◆ attr

template<typename memfunT>
TaskAttributes madness::detail::info_base< memfunT >::attr
Todo
Description needed.

Referenced by madness::detail::info< memfunT >::info(), and info_base().

◆ id

template<typename memfunT>
uniqueidT madness::detail::info_base< memfunT >::id
Todo
Description needed. Context with the "see peek" comment above?

Referenced by madness::detail::info< memfunT >::info(), and info_base().

◆ memfun_rel_ptr

template<typename memfunT>
memfunT_rel_ptr madness::detail::info_base< memfunT >::memfun_rel_ptr
Todo
Description needed.

Referenced by info_base(), and memfun().

◆ requestor

template<typename memfunT>
ProcessID madness::detail::info_base< memfunT >::requestor
Todo
Description needed.

Referenced by madness::detail::info< memfunT >::info(), and info_base().


The documentation for this struct was generated from the following file: