logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

UBF byte register question: msg#00348

Subject: UBF byte register question
I'm wondering what the scope and lifetime of a UBF byte register is supposed to be. The byte register allows the association of an arbitrary UBF value with a single byte (that byte being any byte that is not reserved by UBF.)

<background (or my attempt at such)>

The reason for the byte register is to allow more compact UBF messages, since you can first send several commonly used values which are associated with a specific byte. When that byte is seen later, the associated value replaces the byte.

The register is set by sending

value >B

where value is any UBF value, > means "store in", and B is any byte that is not reserved by UBF(A).

E.g.

  "Universal Binary Format" >U
  U $

would be equivalent to

  "Universal Binary Format" $

or

  'person' >p
  "Brown" >b
  # {p "John" b} &
    {p "Patricia" b} &
    {p "James" b} & $

would be equivalent to

  # {'person' "John" "Brown"}  &
    {'person' "Patricia" "Brown"} &
    {'person' "James" "Brown"} & $

</background>

So I'm wondering long the byte register should live for, and who should see it.

The spec (http://www.sics.se/~joe/ubf/site/ubfa.html) doesn't specify, as far as I can tell.

My best guess is that the the byte registers are only valid for the single object following one or more byte register settings. The only unit of transaction at UBF(A) is the data object, which is terminated with a $ (dollar sign.). However, this would make the byte register useful only for longish lists which contain repeated elements.

I am tempted to suggest that the byte register could live for a longer span -- for the length of some sort of 'session' (network connection, etc.) However, such concepts don't live in the realm of UBF(A).

It would also be tempting to think of the byte register having a longer lifetime, allowing for a dynamic cache of frequently used values to persist between a client and server (adjusted by analyzing the frequency and size of objects being transmitted).

As to who should see a given byte register, if the span of the byte register is a single object (or session), then it would clearly be valid only for the current client. Since there is no concept of client at UBF(A), there is really no sense in making this distinction. However, if a byte register could persist for a longer period of time, it would make sense to address the issue of multiple sessions or clients accessing the same byte register.

Anyway, thanks for bearing with my seemingly endless UBF blitherings!


Erik Pearson
Adaptations
desk +1 510 527 5437
cell +1 510 517 3122




<Prev in Thread] Current Thread [Next in Thread>