Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
conscript.tcl
Package: mysql-3.23.35.tar.gz [view]
Upload User: tsgydb
Upload Date: 2007-04-14
Package Size: 10674k
Code Size: 4k
Category:
MySQL
Development Platform:
Visual C++
- # See the file LICENSE for redistribution information.
- #
- # Copyright (c) 1999, 2000
- # Sleepycat Software. All rights reserved.
- #
- # $Id: conscript.tcl,v 11.12 2000/12/01 04:28:36 ubell Exp $
- #
- # Script for DB_CONSUME test (test070.tcl).
- # Usage: conscript dir file runtype nitems outputfile tnum args
- # dir: DBHOME directory
- # file: db file on which to operate
- # runtype: PRODUCE or CONSUME--which am I?
- # nitems: number of items to put or get
- # outputfile: where to log consumer results
- # tnum: test number
- proc consumescript_produce { db_cmd nitems tnum args } {
- source ./include.tcl
- global mydata
- set pid [pid]
- puts "tTest0$tnum: Producer $pid starting, producing $nitems items."
- set db [eval $db_cmd]
- error_check_good db_open:$pid [is_valid_db $db] TRUE
- set oret -1
- set ret 0
- for { set ndx 0 } { $ndx < $nitems } { incr ndx } {
- set oret $ret
- set ret [$db put -append [chop_data q $mydata]]
- error_check_good db_put
- [expr $ret > 0 ? $oret < $ret :
- $oret < 0 ? $oret < $ret : $oret > $ret] 1
- }
- # XXX: We permit incomplete syncs because they seem to
- # be unavoidable and not damaging.
- set ret [catch {$db close} res]
- error_check_good db_close:$pid [expr ($ret == 0) ||
- ([is_substr $res DB_INCOMPLETE] == 1)] 1
- puts "ttTest0$tnum: Producer $pid finished."
- }
- proc consumescript_consume { db_cmd nitems tnum outputfile mode args } {
- source ./include.tcl
- global mydata
- set pid [pid]
- puts "tTest0$tnum: Consumer $pid starting, seeking $nitems items."
- set db [eval $db_cmd]
- error_check_good db_open:$pid [is_valid_db $db] TRUE
- set oid [open $outputfile w]
- for { set ndx 0 } { $ndx < $nitems } { } {
- set ret [$db get $mode]
- if { [llength $ret] > 0 } {
- error_check_good correct_data:$pid
- [lindex [lindex $ret 0] 1] [pad_data q $mydata]
- set rno [lindex [lindex $ret 0] 0]
- puts $oid $rno
- incr ndx
- } else {
- # No data to consume; wait.
- }
- }
- error_check_good output_close:$pid [close $oid] ""
- # XXX: see above note.
- set ret [catch {$db close} res]
- error_check_good db_close:$pid [expr ($ret == 0) ||
- ([is_substr $res DB_INCOMPLETE] == 1)] 1
- puts "ttTest0$tnum: Consumer $pid finished."
- }
- source ./include.tcl
- source $test_path/test.tcl
- # Verify usage
- if { $argc < 6 } {
- puts stderr "FAIL:[timestamp] Usage: $usage"
- exit
- }
- set usage "conscript.tcl dir file runtype nitems outputfile tnum"
- # Initialize arguments
- set dir [lindex $argv 0]
- set file [lindex $argv 1]
- set runtype [lindex $argv 2]
- set nitems [lindex $argv 3]
- set outputfile [lindex $argv 4]
- set tnum [lindex $argv 5]
- # args is the string "{ -len 20 -pad 0}", so we need to extract the
- # " -len 20 -pad 0" part.
- set args [lindex [lrange $argv 6 end] 0]
- set mydata "consumer data"
- # Open env
- set dbenv [berkdb env -home $dir ]
- error_check_good db_env_create [is_valid_env $dbenv] TRUE
- # Figure out db opening command.
- set db_cmd [concat {berkdb_open -create -mode 0644 -queue -env}
- $dbenv $args $file]
- # Invoke consumescript_produce or consumescript_consume based on $runtype
- if { $runtype == "PRODUCE" } {
- # Producers have nothing to log; make sure outputfile is null.
- error_check_good no_producer_outputfile $outputfile ""
- consumescript_produce $db_cmd $nitems $tnum $args
- } elseif { $runtype == "CONSUME" } {
- consumescript_consume $db_cmd $nitems $tnum $outputfile -consume $args
- } elseif { $runtype == "WAIT" } {
- consumescript_consume $db_cmd $nitems $tnum $outputfile -consume_wait
- $args
- } else {
- error_check_good bad_args $runtype "either PRODUCE, CONSUME or WAIT"
- }
- error_check_good env_close [$dbenv close] 0
- exit