|
pstore2
|
The string address can come in three forms: More...
#include <indirect_string.hpp>

Public Member Functions | |
| constexpr | indirect_string (database const &db, address const addr) noexcept |
| constexpr | indirect_string (database const &db, gsl::not_null< raw_sstring_view const *> const str) noexcept |
| bool | operator== (indirect_string const &rhs) const |
| bool | operator!= (indirect_string const &rhs) const |
| bool | operator< (indirect_string const &rhs) const |
| raw_sstring_view | as_string_view (gsl::not_null< shared_sstring_view *> owner) const |
| std::size_t | length () const |
| raw_sstring_view | as_db_string_view (gsl::not_null< shared_sstring_view *> const owner) const |
| When it is known that the string body is a store address use this function to carry out additional checks that the address is reasonable. More... | |
| std::string | to_string () const |
| constexpr bool | is_in_store () const noexcept |
| constexpr address | in_store_address () const noexcept |
Static Public Member Functions | |
| static address | write_body_and_patch_address (transaction_base &transaction, raw_sstring_view const &str, typed_address< address > address_to_patch) |
| Write the body of a string and updates the indirect pointer so that it points to that body. More... | |
| static indirect_string | read (database const &db, typed_address< indirect_string > addr) |
| Reads an indirect string from the store. | |
Friends | |
| struct | serialize::serializer< indirect_string > |
The string address can come in three forms:
The use of the LBS of the address field to distinguish between in-heap and in-store addresses means that the in-store string bodies must be 2-byte aligned.
|
inline |
When it is known that the string body is a store address use this function to carry out additional checks that the address is reasonable.
|
inlinenoexcept |
|
inlinenoexcept |
|
static |
Write the body of a string and updates the indirect pointer so that it points to that body.
| transaction | The transaction to which the string body is appended. |
| str | The string to be written. |
| address_to_patch | The in-store address of the indirect_string instance which will point to the string. |
1.8.13