로딩중...
검색중...
일치하는것 없음
by::instance 클래스 참조

Base class for all managed instances in memlite system 더 자세히 ...

#include <instance.hpp>

by::instance에 대한 상속 다이어그램 :
by::typeProvidable by::clonable by::tnbicontainer< std::string, node > by::tnucontainer< aser > by::tnucontainer< frame > by::tnucontainer< nInt, nInt, nInt > by::tnucontainer< param > by::tnucontainer< node > by::tnucontainer< by::baseConvergence > by::tnucontainer< by::baseFunc > by::tnucontainer< endExpr > by::tnucontainer< srcSupply > by::tnucontainer< me > by::aser by::baseConvergence by::defBlock by::errReport by::flag by::modifier by::node by::param by::podLoading by::src by::srcSupply by::stela by::tnbicontainer< K, V > by::tnucontainer< T, R, RSquare > by::tprior< T >

클래스

class  vault
 

Public 멤버 함수

 instance (id newId)
 
 instance (const me &rhs)
 
me & operator= (const me &rhs)=default
 
void * operator new (size_t sz) noexcept
 
void operator delete (void *pt, size_t sz) noexcept
 
virtual id getId () const
 
virtual nbool isHeap () const
 Checks if this instance is allocated on the heap.
 
const lifegetBindTag () const
 Returns a pointer to the associated life object for reference counting.
 
- by::typeProvidable(으)로부터 상속된 Public 멤버 함수
nbool operator== (const me &rhs) const
 
nbool operator!= (const me &rhs) const
 
virtual const typegetType () const =0
 
nbool isSub (const type &it) const
 
nbool isSub (const type *it) const BY_SIDE_FUNC(isSub)
 
nbool isSub (const me &it) const
 
nbool isSub (const me *it) const BY_SIDE_FUNC(isSub)
 
nbool isSuper (const type &it) const
 
nbool isSuper (const type *it) const BY_SIDE_FUNC(isSuper)
 
nbool isSuper (const me &it) const
 
nbool isSuper (const me *it) const BY_SIDE_FUNC(isSuper)
 
template<typename T >
nint isSub () const
 
template<typename T >
nint isSuper () const
 
template<typename T >
T * cast ()
 
template<typename T >
const T * cast () const BY_CONST_FUNC(cast< T >()) virtual void *cast(const type &to)
 Safe cast to target type using type hierarchy information
 
const void * cast (const type &to) const BY_CONST_FUNC(cast(to)) void *cast(const type *it) BY_SIDE_FUNC(cast)
 
- by::clonable(으)로부터 상속된 Public 멤버 함수
virtual me * clone () const =0
 
virtual me * cloneDeep () const
 
virtual void onCloneDeep (const me &from)
 

정적 Public 멤버 함수

static vaultgetVault ()
 

Protected 멤버 함수

nbool _setId (id new1)
 

정적 Protected 멤버 함수

static instancer_getMgr ()
 

Friends

class memliteInternal
 

상세한 설명

Base class for all managed instances in memlite system

Objects managed by memlite's custom memory pool must inherit from instance. Only by inheriting instance can objects be referenced through binder as weak or strong pointers. Instances are identified through id.

ID assignment algorithm

The weakest part of memlite is this id assignment algorithm. Instance creation is done by instancer which manages the memory pool. The instancer pushes the instance address and id to a map in the internal vault class. When instance::operator new() is called, it internally accesses vault using code like map[this] to retrieve the id value.

While seemingly fine, it has many disadvantages:

  1. Accessing vault during constructor phase is not truly safe
  2. It's slow

The initial implementation used only vector managed as FIFO, but when creating other objects inside a constructor, the order of added ids no longer follows FIFO, causing ID混乱 issues.

Remarks
Performance importance The most frequent operation in byeol is creating objects while assigning ids or performing binding. This needs improvement when time permits.

멤버 함수 문서화

◆ getBindTag()

const life * by::instance::getBindTag ( ) const

Returns a pointer to the associated life object for reference counting.

The life object is used by binder and watcher to manage the instance's lifecycle.

반환값
A const pointer to the life object, or nullptr if none is associated.

◆ isHeap()

virtual nbool by::instance::isHeap ( ) const
virtual

Checks if this instance is allocated on the heap.

반환값
true if the instance is heap-allocated, false otherwise.
주의
This check is typically related to how the instance is managed by the memory pool.

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: