struct owq_wire_query assumptions

Object creation

  • There is a create routine (FS_OWQ_create) and a destroy routine (FS_OWQ_destroy) that must be called to prevent unallocated memory or leaks.
  • When copies are made, they are "shallow copies" (pointers are to same memory areas) except in special case of FS_create_shallow_aggregate
  • creating an object for an array value (parsedname.extension == EXTENSION_ALL) allocates a properly sized array ov "value_objects"

Object values -- scalar

  • temperature and tempgap types are converted before parsing, and converted back only for display. Internally only native format (Celsius) is used.
  • numbers (integer, unsigned, float, date, boolean) are held internally as values. They are converted to strings (with proper offset if requested) only on display.
  • string values are held in "buffer" with offset alreay applied. length gives real length.

object values -- array

  • numbers are handled the same way as scalars
  • string arrays, internally, have no delimitter.
  • length for each string element.
  • start of each string element is in buffer, concatenated. Use length values to find position.
  • string arrays are NOT cached (currently) 

Previous page: Read and Write object
Next page: Object write process