8#include <system/smart_ptr.h>
11#if defined(ENABLE_CYCLES_DETECTION_EXT)
14namespace System {
namespace Details {
17struct SharedMembersType;
34 using ClassCallback = std::function<void(Details::SharedMembersType&)>;
35 using DelegateCallback = std::function<std::shared_ptr<Details::HeldVariables>()>;
37 ASPOSECPP_SHARED_API ChainElement(
const char* field_name,
const SmartPtrInfo& info);
39 ASPOSECPP_SHARED_API ChainElement(
const char* field_name,
const Object*
object);
41 ASPOSECPP_SHARED_API ChainElement(
const char* field_name,
const std::type_info& member_info,
const void* member_ptr,
42 ClassCallback callback);
44 ASPOSECPP_SHARED_API ChainElement(
const char* field_name,
const std::type_info& member_info,
const void* member_ptr,
45 DelegateCallback callback);
47 std::vector<ChainElement> GetHolders()
const;
49 bool operator < (
const ChainElement& other)
const;
51 const char* GetObjectName()
const;
52 const char* GetFieldName()
const;
54 const SmartPtrInfo& GetInfo()
const;
59 const char* m_object_name;
60 const char* m_field_name;
65 ClassCallback m_class_callback;
66 DelegateCallback m_delegate_callback;
@ Debug
Record debugging information.
Definition: db_command.h:9
constexpr bool operator<(std::nullptr_t, DateTime)
Definition: date_time.h:712