SHV RPC RI

This is definition of Resource Identifiers for SHV RPC. SHV has two types of resources; those are methods and signals.

Resource identifiers are human readable and are used thorough this documentation as well as in the broker's signal filtering. They can also be used by other tools.

The format is either PATH:METHOD for methods or PATH:METHOD:SIGNAL for signals.

The first field PATH is the SHV path. It can be glob pattern (rules from POSIX.2, 3.13 with added support for ** that matches multiple nodes). Note that empty PATH is the root of the SHV node tree.

The second field METHOD is the SHV RPC method name. It can be wildcard pattern (rules from POSIX.2, 3.13). The empty method name is invalid and thus is invalid pattern.

The third field SIGNAL that is used only for signals is the SHV RPC signal name while METHOD in such case is its source. It can be wildcard pattern (rules from POSIX.2, 3.13). The empty signal name is invalid and thus is invalid pattern.

The examples of Resource Identifiers for methods and method matching:

Resource**:***:gettest/**:get**:*:*
Method .app:name✔️
Method sub/device/track:get✔️✔️
Method test/device/track:get✔️✔️✔️

The examples of Resource Identifiers for signals and signals matching:

Resource**:*:***:get:*test/**:get:*chngtest/*:ls:lsmodtest/**:get
Signal test/device/track:get:chng✔️✔️✔️✔️
Signal test/device/track:get:mod✔️✔️✔️
Signal test/device/track:ls:lsmod✔️✔️

Please note that the method RI matches all signals associated with the corresponding method. The right to invoke a method also grants the right to receive any signals of its associated method.