summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/virtchannel_base/null.tcl
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-10-27 19:39:39 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-10-27 19:39:39 (GMT)
commitea28451286d3ea4a772fa174483f9a7a66bb1ab3 (patch)
tree6ee9d8a7848333a7ceeee3b13d492e40225f8b86 /tcllib/modules/virtchannel_base/null.tcl
parentb5ca09bae0d6a1edce939eea03594dd56383f2c8 (diff)
parent7c621da28f07e449ad90c387344f07a453927569 (diff)
downloadblt-ea28451286d3ea4a772fa174483f9a7a66bb1ab3.zip
blt-ea28451286d3ea4a772fa174483f9a7a66bb1ab3.tar.gz
blt-ea28451286d3ea4a772fa174483f9a7a66bb1ab3.tar.bz2
Merge commit '7c621da28f07e449ad90c387344f07a453927569' as 'tcllib'
Diffstat (limited to 'tcllib/modules/virtchannel_base/null.tcl')
-rw-r--r--tcllib/modules/virtchannel_base/null.tcl54
1 files changed, 54 insertions, 0 deletions
diff --git a/tcllib/modules/virtchannel_base/null.tcl b/tcllib/modules/virtchannel_base/null.tcl
new file mode 100644
index 0000000..66feb77
--- /dev/null
+++ b/tcllib/modules/virtchannel_base/null.tcl
@@ -0,0 +1,54 @@
+# -*- tcl -*-
+# # ## ### ##### ######## #############
+# (C) 2009 Andreas Kupries
+
+# @@ Meta Begin
+# Package tcl::chan::null 1
+# Meta as::author {Andreas Kupries}
+# Meta as::copyright 2009
+# Meta as::license BSD
+# Meta description Re-implementation of Memchan's null
+# Meta description channel. Based on Tcl 8.5's channel
+# Meta description reflection support. Exports a single
+# Meta description command for the creation of new
+# Meta description channels. No arguments. Result is the
+# Meta description handle of the new channel.
+# Meta platform tcl
+# Meta require TclOO
+# Meta require tcl::chan::events
+# Meta require {Tcl 8.5}
+# @@ Meta End
+
+# # ## ### ##### ######## #############
+
+package require Tcl 8.5
+package require TclOO
+package require tcl::chan::events
+
+# # ## ### ##### ######## #############
+
+namespace eval ::tcl::chan {}
+
+proc ::tcl::chan::null {} {
+ return [::chan create {write} [null::implementation new]]
+}
+
+oo::class create ::tcl::chan::null::implementation {
+ superclass ::tcl::chan::events ; # -> initialize, finalize, watch
+
+ method initialize {args} {
+ my allow write
+ next {*}$args
+ }
+
+ # Ignore the data in most particulars. We do count it so that we
+ # can tell the caller that everything was written. Null device.
+
+ method write {c data} {
+ return [string length $data]
+ }
+}
+
+# # ## ### ##### ######## #############
+package provide tcl::chan::null 1
+return