23 #include "openPMD/backend/BaseRecordComponent.hpp" 
   24 #include "openPMD/auxiliary/ShareRaw.hpp" 
   25 #include "openPMD/Dataset.hpp" 
   34 #include <type_traits> 
   39 #ifndef OPENPMD_protected 
   40 #   define OPENPMD_protected protected 
   56 template< 
typename T >
 
   59     static constexpr 
bool value = 
false;
 
   62 template< 
typename T_Value >
 
   65     static constexpr 
bool value = 
true;
 
   74     static constexpr 
bool value = 
true;
 
   78 template< 
typename T >
 
   91     template< 
typename T_elem >
 
  129     uint8_t getDimensionality() 
const;
 
  130     Extent getExtent() 
const;
 
  140     template< 
typename T >
 
  151     template< 
typename T >
 
  180     template< 
typename T >
 
  194     template< 
typename T >
 
  196         std::shared_ptr< T >,
 
  200     template< 
typename T >
 
  201     void storeChunk(std::shared_ptr< T >, Offset, Extent);
 
  203     template< 
typename T_ContiguousContainer >
 
  204     typename std::enable_if<
 
  207     storeChunk(T_ContiguousContainer &, Offset = {0u}, Extent = {-1u});
 
  239     template< 
typename T, 
typename F >
 
  246     template< 
typename T >
 
  249     static constexpr 
char const * 
const SCALAR = 
"\vScalar";
 
  258     std::shared_ptr< std::queue< IOTask > > m_chunks;
 
  259     std::shared_ptr< Attribute > m_constantValue;
 
  260     std::shared_ptr< bool > m_isEmpty = std::make_shared< bool >( 
false );
 
  263     std::shared_ptr< bool > m_hasBeenExtended =
 
  264         std::make_shared< bool >( 
false );
 
  267     void flush(std::string 
const&);
 
  286     bool dirtyRecursive() 
const;
 
  298     std::shared_ptr< std::string > 
m_name = std::make_shared< std::string >();
 
  303 #include "RecordComponent.tpp" 
  
Definition: ParticleSpecies.hpp:34
 
Datatype
Concrete datatype of an object available at runtime.
Definition: Datatype.hpp:45
 
bool empty() const
Returns true if this is an empty record component.
Definition: RecordComponent.cpp:176
 
Definition: BaseRecord.hpp:36
 
Container for N-dimensional, homogeneous Records.
Definition: Mesh.hpp:40
 
std::shared_ptr< std::string > m_name
The same std::string that the parent class would pass as parameter to RecordComponent::flush().
Definition: RecordComponent.hpp:298
 
Logical compilation of data from one snapshot (e.g.
Definition: Iteration.hpp:39
 
Public definitions of openPMD-api.
Definition: Date.cpp:29
 
Definition: Record.hpp:33
 
RecordComponent & makeEmpty(uint8_t dimensions)
Create a dataset with zero extent in each dimension.
 
Map-like container that enforces openPMD requirements and handles IO.
Definition: Container.hpp:106
 
Emulate in the C++17 concept ContiguousContainer.
Definition: RecordComponent.hpp:57
 
RecordComponent & resetDataset(Dataset)
Declare the dataset's type and extent.
Definition: RecordComponent.cpp:58
 
Definition: BaseRecordComponent.hpp:34
 
A view into a buffer that might be reallocated at some points and thus has changing base pointers ove...
Definition: RecordComponent.hpp:79
 
Definition: RecordComponent.hpp:81
 
Definition: Dataset.hpp:36
 
std::shared_ptr< T > loadChunk(Offset={ 0u }, Extent={ -1u })
Load and allocate a chunk of data.
 
RecordComponent & makeConstant(T)
Create a dataset with regular extent and constant value.