16#ifndef ROOT7_RDirectoryEntry
17#define ROOT7_RDirectoryEntry
25namespace Experimental {
31 using clock_t = std::chrono::system_clock;
37 std::shared_ptr<void>
fObj;
72 explicit operator bool()
const {
return !!
fObj; }
81 return std::shared_ptr<U>(
fObj,
static_cast<U *
>(ptr));
82 return std::shared_ptr<U>();
89 swap(fDate, other.fDate);
91 swap(fObj, other.fObj);
RDirectoryEntry(std::nullptr_t)
const time_point_t & GetDate() const
Get the last change date of the entry.
RDirectoryEntry(const std::shared_ptr< T > &ptr)
std::chrono::time_point< clock_t > time_point_t
std::shared_ptr< void > fObj
const std::shared_ptr< void > & GetPointer() const
std::chrono::system_clock clock_t
TClass * GetType() const
Get the object's type.
void SetChanged()
Inform the entry that it has been modified, and needs to update its last-changed time stamp.
void swap(RDirectoryEntry &other) noexcept
std::shared_ptr< U > CastPointer() const
const std::type_info & GetTypeInfo() const
Type of the object represented by this entry.
std::shared_ptr< void > & GetPointer()
Retrieve the shared_ptr of the referenced object.
time_point_t fDate
Time of last change.
TClass instances represent classes, structs and namespaces in the ROOT type system.
void * DynamicCast(const TClass *base, void *obj, Bool_t up=kTRUE)
Cast obj of this class type up to baseclass cl if up is true.
const std::type_info * GetTypeInfo() const
void swap(RDirectoryEntry &e1, RDirectoryEntry &e2) noexcept