|
| database_ptr () |
| Creates an empty and null LazyPtr.
|
|
| database_ptr (const TThisType &other)=default |
|
| database_ptr (TThisType &&other)=default |
|
| database_ptr (sbk_id id) |
| Creates a LazyPtr that can lookup its object pointer after construction.
|
|
| database_ptr (const TObjectShared &object) |
| Create a valid LazyPtr.
|
|
| database_ptr (const TObjectPtr &object) |
| Create a valid LazyPtr.
|
|
| database_ptr (std::nullptr_t) |
| Create an empty and null LazyPtr.
|
|
auto | id () const noexcept -> sbk_id |
| Get ID of the referenced object.
|
|
auto | shared () const noexcept -> TObjectShared |
|
auto | weak () const noexcept -> TObjectWeak |
|
auto | raw () const noexcept -> TObjectPtr |
| Get raw pointer of the referenced object.
|
|
auto | lookup_raw () const noexcept -> TObjectPtr |
|
auto | has_id () const noexcept -> bool |
| Returns true if we hold a valid ID and can search for an object at runtime.
|
|
auto | null () const noexcept -> bool |
| Returns true if the object pointer is not set.
|
|
auto | pending () const noexcept -> bool |
| Returns true if we hold an ID but haven't found the live object to point to yet.
|
|
auto | stale () const noexcept -> bool |
| Returns true if we previously referenced an object that has been destroyed.
|
|
auto | valid () const noexcept -> bool |
| Returns true if we hold an ID and a valid pointer to the object.
|
|
auto | lookup () const noexcept -> bool |
| Find the live object referenced by the ID and store it.
|
|
auto | reset (TObjectPtr object=nullptr) -> void |
| Clear all references.
|
|
TThisType & | operator= (TObjectShared object) |
|
TThisType & | operator= (TObjectPtr object) |
| Assign this LazyPtr to a new object, potentially destroying the current object if we're acting as a UniquePtr.
|
|
TThisType & | operator= (const TThisType &other) |
|
TThisType & | operator= (const TThisType &&other) |
|
| operator bool () const |
| Returns true if this LazyPtr references a valid object.
|
|
bool | operator! () const |
| Returns true if this LazyPtr is invalid.
|
|
TObjectPtr | operator-> () const |
| Access the raw object.
|
|
template<typename TObject>
class sbk::core::database_ptr< TObject >
Lazy Pointer Lazy pointers store an Indentifier to an object and use it to find the object later Lazy pointers can be serialized so references can persist through multiple shutdowns Passing only an indentifier will create a pointer that references no object but will try to find the object when accessing the object