> 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/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md).

# medcrypt::guardian::ChannelGuard

Nom du canal au sein d’une [session](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md).

`#include <ChannelGuard.h>`

## Fonctions publiques

|                                                                                                         | Nom                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                                                                                         | <p><a href="#function-~channelguard"><strong>\~ChannelGuard</strong></a>()<br>Le destructeur.</p>                                                                                                                                   |
| bool                                                                                                    | <p><a href="#function-isready"><strong>IsReady</strong></a>()<br>Le <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md">ChannelGuard</a> est prêt à envoyer des données.</p>           |
| [État](/fr/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>Accepte les données à encoder et à envoyer via la session parente (bloquant)</p>               |
| [État](/fr/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>Accepte les données à encoder et à envoyer via la session parente (non bloquant)</p> |
| [État](/fr/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>Renvoie les données décodées reçues par la session parente (bloquant)</p>                           |
| [État](/fr/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>Indique si toutes les données fournies à \[Async]DataForChannel ont été envoyées.</p>                                                                        |
| bool                                                                                                    | <p><a href="#function-isdatawaiting"><strong>IsDataWaiting</strong></a>()<br>Indique si des données sont en attente de réception avec \[Async]DataFromChannel.</p>                                                                  |

## Documentation des fonctions publiques

### fonction \~ChannelGuard

```cpp
~ChannelGuard()
```

Le destructeur.

**Paramètres**:

* **aucun**

**Valeur de retour**: none

Le destructeur n’aura aucun effet sur la représentation interne de [Guardian](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md) de [ChannelGuard](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md).

### fonction IsReady

```cpp
bool IsReady()
```

Le [ChannelGuard](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) est prêt à envoyer des données.

**Paramètres**:

* **aucun**

**Renvoie**:

* **true** le canal est prêt à envoyer des données
* **false** le canal n’est pas prêt à envoyer des données

**Valeur de retour**: bool

[ChannelGuard](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) renverra toujours toutes les données disponibles avec DataFromChannel, quel que soit l’état interne. Il bloquera l’envoi de nouvelles données tant qu’il ne sera pas prêt.

### fonction DataForChannel

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

Accepte les données à encoder et à envoyer via la session parente (bloquant)

**Paramètres**:

* **in\_data** tampon de données binaires à encoder et à envoyer
* **in\_data\_size** taille des données binaires dans in\_data

**Renvoie**:

* **OK** in\_data a été traité
* **FAIL** échec général, consultez le journal
* **BADPARAM** in\_data est nullptr
* **OUTOFMEMORY** le tampon fourni est trop volumineux

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel bloquant pour envoyer des données. Lorsque cet appel se termine avec succès, les données fournies ont été sécurisées selon le profil chargé et transmises à la bibliothèque réseau gérée configurée ou au rappel non géré.

S’il s’agit d’un canal dans une session ou un service non géré, la session doit disposer d’un rappel DataForSocket enregistré.

### function AsyncDataForChannel

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

Accepte des données à encoder et à envoyer via la session parente (non bloquant)

**Paramètres**:

* **in\_data** tampon de données binaires à encoder et à envoyer
* **in\_data\_size** taille des données binaires dans in\_data

**Renvoie**:

* **OK** in\_data a été traité
* **FAIL** échec général, consultez le journal
* **BADPARAM** in\_data est nullptr
* **OUTOFMEMORY** le tampon fourni est trop volumineux

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel non bloquant pour envoyer des données. Lorsque cet appel se termine avec succès, les données fournies ont été sécurisées selon le profil chargé et mises en file d’attente dans la session parente pour être envoyées.

### function DataFromChannel

```cpp
Status DataFromChannel(
    char * out_data,
    size_t * io_data_size
)
```

Renvoie les données décodées reçues par la session parente (bloquant)

**Paramètres**:

* **out\_data** tampon de données binaires dans lequel stocker les données de sortie
* **io\_data\_size** indique la taille du tampon out\_data fourni ; en cas de retour réussi, cette valeur est définie sur la taille des données dans out\_data

**Renvoie**:

* **OK** out\_data est renseigné avec les données de l’application
* **FAIL** échec général
* **BADPARAM** out\_data est nullptr, ou io\_data\_size est nullptr ou égal à 0
* **VERIFYFAIL** out\_data peut contenir des données, mais celles-ci ont échoué à la vérification de signature
* **OUTOFMEMORY** le tampon fourni est trop petit

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel bloquant pour recevoir des données. Lorsque cet appel se termine avec succès, out\_data contient des données valides.

S’il s’agit d’un canal dans une session ou un service non géré, la session doit disposer d’un rappel DataFromSocket enregistré.

### function AsyncDataFromChannel

```cpp
Status AsyncDataFromChannel(
    char * out_data,
    size_t * io_data_size
)
```

**Paramètres**:

* **out\_data** tampon de données binaires dans lequel stocker les données de sortie
* **io\_data\_size** indique la taille du tampon out\_data fourni ; en cas de retour réussi, cette valeur est définie sur la taille des données dans out\_data

**Renvoie**:

* **OK** out\_data est renseigné avec les données de l’application
* **FAIL** échec général
* **BADPARAM** out\_data est nullptr, ou io\_data\_size est nullptr ou égal à 0
* **VERIFYFAIL** out\_data peut contenir des données, mais celles-ci ont échoué à la vérification de signature
* **OUTOFMEMORY** le tampon fourni est trop petit
* **AGAIN** aucune donnée n’est disponible pour le moment ; réessayez

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Renvoie les données décodées reçues par la session parente (non bloquant)

Appel non bloquant pour recevoir des données. Lorsque cet appel se termine avec succès, out\_data contient des données valides.

### fonction IsDataGone

```cpp
bool IsDataGone()
```

Indique si toutes les données fournies à \[Async]DataForChannel ont été envoyées.

**Paramètres**:

* **aucun**

**Renvoie**:

* **false** des données sont en attente d’envoi
* **true** aucune donnée n’est en attente d’envoi

**Valeur de retour**: bool

Si la valeur est false, des données n’ont pas encore été transmises à la couche réseau ou au transport géré par l’utilisateur.

### function IsDataWaiting

```cpp
bool IsDataWaiting()
```

Indique si des données sont en attente de réception avec \[Async]DataFromChannel.

**Paramètres**:

* **aucun**

**Renvoie**:

* **false** aucune donnée n’est en attente de réception
* **true** des données sont en attente de réception

**Valeur de retour**: bool

Si la valeur est true, \[Async]DataFromChannel renvoie un résultat positif et DataFromChannel ne bloque pas.

## Débogage et journalisation

Guardian ne crée pas de fichiers journaux. La journalisation est plutôt contrôlée par l’application :

* Guardian écrit les journaux dans `stdout` et `stderr`, qui s’affichent dans le terminal/la CLI de l’application en cours d’exécution. Recherchez dans la sortie les codes d’erreur spécifiques ou les échecs de connexion.
* **Journalisation personnalisée :** Utilisez `SetLoggingCallback` pour rediriger les messages de journalisation vers une fonction de rappel, interrompre leur affichage dans le terminal et permettre un traitement personnalisé des journaux
* **Contrôle de la journalisation :** Les applications peuvent contrôler le niveau et le degré de détail de la journalisation.
* **Interface utilisateur de Guardian Cloud**: Consultez l’interface Guardian Cloud pour obtenir des détails supplémentaires sur les erreurs et connaître l’état du provisionnement.


---

# 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/fr/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.
