prog:protobuf
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
prog:protobuf [2018/08/18 17:19] – Indentation root | prog:protobuf [2018/09/22 22:59] (Version actuelle) – [Protocol Buffers] : ajout de "Emplacement du .pb.* généré" root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====Protocol Buffers==== | + | =====Protocol Buffers===== |
- | ===Cas simple=== | + | ====Cas simple==== |
Le format de base est simple. [[https:// | Le format de base est simple. [[https:// | ||
Ligne 21: | Ligne 21: | ||
</ | </ | ||
- | ===Import=== | + | ====Import==== |
Il est possible de créer des structures plus complexes avec des sous niveaux et d' | Il est possible de créer des structures plus complexes avec des sous niveaux et d' | ||
Ligne 51: | Ligne 51: | ||
</ | </ | ||
- | ===Évolutions=== | + | ====Subtilités==== |
+ | ===Emplacement du .pb.* généré=== | ||
+ | Si le fichier '' | ||
+ | |||
+ | Généré dans le dossier '' | ||
+ | / | ||
+ | |||
+ | Généré dans '' | ||
+ | / | ||
+ | |||
+ | ====Évolutions==== | ||
* proto2 : | * proto2 : | ||
* Il faut toujours mettre '' | * Il faut toujours mettre '' | ||
Ligne 116: | Ligne 126: | ||
// Tant que cette méthode n'est pas terminée, la connexion avec le | // Tant que cette méthode n'est pas terminée, la connexion avec le | ||
// client reste active. | // client reste active. | ||
+ | // Tous les threads travaillent sur la même instance de la classe. | ||
:: | :: | ||
:: | :: | ||
Ligne 141: | Ligne 152: | ||
// Pour instancier le serveur | // Pour instancier le serveur | ||
GreeterImpl service; | GreeterImpl service; | ||
- | // Le builder n'a besoin d' | + | // Le builder n'a besoin d' |
ServerBuilder builder; | ServerBuilder builder; | ||
builder.AddListeningPort(" | builder.AddListeningPort(" | ||
builder.RegisterService(& | builder.RegisterService(& | ||
+ | // La variable service doit exister tant que l' | ||
std:: | std:: | ||
// Lancement du serveur. Fonction bloquante. | // Lancement du serveur. Fonction bloquante. | ||
Ligne 152: | Ligne 164: | ||
// ayant lancé la méthode Wait). | // ayant lancé la méthode Wait). | ||
server-> | server-> | ||
+ | </ | ||
+ | |||
+ | ===Client=== | ||
+ | <code cpp> | ||
+ | // Création du client. | ||
+ | std:: | ||
+ | grpc:: | ||
+ | grpc:: | ||
+ | std:: | ||
+ | llgc:: | ||
+ | grpc:: | ||
+ | std:: | ||
+ | :: | ||
+ | |||
+ | // Communication avec le serveur. | ||
+ | :: | ||
+ | // Envoie un message au serveur. | ||
+ | stream-> | ||
+ | // Ferme la communication avec le serveur dans le sens client vers serveur. | ||
+ | stream-> | ||
+ | // Attente de la réponse de façon bloquante. | ||
+ | stream-> | ||
+ | // Pour arrêter un Read bloquant, il faut lancer depuis un autre thread | ||
+ | context.TryCancel(); | ||
+ | // Ferme la communication. | ||
+ | // L' | ||
+ | // va échouer mais ne sera plus bloquante. | ||
+ | if (!stream-> | ||
+ | std::cout << " | ||
</ | </ |
prog/protobuf.1534605595.txt.gz · Dernière modification : 2018/08/18 17:19 de root