aboutsummaryrefslogtreecommitdiff
path: root/contrib/bluegnu2.0.3/lib/Types.itcl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bluegnu2.0.3/lib/Types.itcl')
-rw-r--r--contrib/bluegnu2.0.3/lib/Types.itcl216
1 files changed, 0 insertions, 216 deletions
diff --git a/contrib/bluegnu2.0.3/lib/Types.itcl b/contrib/bluegnu2.0.3/lib/Types.itcl
deleted file mode 100644
index e2ef2b4..0000000
--- a/contrib/bluegnu2.0.3/lib/Types.itcl
+++ /dev/null
@@ -1,216 +0,0 @@
-# -*-Tcl-*-
-#
-# This [incr Tcl] library script contains type definitions
-#
-#
-# Type super class
-#
-
-if {[string length [info commands debug]] == 0} {
- proc debug {args} {}
-}
-
-class Type {
- variable _value
- variable _valueSaved
- variable _voidPtr
- variable _bVoid
- protected variable _currentNamespace
- protected variable _lProc
- protected variable _upLevel
-
- constructor args {
- debug {======= Constructor: [info class] $this $args} 3
- # Go up in the inheritance tree
- debug { Go up inheritance tree} 4
- set level 1
- if {[string compare [info class] ::Type] != 0} {
- debug { level set to >1<} 5
- while {[string compare [info class] \
- [uplevel $level {namespace current}]] != 0} {
- debug {>[info class]< != >[uplevel $level\
- {namespace current}]<} 5
- incr level
- debug { level incrmented to >$level<} 5
- }
- debug {>[info class]< == >[uplevel $level\
- {namespace current}]<} 5
- incr level
- regsub {^::} [uplevel $level {namespace current}] "" currentNamespace
- } else {
- regsub {^::} [uplevel {namespace current}] "" currentNamespace
- }
- set upLevel [expr [info level] - $level]
- set lProc [info level $upLevel]
- debug { Called from level: >$upLevel<} 4
- debug { Called from : >$lProc<} 4
- debug { Current namespace: >$currentNamespace<} 4
- #catch {puts " [uplevel "info body [lindex $lProc 0]"]"}
- set _bVoid 0
- set _voidPtr 0
- if {[llength $args] > 0} {
- set _value [lindex $args 0]
- } else {
- set _value ""
- }
- if {$upLevel == 0} {
- debug {Called from global} 4
- set $this $_value
- debug {this variable: [set $this]} 4
- trace variable $this rwu traceType
- } elseif {[string length $currentNamespace] && \
- [string length $lProc]} {
- debug {Called from procedure in namespace} 4
- debug { this: >$this<} 4
- debug {set $this >$_value<}
- catch {
- uplevel #$upLevel set [namespace tail $this] \"$_value\"
- uplevel #$upLevel trace variable [namespace tail $this] \
- rwu traceType
- } szErrMsg; debug { szErrMsg: >$szErrMsg<} 4
- } elseif {[string length $currentNamespace]} {
- debug {Called from namespace} 4
- debug {set $this >$_value<}
- catch {
- namespace eval ${currentNamespace} "set $this \"$_value\"\n\
- trace variable $this rwu traceType"
- } szErrMsg
- debug { TRACE set} 4
- debug { szErrMsg: >$szErrMsg<} 4
- } else {
- debug {Called from procedure} 4
- set var [namespace tail $this]
- uplevel "set $var $_value"
- debug {this variable: [uplevel "set $var"]} 4
- uplevel "trace variable $var rwu traceType"
- }
- }
-
- destructor {
- debug {======= destructor $this} 3
- set calledFrom [lindex [split [info level [expr [info level] - 1]]] 0]
- debug { calledFrom: >$calledFrom<} 4
- debug { >[info level [expr [info level] - 1]]<} 4
- # just return when called from traceType
- if {[string compare $calledFrom "traceType"] != 0} {
- set var [namespace tail $this]
- debug { var: >$var<} 4
- debug { >[join [trace vinfo $var]]<} 4
- debug { >[uplevel [join [trace vinfo $var]]]<} 4
- debug { >[join [uplevel "trace vinfo $var"]]<} 4
- catch {
- debug {eval uplevel \"trace vdelete $var [join [uplevel "trace vinfo $var"]]\"} 4
- eval uplevel "trace vdelete $var [join [uplevel "trace vinfo $var"]]"
- uplevel unset $var
- } szErrMsg; debug { #### szErrMsg: >$szErrMsg<} 4
- }
- }
-
- public method value {args} {
- if {[llength $args] > 0} {
- set _value [lindex $args 0]
- }
- return $_value
- }
-
- public method setNull {{ptr 0}} {
- set _voidPtr $ptr
- set _bVoid 1
- }
-
- public method unsetNull {} {
- set _bVoid 0
- }
-
- public method isNull {} {
- return $_bVoid
- }
-
- public method getNull {} {
- return $_voidPtr
- }
-}
-
-proc traceType {name1 name2 ops} {
- debug {======= traceType >$name1< >$name2< >$ops<} 3
- upvar $name1 var
- set upLevel [expr [info level] - 1]
- set lProc [info level $upLevel]
- regsub {^::} [uplevel {namespace current}] "" currentNamespace
- debug { Called from level: >$upLevel<} 4
- debug { level namespace : >[uplevel #$upLevel namespace current]<} 4
- debug { Called from : >$lProc<} 4
- debug { Current namespace: >$currentNamespace<} 4
- if {$upLevel == 0} {
- debug {Called from global} 4
- switch $ops {
- r {
- set var [uplevel $name1 value]
- }
- w {
- if [catch {$name1 value [set var]}] {
- uplevel "$name1 value [set var]"
- }
- }
- u {
- uplevel delete object $name1
- }
- }
- } elseif {[string length $currentNamespace] && \
- [string length $lProc]} {
- debug {Called from procedure in namespace} 4
- set var [uplevel ::itcl::find objects $name1]
- debug { $name1 ->$var< = ><} 4
- switch $ops {
- r {
- uplevel set $name1 [uplevel $var value]
- }
- w {
- if [catch {uplevel $var value [uplevel set $name1]} szErrMsg] {
- debug {####### Error: $szErrMsg} 4
-
- }
- }
- u {
- uplevel delete object $name1
- }
- }
- } elseif {[string length $currentNamespace]} {
- debug {Called from namespace} 4
- set var [uplevel "namespace which -variable $name1"]
- debug { $name1 ->$var< = ><} 4
- switch $ops {
- r {
- set $var [$var value]
- }
- w {
- if [catch {$var value [set $var]} szErrMsg] {
- debug {####### Error: $szErrMsg} 4
-
- }
- }
- u {
- debug {Deleting >$name1<} 4
- debug { [namespace current]} 4
- catch {delete object $name1}
- debug { DONE!} 4
- }
- }
- } else {
- debug {Called from procedure} 4
- switch $ops {
- r {
- set $name1 [$name1 value]
- }
- w {
- if [catch {$name1 value [uplevel set $name1]}] {
- uplevel "$name1 value [set $name1]"
- }
- }
- u {
- delete object $name1
- }
- }
- }
-}
-