2 # $Id: msearch.tcl,v 1.2 2001-12-03 18:52:06 adam Exp $
3 # Simple multi-target search
5 if {[catch {ir-log-init all irtcl shell.log}]} {
6 set e [info sharedlibextension]
7 puts "Loading irtcl$e ..."
9 ir-log-init all irtcl shell.log
12 proc msearch {targets query pending} {
18 z.$n databaseNames [lindex $t 1]
20 z.$n failback [list fail-response $targets $n $query $pending]
21 z.$n callback [list connect-response $targets $n $query $pending]
26 if {[catch {z.$n connect [lindex $t 0]}]} {
27 fail-response $targets $n $query $pending
34 proc fail-response {targets n query pending} {
37 puts "[lindex $targets $n]: failed"
41 proc connect-response {targets n query pending} {
44 puts "[lindex $targets $n]: connect response"
45 z.$n callback [list init-response $targets $n $query $pending]
46 if {[catch {z.$n init}]} {
51 proc init-response {targets n query pending} {
54 puts "[lindex $targets $n]: init response"
55 if {![z.$n initResult]} {
56 puts "connection rejected: [z.$n userInformationField]"
59 z.$n callback [list search-response $targets $n $query $pending]
60 if {[catch {z.$n.1 search $query}]} {
61 puts "[lindex $targets $n]: bad query $query"
67 proc search-response {targets n query pending} {
70 puts "[lindex $targets $n]: search response"
71 set sstatus [z.$n.1 searchStatus]
73 set h [z.$n.1 resultCount]
74 puts "[lindex $targets $n]: search ok"
75 puts "[lindex $targets $n]: $h hits"
77 puts "[lindex $targets $n]: search failed"
82 msearch {{bagel.indexdata.dk gils} {localhost:9999 Default} {z3950.bell-labs.com books}} utah ok
84 # This looping is optional if you're using Tk (X11)
88 puts "Finished searching"