> 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-session.md).

# medcrypt::guardian::Session

Connexion individuelle au sein d’un [service](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md).

`#include <Session.h>`

## Fonctions publiques

|                                                                                                         | Nom                                                                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                                                                                         | <p><a href="#function-~session"><strong>\~Session</strong></a>()<br>Le destructeur.</p>                                                                                                                                                                                                                                                                         |
| bool                                                                                                    | <p><a href="#function-isready"><strong>IsReady</strong></a>()<br>Les canaux sous-jacents et le transport sont-ils prêts à fonctionner ?</p>                                                                                                                                                                                                                     |
| bool                                                                                                    | <p><a href="#function-isfailed"><strong>IsFailed</strong></a>()<br>Le transport ou les canaux sous-jacents ont-ils échoué ?</p>                                                                                                                                                                                                                                 |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-findchannel"><strong>FindChannel</strong></a>(const char <em>in\_channel\_name, std::unique\_ptr<</em> <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md"><em>ChannelGuard</em></a> <em>></em> out\_channelguard)<br>Recherche une instance de canal de session à partir du nom fourni.</p> |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-shutdown"><strong>Shutdown</strong></a>(const bool & in\_force =false)<br>Arrête la connexion et les ChannelGuard contenus, empêchant toute mise en file ultérieure de données à envoyer.</p>                                                                                                                                             |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-dataforsocket"><strong>DataForSocket</strong></a>(char <em>out\_data, size\_t</em> io\_data\_size)<br>Fournit les données à envoyer via un transport géré par le client (bloquant).</p>                                                                                                                                                   |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-asyncdataforsocket"><strong>AsyncDataForSocket</strong></a>(char <em>out\_data, size\_t</em> io\_data\_size)<br>Fournit les données à envoyer via un transport géré par le client (non bloquant).</p>                                                                                                                                     |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-datafromsocket"><strong>DataFromSocket</strong></a>(const char \* in\_data, size\_t in\_data\_size)<br>Accepte les données à traiter provenant d’un transport géré par le client (bloquant).</p>                                                                                                                                          |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-asyncdatafromsocket"><strong>AsyncDataFromSocket</strong></a>(const char \* in\_data, size\_t in\_data\_size)<br>Accepte les données à traiter provenant d’un transport géré par le client (non bloquant).</p>                                                                                                                            |
| bool                                                                                                    | <p><a href="#function-isdatagone"><strong>IsDataGone</strong></a>()<br>Indique si la session contient des données en attente d’envoi.</p>                                                                                                                                                                                                                       |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-setdataforsocketcallback"><strong>SetDataForSocketCallback</strong></a>(const std::function< bool(const char \*, const size\_t &)> & in\_callback)<br>Enregistre un rappel pour l’envoi de données via un transport géré par l’utilisateur.</p>                                                                                           |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-setdatafromsocketcallback"><strong>SetDataFromSocketCallback</strong></a>(const std::function< bool(char <em>\*, size\_t</em> )> & in\_callback)<br>Enregistre un rappel pour la réception de données depuis un transport géré par l’utilisateur.</p>                                                                                     |

## Documentation des fonctions publiques

### fonction \~Session

```cpp
~Session()
```

Le destructeur.

**Paramètres**:

* **aucun**

**Valeur de retour**: none

Le destructeur n’affectera pas la représentation interne de [Guardian](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md) de [Session](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md).

### fonction IsReady

```cpp
bool IsReady()
```

Les canaux sous-jacents et le transport sont-ils prêts à fonctionner ?

**Paramètres**:

* **aucun**

**Renvoie**:

* **true** la session et les canaux qu’elle contient sont prêts à envoyer et à recevoir des données
* **false** la session et les canaux qu’elle contient ne sont pas prêts à envoyer/recevoir des données

**Valeur de retour**: bool

Si la session est prête, tous les canaux qu’elle contient sont prêts à envoyer et à recevoir des données via le mécanisme de transport connecté qu’elle contient.

Les données déjà reçues et traitées peuvent toujours être récupérées via les ChannelGuards, même si la session n’est pas prête.

### fonction IsFailed

```cpp
bool IsFailed()
```

Le transport sous-jacent ou les canaux ont-ils échoué ?

**Paramètres**:

* **aucun**

**Renvoie**:

* **true** une erreur s’est produite et bloque les futures opérations d’envoi/réception
* **false** aucune erreur ne s’est produite

**Valeur de retour**: bool

Si la session a échoué, elle doit être détruite et recréée avec Start

Les données déjà reçues et traitées peuvent toujours être récupérées via les ChannelGuards, même si la session a échoué.

### fonction FindChannel

```cpp
Status FindChannel(
    const char * in_channel_name,
    std::unique_ptr< ChannelGuard > * out_channelguard
)
```

Recherche l’instance de canal de la session à partir du nom fourni.

**Paramètres**:

* **in\_channel\_name** nom du canal terminé par un caractère nul
* **out\_channelguard** pointeur vers l’espace de stockage de unique\_ptr pour le ChannelGuard trouvé

**Renvoie**:

* **OK** le pointeur dans out\_channelguard est valide
* **FAIL** impossible de trouver le ChannelGuard spécifié par in\_channel\_name
* **BADPARAM** in\_channel\_name est nullptr ou vide, ou out\_channelguard est nullptr

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

Utilise le profil chargé pour sécuriser le transport fourni et/ou activer l’authentification en fonction de la configuration du service non géré.

### fonction Shutdown

```cpp
Status Shutdown(
    const bool & in_force =false
)
```

Arrête la connexion et les ChannelGuards qu’elle contient, empêchant toute mise en file d’attente ultérieure de données à envoyer.

**Paramètres**:

* **in\_force** à l’expiration du délai (ou immédiatement si celui-ci est égal à 0), supprime toutes les données en attente et arrête le service.

**Renvoie**:

* **OK** la session est arrêtée
* **FAIL** échec général, consultez le journal
* **AGAIN** un ou plusieurs transports ont des données en attente d’envoi

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

Inclut tous les ChannelGuards et tous les transports contenus, y compris ceux qui ont été placés, ou dont le parent a été placé, sur un autre thread par CreateTask.

### fonction DataForSocket

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

Fournit les données à envoyer via un transport géré par le client (bloquant).

**Paramètres**:

* **out\_data** tampon de données binaires dans lequel stocker les données de sortie
* **io\_data\_size** fournit la taille du tampon out\_data fourni ; en cas de réussite, cette valeur est définie sur la taille des données dans out\_data ; en cas d’échec, elle est définie sur 0

**Renvoie**:

* **OK** out\_data est rempli avec les données à envoyer
* **FAIL** échec général, consultez le journal
* **BADPARAM** out\_data est nullptr, ou io\_data\_size est nullptr ou égal à 0
* **DENIED** la session est gérée
* **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 applicable uniquement aux sessions de service non gérées. out\_data doit être un tampon alloué par l’utilisateur destiné à stocker les données à envoyer via le transport géré par l’utilisateur. L’appel retourne immédiatement en présence de l’une des conditions d’erreur ci-dessous ; sinon, il reste bloqué jusqu’à ce que les données soient prêtes à être envoyées.

### fonction AsyncDataForSocket

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

Fournit les données à envoyer via un transport géré par le client (non bloquant)

**Paramètres**:

* **out\_data** tampon de données binaires dans lequel stocker les données de sortie
* **io\_data\_size** fournit la taille du tampon out\_data fourni ; en cas de réussite, cette valeur est définie sur la taille des données dans out\_data ; en cas d’échec, elle est définie sur 0

**Renvoie**:

* **OK** out\_data est rempli avec les données à envoyer
* **FAIL** échec général, consultez le journal
* **BADPARAM** out\_data est nullptr, ou io\_data\_size est nullptr ou égal à 0
* **DENIED** la session est gérée
* **OUTOFMEMORY** le tampon fourni est trop petit
* **AGAIN** aucune donnée n’est en attente d’envoi ; out\_data reste inchangé

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

