Difference between revisions of "LSL Protocol/Restrained Love Open Relay Group/Prefix"

From Second Life Wiki
Jump to navigation Jump to search
(No difference)

Revision as of 06:58, 11 June 2009

Prefix Discussion

The current relay specification calls for two prefixes ! for meta-commands and @ for commands to be passed through to and executed by the viewer. For the most part, meta-commands are informational only (!release being an obvious exception). x-tensions fall into two significant categories: those that are largely informational and those that could be (but are not) implemented in the viewer. There is no hard and fast line between these two, for example, the currently proposed !gender add-on to the existing relay spec implies functionality that could, potentially, be implemented in the viewer or could be implemented by a script in the relay.

Clearly, though, there is need of some form of prefix for x-tensions, if only to separate them from the functionality required by all relays. There are a number of obvious alternatives: use the existing prefixes and simply document the x-tensions; create a single, new prefix for all x-tensions; and use multiple, new prefixes for the x-tensions. The first choice seems inappropriate, and choices for the second and third are to either use !x- alone or !x- for informational and # for viewer commands.

Clearly, making this choice needs to be done very early in the life of ORG.


Well, I wouldn't draw the line between informational or not, but between RLVR protocol load (commands proper) and RLVR protocol control (meta-commands).
  • For me a meta-command is something which is only there for making the protocol work. Information about protocol and relay version (!version and !implversion), are of course meta-commands. But !ping/!pong isn't really informational, neither it is a command that will have a direct observable effect, but it is needed for the protocol to work when you log on. !who gives information, but not about the relay or its wearer, but about the furniture user. !handover makes the protocol able to transfer a session from one furniture to another. !release ends a protocol session.
  • Commands proper have no effect on how the protocol behaves but instead have extra-protocol effects (up to now, the only type of effect was issuing RLV commands to the viewer). !vision (or now !x-vision) is also such a command, as it doesn't change anything to the RLVR session, but produces a HUD behavior.
NB: this distinction only makes sense with respect to one precise protocol. Indeed the load of the RLVR protocol contains RLV commands which in turn can have different roles with respect to RLV API (a different "protocol" it encapsulates). For instance @version is load with respect to RLVR protocol, but is clearly a "meta-command" w.r.t. RLV API.
Drawing the line between load and control isn't always easier than between mostly "informational" or not, but I find this distinction more useful. --Satomi Ahn 20:35, 25 April 2009 (UTC)
Hmmmm... you're almost certainly right... !x-vision could be implemented in the viewer, indeed, I wish it was because then I could do without every device trying to put a prim on my screen so it can block this, or that! I think that !handover is in a gray area.. and could be in either camp. It affects the protocol (which device the relay should respond to) but also the RLV API (which restrictions the person is under).
My bottom line is that I would like to get something simple, I really like the !x- convention, but am willing to go with another choice if that makes sense. --Chloe1982 Constantine 13:39, 11 June 2009 (UTC)