autoObject.tcl

#

Copyright 2015-19, Erik N. Johnson

This software is distributed under the MIT 3-clause license.

package require TclOO
package require logger
package require struct::list
#

FILENAME: autoObject.tcl

DESCRIPTION: AutoObject is a TclOO class-based package used to create auto-assembling objects that map a Tcl dict-style get/set interface onto a block of unstructured memory using simple run-time descriptors. The key feature is that objects can be transparently serialized and deserialized to/from binary or byte list format, allowing them to be passed to or received from any interface that supports byte list/serial formats, while still being Tcl-intuitive to work with programmatically.

          Past applications include converting structured data to/from
          byte arrays for COM interfaces to other languages, message
          formats for serial communication, and parsing of memory
          blocks retrieved from embedded targets.

This package documentation is auto-generated with Pycco: https://pycco-docs.github.io/pycco/

Use "pycco filename" to re-generate HTML documentation in ./docs .

;# Exclude if somehow sourced more than once.
if {!([info exists ::AutoObject::InitializationComplete] && $::AutoObject::InitializationComplete)} {
    namespace eval ::AutoObject {
        variable AUTOOBJECT_VERSION 1.0.0
        logger::init ::autoObject
        logger::import -all -namespace ::autoObject::log ::autoObject
        ::autoObject::log::setlevel warn
#

Source the base AutoObject class file

        source [file join [file dirname [info script]] autoObjectBase.tcl]
#

Source the mixin data type classes file

        source [file join [file dirname [info script]] autoObjectData.tcl]
#

Source the Tk widget support file

        source [file join [file dirname [info script]] autoObjectWidgets.tcl]

        variable InitializationComplete
    }
    set ::AutoObject::InitializationComplete true
}
package provide autoObject $::AutoObject::AUTOOBJECT_VERSION