My Project
Loading...
Searching...
No Matches
kernel_uniqueptr.h File Reference
#include <dlfcn.h>
#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/wait.h>
#include <semaphore.h>
#include <stdbool.h>
#include <netdb.h>
#include <arpa/inet.h>
#include "kernel_print.h"
#include "kernel_engine.h"
#include "../src/ename.c.inc"

Go to the source code of this file.

Classes

struct  SharedPtr
 공유 스마트 포인터 More...
 
struct  UniquePtr
 고유 스마트 포인터 More...
 

Macros

#define KERNEL_UNIQUEPTR_H
 
#define BUF_SIZE   100
 
#define NUM_THREADS   3
 
#define MAX_STRING_SIZE   100
 
#define RETAIN_SHARED_PTR(ptr)
 
#define RELEASE_SHARED_PTR(ptr)
 

Functions

void default_deleter (void *ptr)
 기본 소멸자 함수 (free 사용)
 
SharedPtr create_shared_ptr (size_t size, void(*deleter)(void *))
 shared_ptr 생성 함수
 
UniquePtr create_unique_ptr (size_t size, void(*deleter)(void *))
 unique_ptr 생성 함수
 
void retain_shared_ptr (SharedPtr *sp)
 shared_ptr 참조 카운트 증가
 
void release_shared_ptr (SharedPtr *sp)
 shared_ptr 참조 카운트 감소 및 메모리 해제
 
void release_unique_ptr (UniquePtr *up)
 unique_ptr 메모리 해제
 
UniquePtr transfer_unique_ptr (UniquePtr *up)
 unique_ptr 소유권 이전
 
void * thread_function_shared (void *arg)
 스레드 함수 (shared_ptr 사용)
 
void * thread_function_unique (void *arg)
 스레드 함수 (unique_ptr 사용)
 

Macro Definition Documentation

◆ BUF_SIZE

#define BUF_SIZE   100

Definition at line 27 of file kernel_uniqueptr.h.

◆ KERNEL_UNIQUEPTR_H

#define KERNEL_UNIQUEPTR_H

Definition at line 3 of file kernel_uniqueptr.h.

◆ MAX_STRING_SIZE

#define MAX_STRING_SIZE   100

Definition at line 29 of file kernel_uniqueptr.h.

◆ NUM_THREADS

#define NUM_THREADS   3

Definition at line 28 of file kernel_uniqueptr.h.

◆ RELEASE_SHARED_PTR

#define RELEASE_SHARED_PTR ( ptr)
Value:
void release_shared_ptr(SharedPtr *sp)
shared_ptr 참조 카운트 감소 및 메모리 해제

Definition at line 32 of file kernel_uniqueptr.h.

◆ RETAIN_SHARED_PTR

#define RETAIN_SHARED_PTR ( ptr)
Value:
void retain_shared_ptr(SharedPtr *sp)
shared_ptr 참조 카운트 증가

Definition at line 31 of file kernel_uniqueptr.h.

Function Documentation

◆ create_shared_ptr()

SharedPtr create_shared_ptr ( size_t size,
void(* deleter )(void *) )

shared_ptr 생성 함수

Parameters
size할당할 메모리 크기
deleter소멸자 함수
Returns
생성된 SharedPtr 구조체

Definition at line 70 of file kernel_uniqueptr.h.

◆ create_unique_ptr()

UniquePtr create_unique_ptr ( size_t size,
void(* deleter )(void *) )

unique_ptr 생성 함수

클라이언트 정보를 스마트 포인터로 관리하는 배열

Parameters
size할당할 메모리 크기
deleter소멸자 함수
Returns
생성된 UniquePtr 구조체

Definition at line 89 of file kernel_uniqueptr.h.

◆ default_deleter()

void default_deleter ( void * ptr)

기본 소멸자 함수 (free 사용)

Parameters
ptr해제할 포인터

Definition at line 39 of file kernel_uniqueptr.h.

◆ release_shared_ptr()

void release_shared_ptr ( SharedPtr * sp)

shared_ptr 참조 카운트 감소 및 메모리 해제

Parameters
sp해제할 SharedPtr

Definition at line 112 of file kernel_uniqueptr.h.

◆ release_unique_ptr()

void release_unique_ptr ( UniquePtr * up)

unique_ptr 메모리 해제

Parameters
up해제할 UniquePtr

Definition at line 133 of file kernel_uniqueptr.h.

◆ retain_shared_ptr()

void retain_shared_ptr ( SharedPtr * sp)

shared_ptr 참조 카운트 증가

Parameters
sp참조할 SharedPtr

Definition at line 101 of file kernel_uniqueptr.h.

◆ thread_function_shared()

void * thread_function_shared ( void * arg)

스레드 함수 (shared_ptr 사용)

Parameters
argSharedPtr 인수
Returns
NULL

Definition at line 158 of file kernel_uniqueptr.h.

◆ thread_function_unique()

void * thread_function_unique ( void * arg)

스레드 함수 (unique_ptr 사용)

Parameters
argUniquePtr 인수
Returns
NULL

Definition at line 175 of file kernel_uniqueptr.h.

◆ transfer_unique_ptr()

UniquePtr transfer_unique_ptr ( UniquePtr * up)

unique_ptr 소유권 이전

Parameters
up소유권을 이전할 UniquePtr
Returns
새로 생성된 UniquePtr

Definition at line 146 of file kernel_uniqueptr.h.