|
pstore2
|
A section creation dispatcher is used to instantiate and construct each of a fragment's sections in pstore memory. More...
#include <section.hpp>

Public Member Functions | |
| section_creation_dispatcher (section_kind const kind) noexcept | |
| section_creation_dispatcher (section_creation_dispatcher const &)=delete | |
| section_creation_dispatcher (section_creation_dispatcher &&)=delete | |
| section_creation_dispatcher & | operator= (section_creation_dispatcher const &)=delete |
| section_creation_dispatcher & | operator= (section_creation_dispatcher &&)=delete |
| section_kind const & | kind () const noexcept |
| template<typename IntType , typename = std::enable_if<std::is_unsigned<IntType>::value>> | |
| std::size_t | aligned (IntType a) const |
| std::uint8_t * | aligned (std::uint8_t *const a) const |
| virtual std::size_t | size_bytes () const =0 |
| Returns the number of bytes of storage that are required for an instance of the section data. More... | |
| virtual std::uint8_t * | write (std::uint8_t *out) const =0 |
Copies the section instance data to the memory starting at out. More... | |
A section creation dispatcher is used to instantiate and construct each of a fragment's sections in pstore memory.
Objects in the pstore need to be portable across compilers and host ABIs so they must be "standard layout" which basically means that they can't have virtual member functions. These classes are used to add dynamic dispatch to those types.
|
inline |
| a | The value to be aligned. |
a which is correctly aligned for an instance of the type used for an instance of this section kind.
|
inline |
| a | The value to be aligned. |
a which is correctly aligned for an instance of the type used for an instance of this section kind.
|
pure virtual |
Returns the number of bytes of storage that are required for an instance of the section data.
Implemented in pstore::repo::generic_section_creation_dispatcher, pstore::repo::linked_definitions_creation_dispatcher, pstore::repo::bss_section_creation_dispatcher, and pstore::repo::debug_line_section_creation_dispatcher.
|
pure virtual |
Copies the section instance data to the memory starting at out.
On entry, out is aligned according to the result of the aligned() member function.
| out | The address to which the instance data will be written. |
Implemented in pstore::repo::generic_section_creation_dispatcher, pstore::repo::linked_definitions_creation_dispatcher, pstore::repo::bss_section_creation_dispatcher, and pstore::repo::debug_line_section_creation_dispatcher.
1.8.13