DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DeviceStorage.hpp File Reference

Device memory abstraction layer with backend-specific storage and factory creation. More...

#include "DNDS/Errors.hpp"
#include "Defines.hpp"
#include <cstddef>
#include <cstdint>
#include <memory>
#include <type_traits>
Include dependency graph for DeviceStorage.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DNDS::DeviceStorageBase
 Abstract interface to a byte buffer owned by a specific backend. More...
 
struct  DNDS::device_storage_factory< B >
 Factory functions for constructing DeviceStorageBase instances of a specific backend. Specialised per backend so that the concrete type creation can live in backend-specific translation units. More...
 
struct  DNDS::device_storage_factory< DeviceBackend::Host >
 

Namespaces

namespace  DNDS
 the host side operators are provided as implemented
 

Typedefs

using DNDS::t_supDeviceStorageBase = std::unique_ptr< DeviceStorageBase, std::function< void(DeviceStorageBase *)> >
 Owning unique pointer to a DeviceStorageBase with cross-DLL-safe deleter.
 
using DNDS::t_sspDeviceStorageBase = std::shared_ptr< DeviceStorageBase >
 Shared pointer equivalent of t_supDeviceStorageBase.
 

Enumerations

enum class  DNDS::DeviceBackend { DNDS::Unknown = 0 , DNDS::Host = 1 , DNDS::Custom1 = 101 }
 Enumerates the backends a DeviceStorage / Array can live on. More...
 

Functions

const char * DNDS::device_backend_name (DeviceBackend B)
 Canonical string name for a DeviceBackend (used in log messages).
 
DeviceBackend DNDS::device_backend_name_to_enum (std::string_view s)
 Inverse of device_backend_name. Returns Unknown for unrecognised names.
 
void DNDS::deviceStorageBase_deleter (DeviceStorageBase *p)
 Stateless deleter for DeviceStorageBase that works across shared-library boundaries where the vtable of unique_ptr's default deleter would not.
 
t_supDeviceStorageBase DNDS::null_supDeviceStorageBase ()
 Null-value helper for t_supDeviceStorageBase.
 
t_supDeviceStorageBase DNDS::device_storage_create (DeviceBackend backend, size_t n_bytes)
 Top-level factory: dispatches to the per-backend factory based on backend. Returns a null unique_ptr for DeviceBackendUnknown.
 

Detailed Description

Device memory abstraction layer with backend-specific storage and factory creation.

Definition in file DeviceStorage.hpp.