.. |br| raw:: html
Data Model ========== **'flecsi/data'** * **data.h** |br| This file contains the high-level, macro interface for the FleCSI data model. This interface is documented in the Doxygen documentation. **FIXME: Need link** * **client.h** |br| This file contains the C++ data model interface *client_interface_t* for FleCSI topology data structures, which are also referred to as *data clients* in this context. The *client_interface_t* type is a specialization of the *client_interface* type on the backend runtime policy that is selected at compile time. * **field.h** |br| This file contains the C++ data model interface *field_interface_t* for FleCSI field data structures. The *field_interface_t* type is a specialization of the *field_interface* type on the backend runtimne policy that is selected at compile time. **'flecsi/data/common'** * **client_handle.h** |br| This file defines the type identifier type *client_handle_base_t*, and the basic client handle type *client_handle*, which is parameterized on the *data client* type. These types provide the basic structure for implementing handles to the various FleCSI data client types. A handle is a cross-address-space-safe reference type (like a pointer) that can be passed into a FleCSI task to allow access to a data client. Data clients are types that expose one or more index spaces that can have fields registered against them. Some examples are *mesh_topology*, and *tree_topology*. * **client_handler.h** |br| This file defines the base \em client_handler type that is customized for each specific data client type using partial specialization. * **client_registration_wrapper.h** |br| This file contains specializations of the *client_registration_wrapper* type for the various FleCSI topology types. In general, the registration wrapper provides a mechanism for data clients to register meta data with the runtime. * **client_registration_wrapper.h** |br| This file contains the base \em data \em client type identifier *data_client_t*. All data client types should inherit from this type. * **field_registration_wrapper.h** |br| This file contains the *field_registration_wrapper* type. This type is currently used for all field registrations regardless of runtime or client type. * **field_registration_wrapper.h** |br| This file defines the base *storage_class* type that can be specialized by specific storage class, and by data client type. This file also defines the storage classes for the internal *global* and *color* client types. .. csv-table:: Field Call Path :header: "High-Level", "C++", "Backend" :widths: 30, 30, 30 "get_field", "DATA_POLICY::get_handle", "storage_class_t::get_handle" .. csv-table:: Topology Call Path :header: "High-Level", "C++", "Backend" :widths: 30, 30, 30 "get_topology", "DATA_POLICY::get_topology", "topology_t::get_handle" .. vim: set tabstop=2 shiftwidth=2 expandtab fo=cqt tw=72 :