zerodds-corba-cos-trading

CORBA stack. OMG Trading Object Service (CosTrading): service discovery through constraint expressions over typed offers.

zerodds-corba-cos-trading implements a trader over an in-memory offer database. Providers export offers (service type, properties, object reference bytes) with Trader::export or, checked against a service-type repository, export_checked, and remove them with withdraw. Consumers call query with a service type, a constraint expression, a Preference and a result limit (0 = unlimited).

  • property — Value: Int (i64), Float (f64), Str, Bool.
  • constraint — tokenizer, recursive-descent parser and evaluator for a subset of the OMG trading constraint language: comparisons == != < <= > >=, and/or/not, exist <prop>, parentheses, integer, float, 'string', TRUE/FALSE literals. A comparison over a property the offer does not carry is false.
  • trader — Trader with export/withdraw/query; Preference::First (export order), Max(prop), Min(prop).
  • service_type — ServiceTypeRepository: inheritance graph of service types, subtype matching (a query on a base type also matches offers of derived types), check of mandatory properties at export; PropertyMode Normal, ReadOnly, Mandatory, MandatoryReadOnly.
  • dynamic — DynamicPropEval: property values computed again on every query.
  • federation — Federation of named trader nodes in one process; a Link forwards queries, bounded by a hop count and a FollowOption (LocalOnly, IfNoLocal, Always), with loop avoidance; a ProxyOffer forwards a query to a target trader and joins a recipe constraint with and.

Spec anchors

  • OMG Trading Object Service: CosTrading Register, Lookup, Link, Proxy; CosTradingRepos ServiceTypeRepository; CosTradingDynamic DynamicPropEval; the trading constraint language (subset). The source names these interfaces but cites no section numbers.
  • Coverage: zerodds-corba-cos-trading-1.0.

Consumers

  • No crate in the workspace depends on zerodds-corba-cos-trading.

Features

  • std (default) — enables alloc.
  • alloc — no further effect.
  • No code in src/ is gated by either feature; the crate is #![no_std] with alloc in every configuration.

Status

  • #![no_std] with alloc, no dependencies.
  • forbid(unsafe_code).
  • Library only, no binaries.
  • 36 test functions in the source (src/).

zerodds-corba-cos-trading

CORBA-Stack. OMG Trading Object Service (CosTrading): Dienstsuche über Bedingungsausdrücke auf typisierten Angeboten.

zerodds-corba-cos-trading implementiert einen Trader über einer Angebotsdatenbank im Speicher. Anbieter exportieren Angebote (Diensttyp, Eigenschaften, Bytes der Objektreferenz) mit Trader::export oder, geprüft gegen ein ServiceTypeRepository, mit export_checked und entfernen sie mit withdraw. Nutzer rufen query mit Diensttyp, Bedingungsausdruck, Preference und Höchstzahl der Treffer auf (0 = unbegrenzt).

  • property — Value: Int (i64), Float (f64), Str, Bool.
  • constraint — Tokenizer, rekursiv absteigender Parser und Auswerter für eine Teilmenge der Bedingungssprache des OMG Trading Object Service: Vergleiche == != < <= > >=, and/or/not, exist <prop>, Klammern, Literale für Ganzzahl, Gleitkommazahl, 'string', TRUE/FALSE. Ein Vergleich über eine Eigenschaft, die das Angebot nicht trägt, ist falsch.
  • trader — Trader mit export/withdraw/query; Preference::First (Exportreihenfolge), Max(prop), Min(prop).
  • service_type — ServiceTypeRepository: Vererbungsgraph der Diensttypen, Untertyp-Abgleich (eine Anfrage auf einen Basistyp findet auch Angebote abgeleiteter Typen), Prüfung der Pflichteigenschaften beim Export; PropertyMode Normal, ReadOnly, Mandatory, MandatoryReadOnly.
  • dynamic — DynamicPropEval: Eigenschaftswerte, die bei jeder Anfrage neu berechnet werden.
  • federation — Federation aus benannten Tradern in einem Prozess; ein Link leitet Anfragen weiter, begrenzt durch eine Höchstzahl an Weiterleitungen und eine FollowOption (LocalOnly, IfNoLocal, Always), mit Schleifenvermeidung; ein ProxyOffer leitet eine Anfrage an einen anderen Trader weiter und verknüpft sie per and mit einer festen Bedingung des Proxys.

Spec-Anker

  • OMG Trading Object Service: CosTrading Register, Lookup, Link, Proxy; CosTradingRepos ServiceTypeRepository; CosTradingDynamic DynamicPropEval; die Bedingungssprache des Trading Service (Teilmenge). Der Quelltext nennt diese Schnittstellen, zitiert aber keine Abschnittsnummern.
  • Abdeckung: zerodds-corba-cos-trading-1.0.

Konsumenten

  • Kein Crate im Workspace hängt von zerodds-corba-cos-trading ab.

Features

  • std (Standard) — aktiviert alloc.
  • alloc — keine weitere Wirkung.
  • Kein Code in src/ hängt an einem der beiden Features; das Crate ist in jeder Konfiguration #![no_std] mit alloc.

Status

  • #![no_std] mit alloc, keine Abhängigkeiten.
  • forbid(unsafe_code).
  • Nur Bibliothek, keine Binaries.
  • 36 Testfunktionen im Quelltext (src/).