27 lines
		
	
	
		
			840 B
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			840 B
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								! Copyright (C) 2012 Eungju PARK.
							 | 
						||
| 
								 | 
							
								! See http://factorcode.org/license.txt for BSD license.
							 | 
						||
| 
								 | 
							
								USING: byte-arrays command-line destructors formatting io kernel
							 | 
						||
| 
								 | 
							
								math math.parser namespaces sequences splitting strings zeromq
							 | 
						||
| 
								 | 
							
								zeromq.ffi ;
							 | 
						||
| 
								 | 
							
								IN: zeromq.examples.wuclient
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: wuclient ( -- )
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        <zmq-context> &dispose
							 | 
						||
| 
								 | 
							
								        "Collecting updates from weather server…" print
							 | 
						||
| 
								 | 
							
								        ZMQ_SUB <zmq-socket> &dispose
							 | 
						||
| 
								 | 
							
								        dup "tcp://localhost:5556" zmq-connect
							 | 
						||
| 
								 | 
							
								        command-line get [ "10001 " ] [ first ] if-empty
							 | 
						||
| 
								 | 
							
								        2dup >byte-array ZMQ_SUBSCRIBE swap zmq-setopt
							 | 
						||
| 
								 | 
							
								        0 100 dup [
							 | 
						||
| 
								 | 
							
								            [ pick 0 zmq-recv
							 | 
						||
| 
								 | 
							
								              >string " " split [ string>number ] map second +
							 | 
						||
| 
								 | 
							
								            ] times
							 | 
						||
| 
								 | 
							
								        ] dip
							 | 
						||
| 
								 | 
							
								        / "Average temperature for zipcode '%s' was %dF\n" printf
							 | 
						||
| 
								 | 
							
								        drop
							 | 
						||
| 
								 | 
							
								    ] with-destructors ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MAIN: wuclient
							 | 
						||
| 
								 | 
							
								
							 |