Interface Documentation
Version: invalid
topology_accessor.hh
Go to the documentation of this file.
1 /*
2  @@@@@@@@ @@ @@@@@@ @@@@@@@@ @@
3  /@@///// /@@ @@////@@ @@////// /@@
4  /@@ /@@ @@@@@ @@ // /@@ /@@
5  /@@@@@@@ /@@ @@///@@/@@ /@@@@@@@@@/@@
6  /@@//// /@@/@@@@@@@/@@ ////////@@/@@
7  /@@ /@@/@@//// //@@ @@ /@@/@@
8  /@@ @@@//@@@@@@ //@@@@@@ @@@@@@@@ /@@
9  // /// ////// ////// //////// //
10 
11  Copyright (c) 2016, Triad National Security, LLC
12  All rights reserved.
13  */
14 #pragma once
15 
18 #if !defined(__FLECSI_PRIVATE__)
19 #error Do not include this file directly!
20 #endif
21 
22 #include "flecsi/exec/launch.hh"
23 #include <cstddef> // size_t
24 
25 namespace flecsi {
26 namespace data {
27 
38 template<class T, std::size_t Priv>
40  : T::template interface<typename T::core::template access<Priv>> {
41  using core = typename T::core::template access<Priv>;
42  static_assert(sizeof(typename T::template interface<core>) == sizeof(core),
43  "topology interfaces may not add data members");
44 
45  explicit topology_accessor() = default;
46 }; // struct topology_accessor
47 
48 } // namespace data
49 
50 template<class T, std::size_t P>
51 struct exec::detail::task_param<data::topology_accessor<T, P>> {
52  static auto replace(const typename T::slot &) {
54  }
55 };
56 } // namespace flecsi
Definition: topology_accessor.hh:39
Definition: launch.hh:35
Definition: control.hh:31