openPMD-api
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
openPMD::BaseRecord< T_elem > Class Template Referenceabstract
Inheritance diagram for openPMD::BaseRecord< T_elem >:
Inheritance graph
[legend]
Collaboration diagram for openPMD::BaseRecord< T_elem >:
Collaboration graph
[legend]

Public Types

using key_type = typename Container< T_elem >::key_type
 
using mapped_type = typename Container< T_elem >::mapped_type
 
using value_type = typename Container< T_elem >::value_type
 
using size_type = typename Container< T_elem >::size_type
 
using difference_type = typename Container< T_elem >::difference_type
 
using allocator_type = typename Container< T_elem >::allocator_type
 
using reference = typename Container< T_elem >::reference
 
using const_reference = typename Container< T_elem >::const_reference
 
using pointer = typename Container< T_elem >::pointer
 
using const_pointer = typename Container< T_elem >::const_pointer
 
using iterator = typename Container< T_elem >::iterator
 
using const_iterator = typename Container< T_elem >::const_iterator
 
- Public Types inherited from openPMD::Container< T_elem >
using key_type = typename InternalContainer::key_type
 
using mapped_type = typename InternalContainer::mapped_type
 
using value_type = typename InternalContainer::value_type
 
using size_type = typename InternalContainer::size_type
 
using difference_type = typename InternalContainer::difference_type
 
using allocator_type = typename InternalContainer::allocator_type
 
using reference = typename InternalContainer::reference
 
using const_reference = typename InternalContainer::const_reference
 
using pointer = typename InternalContainer::pointer
 
using const_pointer = typename InternalContainer::const_pointer
 
using iterator = typename InternalContainer::iterator
 
using const_iterator = typename InternalContainer::const_iterator
 

Public Member Functions

 BaseRecord (BaseRecord const &b)
 
BaseRecordoperator= (BaseRecord const &b)
 
mapped_type & operator[] (key_type const &key) override
 
mapped_type & operator[] (key_type &&key) override
 
size_type erase (key_type const &key) override
 
iterator erase (iterator res) override
 
std::array< double, 7 > unitDimension () const
 Return the physical dimension (quantity) of a record. More...
 
bool scalar () const
 Returns true if this record only contains a single component. More...
 
BaseRecord< RecordComponent >::mapped_type & operator[] (std::string &&key)
 
- Public Member Functions inherited from openPMD::Container< T_elem >
 Container (Container const &)=default
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
bool empty () const noexcept
 
size_type size () const noexcept
 
void clear ()
 Remove all objects from the container and (if written) from disk. More...
 
std::pair< iterator, bool > insert (value_type const &value)
 
std::pair< iterator, bool > insert (P &&value)
 
iterator insert (const_iterator hint, value_type const &value)
 
iterator insert (const_iterator hint, P &&value)
 
void insert (InputIt first, InputIt last)
 
void insert (std::initializer_list< value_type > ilist)
 
void swap (Container &other)
 
mapped_type & at (key_type const &key)
 
mapped_type const & at (key_type const &key) const
 
virtual mapped_type & operator[] (key_type const &key)
 Access the value that is mapped to a key equivalent to key, creating it if such key does not exist already. More...
 
virtual mapped_type & operator[] (key_type &&key)
 Access the value that is mapped to a key equivalent to key, creating it if such key does not exist already. More...
 
iterator find (key_type const &key)
 
const_iterator find (key_type const &key) const
 
size_type count (key_type const &key) const
 This returns either 1 if the key is found in the container of 0 if not. More...
 
bool contains (key_type const &key) const
 Checks if there is an element with a key equivalent to an exiting key in the container. More...
 
virtual size_type erase (key_type const &key)
 Remove a single element from the container and (if written) from disk. More...
 
virtual iterator erase (iterator res)
 
auto emplace (Args &&... args) -> decltype(InternalContainer().emplace(std::forward< Args >(args)...))
 
- Public Member Functions inherited from openPMD::AttributableInterface
Attribute getAttribute (std::string const &key) const
 Retrieve value of Attribute stored with provided key. More...
 
bool deleteAttribute (std::string const &key)
 Remove Attribute of provided value both logically and physically. More...
 
