Skip to main content

Module function_call

Module function_call 

Source
Expand description

Function-Call-Style Service-API (Spec §7.2.2.1, §7.9.2.1, §7.10.1).

Das DDS-RPC-Spec definiert zwei Language-Binding-Styles:

  1. Request/Reply-Style (low-level) — crates/rpc/src/{requester, replier}.rs.
  2. Function-Call-Style (high-level) — dieses Modul.

Function-Call-Style verwendet Stubs (Client-Side-Proxy) und Skeletons (Service-Side-Dispatch), die zur Codegen-Zeit aus einer Service-Definition (IDL interface Foo { void op(); }) generiert werden. Die Stubs sehen wie native Function-Calls aus, kapseln aber intern den Request/Reply-Pfad.

§Architektur

Wir liefern hier die Runtime-Foundation fuer generierte Stubs und Skeletons:

  • FunctionStub-Trait fuer Client-Side-Proxies (jede generierte Stub-Klasse implementiert es).
  • FunctionSkeleton-Trait fuer Service-Side-Dispatch — ruft die richtige Operation aus dem request_data-Union-Discriminator und liefert die Reply.
  • dispatch_request-Helper fuer Skeleton-Implementations.

Codegen-Templates leben in crates/idl-cpp/src/rpc_template.rs (C++) und crates/idl-java/src/rpc_template.rs (Java).

Structs§

OperationDescriptor
Operation-Descriptor fuer Codegen.
ServiceDescriptor
Service-Descriptor fuer Codegen — Sammlung von OperationDescriptors.

Traits§

FunctionSkeleton
Skeleton-Trait: jeder generierte Service-Side-Dispatch implementiert das. Der Skeleton entpackt den Request-Discriminator, ruft die passende Operation in der User-Implementation und packt die Reply als Union zurueck.
FunctionStub
Stub-Trait: jeder generierte Client-Side-Proxy implementiert das.

Functions§

dispatch_request
Dispatcher-Helper fuer Skeleton-Implementations.