Appel non bloquant applicable uniquement aux sessions de service non gérées. out\_data doit être un tampon alloué par l’utilisateur destiné à stocker les données à envoyer via le transport géré par l’utilisateur.

### fonction DataFromSocket

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

Accepte les données à traiter depuis un transport géré par le client (bloquant)

**Paramètres**:

* **in\_data\_size** taille des données binaires dans in\_data
* **in\_data** tampon de données binaires reçues

**Renvoie**:

* **OK** in\_data a été traité
* **FAIL** impossible de traiter in\_data
* **DENIED** la session est gérée
* **OUTOFMEMORY** le tampon fourni est trop volumineux pour être envoyé

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

Appel bloquant applicable uniquement aux sessions de service non gérées. in\_data doit contenir les informations reçues depuis un transport géré par le client. Au retour, les données pourront être récupérées depuis un channelguard.

### fonction AsyncDataFromSocket

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

Accepte les données à traiter depuis un transport géré par le client (non bloquant)

**Paramètres**:

* **in\_data\_size** taille des données binaires dans in\_data
* **in\_data** tampon de données binaires reçues

**Renvoie**:

* **OK** in\_data a été mis en file d’attente pour traitement ou a été traité
* **FAIL** impossible de traiter in\_data
* **DENIED** la session est gérée
* **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 applicable uniquement aux sessions de service non gérées. in\_data doit contenir les informations reçues depuis un transport géré par le client. Au retour, les données pourront être disponibles pour être récupérées depuis un channelguard.

### fonction IsDataGone

```cpp
bool IsDataGone()
```

Indique si des données de la session sont en attente d’envoi.

**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 sont en attente d’envoi via le transport géré contenu dans la session, ou de récupération à l’aide de \[Async]DataForSocket pour être envoyées via un transport géré par l’utilisateur. Si la valeur est false, AsyncDataForSocket renvoie OK et DataForSocket ne reste pas bloqué. Il n’est pas garanti qu’un appel Shutdown sans forçage reste bloqué, car, dans un environnement multithread, davantage de données peuvent être mises en file d’attente pour envoi entre l’appel à IsDataGone et celui à Shutdown.

### fonction SetDataForSocketCallback

```cpp
Status SetDataForSocketCallback(
    const std::function< bool(const char *, const size_t &)> & in_callback
)
```

Enregistre un callback pour envoyer des données via un transport géré par l’utilisateur.

**Paramètres**:

* **in\_callback** fonction bloquante qui envoie des données via le transport géré par l’utilisateur lorsqu’elle est appelée ; renvoie false en cas d’échec.

**Renvoie**:

* **OK** callback enregistré
* **FAIL** échec général
* **DENIED** la session est gérée

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

Fournit un callback à utiliser avec le transport géré par l’utilisateur et les appels bloquants de  [ChannelGuard](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) . La fonction fournie doit être bloquante et ne renvoyer le contrôle que lorsque les données ont été envoyées avec succès ou qu’un échec rend leur envoi impossible.

### function SetDataFromSocketCallback

```cpp
Status SetDataFromSocketCallback(
    const std::function< bool(char **, size_t *)> & in_callback
)
```

Enregistre un callback pour recevoir des données depuis un transport géré par l’utilisateur.

**Paramètres**:

* **in\_callback** fonction bloquante qui reçoit des données depuis le transport géré par l’utilisateur lorsqu’elle est appelée ; renvoie false en cas d’échec.

**Renvoie**:

* **OK** callback enregistré
* **FAIL** échec général
* **DENIED** la session est gérée

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

Fournit un callback à utiliser avec le transport géré par l’utilisateur et les appels bloquants de  [ChannelGuard](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) . La fonction fournie doit être bloquante et ne renvoyer le contrôle que lorsque les données ont été reçues avec succès ou qu’un échec rend leur réception impossible. Le callback doit respecter les mêmes règles que DataFromSocket pour les paramètres de type size\_t.

## 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-session.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.