std::vector< std::string > attributes () const
 List all currently stored Attributes' keys. More...
 
size_t numAttributes () const
 Count all currently stored Attributes. More...
 
bool containsAttribute (std::string const &key) const
 Check whether am Attribute with a given key exists. More...
 
std::string comment () const
 Retrieve a user-supplied comment associated with the object. More...
 
AttributableInterfacesetComment (std::string const &comment)
 Populate Attribute corresponding to a comment with the user-supplied comment. More...
 
void seriesFlush ()
 Flush the corresponding Series object. More...
 
MyPath myPath () const
 The path to this object within its containing Series. More...
 
template<typename T >
bool setAttribute (std::string const &key, T value)
 Populate Attribute of provided name with provided value. More...
 
bool setAttribute (std::string const &key, char const value[])
 

Protected Member Functions

void readBase ()
 
- Protected Member Functions inherited from openPMD::Container< T_elem >
void clear_unchecked ()
 
EraseStaleEntries eraseStaleEntries ()
 
- Protected Member Functions inherited from openPMD::AttributableInterface
 AttributableInterface (internal::AttributableData *)
 
template<typename T >
 AttributableInterface (T *attri)
 
const internal::SeriesInternalretrieveSeries () const
 
internal::SeriesInternalretrieveSeries ()
 
void seriesFlush (FlushLevel)
 
void flushAttributes ()
 
void readAttributes (ReadMode)
 
template<typename T >
readFloatingpoint (std::string const &key) const
 Retrieve the value of a floating point Attribute of user-defined precision with ensured type-safety. More...
 
template<typename T >
std::vector< T > readVectorFloatingpoint (std::string const &key) const
 Retrieve a vector of values of a floating point Attributes of user-defined precision with ensured type-safety. More...
 
AbstractIOHandlerIOHandler ()
 
const AbstractIOHandlerIOHandler () const
 
Writable *& parent ()
 
const Writableparent () const
 
Writablewritable ()
 
const Writablewritable () const
 
internal::AttributableDataget ()
 
const internal::AttributableDataget () const
 
bool dirty () const
 
bool & dirty ()
 
bool written () const
 
bool & written ()
 
const IterationcontainingIteration () const
 Returns the corresponding Iteration. More...
 
IterationcontainingIteration ()
 

Protected Attributes

std::shared_ptr< bool > m_containsScalar
 
- Protected Attributes inherited from openPMD::Container< T_elem >
std::shared_ptr< InternalContainer > m_container
 
- Protected Attributes inherited from openPMD::LegacyAttributable
std::shared_ptr< internal::AttributableDatam_attributableData
 
- Protected Attributes inherited from openPMD::AttributableInterface
internal::AttributableDatam_attri = nullptr
 

Friends

class Iteration
 
class ParticleSpecies
 

Additional Inherited Members

- Protected Types inherited from openPMD::Container< T_elem >
using InternalContainer = std::map< std::string, T_elem >
 
- Protected Types inherited from openPMD::AttributableInterface
enum  ReadMode { IgnoreExisting, OverrideExisting, FullyReread }
 

Member Function Documentation

◆ scalar()

template<typename T_elem >
bool openPMD::BaseRecord< T_elem >::scalar
inline

Returns true if this record only contains a single component.

Returns
true if a record with only a single component

◆ unitDimension()

template<typename T_elem >
std::array< double, 7 > openPMD::BaseRecord< T_elem >::unitDimension
inline

Return the physical dimension (quantity) of a record.

Todo:
add also, as soon as added in Container:

Annotating the physical dimension of a record allows us to read data sets with arbitrary names and understand their purpose simply by dimensional analysis. The dimensional base quantities in openPMD are in order: length (L), mass (M), time (T), electric current (I), thermodynamic temperature (theta), amount of substance (N), luminous intensity (J) after the international system of quantities (ISQ).

See also
https://en.wikipedia.org/wiki/Dimensional_analysis
https://en.wikipedia.org/wiki/International_System_of_Quantities#Base_quantities
https://github.com/openPMD/openPMD-standard/blob/1.1.0/STANDARD.md#required-for-each-record
Returns
powers of the 7 base measures in the order specified above

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