refactor: update SmartPointer default constructor to initialize as null and add comprehensive documentation

This commit is contained in:
AndreaRigoni
2026-04-24 08:10:16 +00:00
parent 54289cc617
commit 1e763f7751
5 changed files with 149 additions and 16 deletions

View File

@@ -6,10 +6,10 @@ Object context can be thought as a collection of uLib::Object instances. And the
## SmartPointer access
SmartPointer is a class that is used to hold a reference to another object. It is a template class that can be used to hold a reference to any object that is derived from uLib::Object. It is a smart pointer because it will automatically delete the object when it is no longer needed. It is also a smart pointer because it will automatically update the object when it is no longer needed.
SmartPointer is a class that is used to hold a reference to another object. It is a template class that can be used to hold a reference to any object as a shared_ptr.
The ObjectContext is responsible to keep track of all the objects that are added to it and to provide a way to access them, but also it holds the SmartPointer instances that point to the objects that are added to it. In this way Objects added to a Context are disposed only when the context is destroyed.
For this reason the access to a object context for a Object via Get/Set is done using the SmartPointer instances.
The ObjectContext is responsible to keep track of all the objects that are added to it and to provide a way to access them, but also it holds the SmartPointer instances that point to the objects that are added to it. In this way Objects added to a Context are disposed only when all the references to it are removed.
For this reason the access to a object context for a Object via Get/Set must be done using the SmartPointer instances.
## SmartPointer access