> For the complete documentation index, see [llms.txt](https://docs.medcrypt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.medcrypt.com/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md).

# medcrypt::guardian::ChannelGuard

다음 항목 내의 명명된 채널:  [Session](/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md).

`#include <ChannelGuard.h>`

## 공개 함수

|                                                                                                       | 이름                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                                                                                       | <p><a href="#function-~channelguard"><strong>\~ChannelGuard</strong></a>()<br>소멸자입니다.</p>                                                                                                                     |
| bool                                                                                                  | <p><a href="#function-isready"><strong>IsReady</strong></a>()<br> <a href="/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md">ChannelGuard</a> 가 데이터를 전송할 준비가 되었습니다.</p> |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-dataforchannel"><strong>DataForChannel</strong></a>(const char \* in\_data, const size\_t & in\_data\_size)<br>인코딩하여 상위 세션을 통해 전송할 데이터를 수신합니다(블로킹).</p>                                 |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-asyncdataforchannel"><strong>AsyncDataForChannel</strong></a>(const char \* in\_data, const size\_t & in\_data\_size)<br>인코딩하여 상위 세션을 통해 전송할 데이터를 수신합니다(논블로킹).</p>                      |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-datafromchannel"><strong>DataFromChannel</strong></a>(char <em>out\_data, size\_t</em> io\_data\_size)<br>상위 세션에서 수신한 데이터를 디코딩하여 반환합니다(블로킹).</p>                                        |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | [**AsyncDataFromChannel**](#function-asyncdatafromchannel)(char *out\_data, size\_t* io\_data\_size)                                                                                                          |
| bool                                                                                                  | <p><a href="#function-isdatagone"><strong>IsDataGone</strong></a>()<br>\[Async]DataForChannel에 제공된 모든 데이터가 전송되었는지 나타냅니다.</p>                                                                                  |
| bool                                                                                                  | <p><a href="#function-isdatawaiting"><strong>IsDataWaiting</strong></a>()<br>\[Async]DataFromChannel을 통해 수신할 대기 중인 데이터가 있는지 나타냅니다.</p>                                                                        |

## 공개 함수 문서

### 함수 \~ChannelGuard

```cpp
~ChannelGuard()
```

소멸자입니다.

**매개변수**:

* **없음**

**반환값**: 없음

소멸자는 내부  [Guardian](/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md) 의 다음 객체 표현에 영향을 주지 않습니다:  [ChannelGuard](/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md).

### 함수 IsReady

```cpp
bool IsReady()
```

해당  [ChannelGuard](/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) 가 데이터를 전송할 준비가 되었습니다.

**매개변수**:

* **없음**

**반환값**:

* **true** 채널이 데이터를 전송할 준비가 되었습니다.
* **false** 채널이 데이터를 전송할 준비가 되지 않았습니다.

**반환값**: bool

[ChannelGuard](/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) 는 내부 상태와 관계없이 사용 가능한 데이터가 있으면 항상 DataFromChannel을 통해 반환합니다. 준비가 될 때까지 새 데이터 전송을 차단합니다.

### 함수 DataForChannel

```cpp
Status DataForChannel(
    const char * in_data,
    const size_t & in_data_size
)
```

인코딩하여 상위 세션을 통해 전송할 데이터를 수신합니다(블로킹).

**매개변수**:

* **in\_data** 인코딩하여 전송할 바이너리 데이터 버퍼
* **in\_data\_size** in\_data의 바이너리 데이터 크기

**반환값**:

* **OK** in\_data가 처리되었습니다.
* **FAIL** 일반 오류입니다. 로그를 확인하십시오.
* **BADPARAM** in\_data가 nullptr입니다.
* **OUTOFMEMORY** 제공된 버퍼가 너무 큽니다.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

데이터를 전송하는 블로킹 호출입니다. 이 호출이 성공적으로 완료되면 제공된 데이터가 로드된 프로필을 기반으로 보호되고, 구성된 관리형 네트워크 라이브러리 또는 비관리형 콜백으로 전달됩니다.

비관리형 세션/서비스의 채널인 경우, 세션에 DataForSocket 콜백이 등록되어 있어야 합니다.

### 함수 AsyncDataForChannel

```cpp
상태 AsyncDataForChannel(
    const char * in_data,
    const size_t & in_data_size
)
```

상위 세션을 통해 인코딩하고 전송할 데이터를 받습니다(비블로킹).

**매개변수**:

* **in\_data** 인코딩하여 전송할 바이너리 데이터 버퍼
* **in\_data\_size** in\_data의 바이너리 데이터 크기

**반환값**:

* **OK** in\_data가 처리되었습니다.
* **FAIL** 일반 오류입니다. 로그를 확인하십시오.
* **BADPARAM** in\_data가 nullptr입니다.
* **OUTOFMEMORY** 제공된 버퍼가 너무 큽니다.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

데이터를 전송하는 비블로킹 호출입니다. 이 호출이 성공적으로 완료되면 제공된 데이터가 로드된 프로필을 기반으로 보호되고, 전송 대기열에 추가되어 상위 세션에서 전송됩니다.

### 함수 DataFromChannel

```cpp
상태 DataFromChannel(
    char * out_data,
    size_t * io_data_size
)
```

상위 세션에서 수신한 디코딩된 데이터를 반환합니다(블로킹).

**매개변수**:

* **out\_data** 출력 데이터를 저장할 바이너리 데이터 버퍼
* **io\_data\_size** 제공된 out\_data 버퍼의 크기를 지정합니다. 성공적으로 반환되면 out\_data에 있는 데이터의 크기로 설정됩니다.

**반환값**:

* **OK** out\_data에 애플리케이션 데이터가 채워집니다.
* **FAIL** 일반 오류
* **BADPARAM** out\_data가 nullptr이거나 io\_data\_size가 nullptr 또는 0입니다.
* **VERIFYFAIL** out\_data에 데이터가 채워질 수 있지만, 포함된 데이터가 서명 검증에 실패했습니다.
* **OUTOFMEMORY** 제공된 버퍼가 너무 작습니다.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

데이터를 수신하는 블로킹 호출입니다. 이 호출이 성공적으로 완료되면 out\_data에 유효한 데이터가 채워집니다.

비관리형 세션/서비스의 채널인 경우, 세션에 DataFromSocket 콜백이 등록되어 있어야 합니다.

### 함수 AsyncDataFromChannel

```cpp
상태 AsyncDataFromChannel(
    char * out_data,
    size_t * io_data_size
)
```

**매개변수**:

* **out\_data** 출력 데이터를 저장할 바이너리 데이터 버퍼
* **io\_data\_size** 제공된 out\_data 버퍼의 크기를 지정합니다. 성공적으로 반환되면 out\_data에 있는 데이터의 크기로 설정됩니다.

**반환값**:

* **OK** out\_data에 애플리케이션 데이터가 채워집니다.
* **FAIL** 일반 오류
* **BADPARAM** out\_data가 nullptr이거나 io\_data\_size가 nullptr 또는 0입니다.
* **VERIFYFAIL** out\_data에 데이터가 채워질 수 있지만, 포함된 데이터가 서명 검증에 실패했습니다.
* **OUTOFMEMORY** 제공된 버퍼가 너무 작습니다.
* **AGAIN** 현재 사용할 수 있는 데이터가 없습니다. 다시 시도하세요.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

상위 세션에서 수신한 디코딩된 데이터를 반환합니다(비블로킹).

데이터를 수신하는 비블로킹 호출입니다. 이 호출이 성공적으로 완료되면 out\_data에 유효한 데이터가 채워집니다.

### 함수 IsDataGone

```cpp
bool IsDataGone()
```

\[Async]DataForChannel에 제공된 데이터가 모두 전송되었는지 나타냅니다.

**매개변수**:

* **없음**

**반환값**:

* **false** 전송 대기 중인 데이터가 있습니다.
* **true** 전송 대기 중인 데이터가 없습니다.

**반환값**: bool

false인 경우, 네트워크 계층 또는 사용자 관리 전송 계층으로 아직 전달되지 않은 데이터가 있습니다.

### 함수 IsDataWaiting

```cpp
bool IsDataWaiting()
```

\[Async]DataFromChannel을 사용하여 수신할 데이터가 대기 중인지 나타냅니다.

**매개변수**:

* **없음**

**반환값**:

* **false** 수신 대기 중인 데이터가 없습니다.
* **true** 수신 대기 중인 데이터가 있습니다.

**반환값**: bool

true인 경우 \[Async]DataFromChannel은 성공적으로 반환되며 DataFromChannel은 블로킹되지 않습니다.

## 디버깅 및 로깅

Guardian은 로그 파일을 생성하지 않습니다. 대신 로깅은 애플리케이션에서 제어합니다.

* Guardian은 로그를 다음으로 출력합니다: `stdout` 및 `stderr`이러한 로그는 실행 중인 애플리케이션의 터미널/CLI에 표시됩니다. 출력에서 특정 오류 코드나 연결 실패를 확인하세요.
* **사용자 지정 로깅:** 다음을 사용하여 `SetLoggingCallback` 로그 메시지를 콜백 함수로 리디렉션할 수 있습니다. 이렇게 하면 터미널 출력이 중단되고 사용자 지정 로그 처리가 가능해집니다.
* **로그 제어:** 애플리케이션에서 로그 수준과 상세도를 제어할 수 있습니다.
* **Guardian Cloud UI**: Guardian Cloud 인터페이스에서 추가 오류 세부 정보와 프로비저닝 상태를 확인하세요.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.medcrypt.com/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
