docs(development): point readers at event/stream higher-level helper

Development.md describes the wire-layer convention (one directory per
Onvif Web Service, gen_commands.py for new SOAP command types) but
does not mention that some directories also ship hand-written
higher-level helpers built on top of those types. A new contributor
reading the doc could reasonably assume event/ is purely
auto-generated and miss event/stream.

Adds a 'Higher-level helpers' section that calls out:
* event/stream — the new channel-based event consumer.
* event/topic — the existing topic identifier helpers.

Also documents the placement convention (sub-package under the
relevant web service directory) so future helpers land in a
predictable spot.
This commit is contained in:
Sebastian Norling
2026-05-21 15:19:15 +02:00
parent a1fc7832ef
commit badcc8fba2

View File

@@ -32,3 +32,23 @@ python3 python/gen_commands.py
> **Note:** You can also typically run the generator within your IDE thanks to the `//go:generate` lines > **Note:** You can also typically run the generator within your IDE thanks to the `//go:generate` lines
> towards the top of the `types.go` files. > towards the top of the `types.go` files.
## Higher-level helpers
Some web service directories ship hand-written, higher-level helpers
built on top of the wire-layer commands. These are normal Go packages
**not** covered by the `gen_commands.py` workflow above and not
expected to be regenerated.
- [event/stream](../event/stream) — channel-based event consumer that
owns the pull-point subscription lifecycle (Create, Pull, Renew,
Unsubscribe, reconnect with jittered backoff) and decodes
notifications into normalized typed Events. Vendor topic strings
(AXIS, Hikvision, Avigilon, Hanwha, Bosch, Dahua) are classified
into a small set of `Kind` values. See the package `doc.go` for the
public surface and usage.
- [event/topic](../event/topic) — topic identifier helpers.
When adding a similar higher-level helper, place it under the relevant
web service directory as a sub-package so consumers find it next to
the wire-layer types it builds on.