ImSQL
C++ 기반 SQL 자동화 및 라이선스 관리 엔진
Loading...
Searching...
No Matches
smartptr.hpp File Reference

참조 카운트를 수동 관리하는 Smart Pointer 유틸리티를 제공합니다. More...

#include <memory>
#include <mutex>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <string>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
+ Include dependency graph for smartptr.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  smartptr::NetworkInfo
 네트워크 정보 구조체 (IPv4 전용). More...
 
struct  smartptr::SharedPtr
 수동 참조 카운트를 가지는 Smart Shared Pointer 구조체. More...
 
struct  smartptr::UniquePtr
 고유 소유권을 가지는 Unique Pointer 구조체. More...
 

Macros

#define SMARTPTR_H
 
#define RETAIN_SHARED_PTR(ptr)
 SharedPtr 참조를 증가시키는 매크로
 
#define RELEASE_SHARED_PTR(ptr)
 SharedPtr 참조를 감소시키는 매크로
 

Functions

void smartptr::default_deleter (void *ptr)
 기본 메모리 해제 함수.
 
NetworkInfo smartptr::get_local_network_info ()
 로컬 시스템의 IPv4 네트워크 정보를 가져옵니다.
 
SharedPtr smartptr::create (size_t size, void(*deleter)(void *)=default_deleter)
 SharedPtr을 생성합니다.
 
void smartptr::retain (SharedPtr *sp)
 SharedPtr의 참조 카운트를 증가시킵니다.
 
void smartptr::release (SharedPtr *sp)
 SharedPtr의 참조 카운트를 감소시키고, 필요 시 메모리를 해제합니다.
 
UniquePtr smartptr::make_unique (size_t size, void(*deleter)(void *)=default_deleter)
 UniquePtr을 생성합니다.
 
void smartptr::destroy (UniquePtr *up)
 UniquePtr이 가리키는 메모리를 해제합니다.
 
UniquePtr smartptr::transfer (UniquePtr *up)
 UniquePtr의 소유권을 다른 UniquePtr로 이전합니다.
 

Detailed Description

참조 카운트를 수동 관리하는 Smart Pointer 유틸리티를 제공합니다.

Function Documentation

◆ create()

SharedPtr smartptr::create ( size_t size,
void(* deleter )(void *) = default_deleter )
inline

SharedPtr을 생성합니다.

Parameters
size할당할 메모리 크기 (바이트 단위)
deleter메모리 해제 함수 (기본값: free)
Returns
생성된 SharedPtr 구조체

◆ default_deleter()

void smartptr::default_deleter ( void * ptr)
inline

기본 메모리 해제 함수.

Parameters
ptr해제할 메모리 포인터

◆ destroy()

void smartptr::destroy ( UniquePtr * up)
inline

UniquePtr이 가리키는 메모리를 해제합니다.

Parameters
up해제할 UniquePtr 포인터

◆ get_local_network_info()

NetworkInfo smartptr::get_local_network_info ( )
inline

로컬 시스템의 IPv4 네트워크 정보를 가져옵니다.

Returns
NetworkInfo 로컬 IP 주소와 주소 패밀리 정보

◆ make_unique()

UniquePtr smartptr::make_unique ( size_t size,
void(* deleter )(void *) = default_deleter )
inline

UniquePtr을 생성합니다.

Parameters
size할당할 메모리 크기 (바이트 단위)
deleter메모리 해제 함수 (기본값: free)
Returns
생성된 UniquePtr 구조체

◆ release()

void smartptr::release ( SharedPtr * sp)
inline

SharedPtr의 참조 카운트를 감소시키고, 필요 시 메모리를 해제합니다.

Parameters
sp대상 SharedPtr 포인터

◆ retain()

void smartptr::retain ( SharedPtr * sp)
inline

SharedPtr의 참조 카운트를 증가시킵니다.

Parameters
sp대상 SharedPtr 포인터

◆ transfer()

UniquePtr smartptr::transfer ( UniquePtr * up)
inline

UniquePtr의 소유권을 다른 UniquePtr로 이전합니다.

Parameters
up소유권을 이전할 UniquePtr 포인터
Returns
새로운 UniquePtr (기존 UniquePtr은 nullptr로 초기화)