Internals#

Note

just a collection of random things.. not very useful at the moment

Internal API#

sorted-frame-fields, get-frame-field, .. generic-function:: parent-setter field-count fields-initializer unparsed-class decoded-class fixup-protocol-magic

layer-magic Open Generic function#
container-frame-size Open Generic function#
Signature:

container-frame-size (frame) => (length)

Parameters:
  • frame – An instance of <container-frame>.

Values:
  • length – An instance of false-or(<integer>).

copy-frame Generic function#
Signature:

copy-frame (frame) => (#rest results)

Parameters:
  • frame – An instance of <object>.

Values:
  • #rest results – An instance of <object>.

assemble-frame! Generic function#
Signature:

assemble-frame! (frame) => (#rest results)

Parameters:
  • frame – An instance of <frame>.

Values:
  • #rest results – An instance of <object>.

Container Frame Internals#

Due to the two disjoint activities: parse a byte vector into a high-level frame, and assemble a high-level frame into a byte vector, there are two direct subclasses, a <decoded-container-frame>, which only has the high-level objects, and a <unparsed-container-frame> which keeps an underlying byte vector and an instance of <decoded-container-frame>.

Parsing strategy and length information (which can be contradictionary).