blob: d8509ff4acc63e9b0ab89aaa3c4eb2ef80b35299 [file] [log] [blame]
iproctor9a41a0c2007-07-16 21:59:24 +00001open Thrift
2
3class virtual t
4 (pf : Processor.factory)
5 (st : Transport.server_t)
6 (itf : Transport.factory)
7 (otf : Transport.factory)
8 (ipf : Protocol.factory)
9 (opf : Protocol.factory)=
10object
11 val processorFactory = pf
12 val serverTransport = st
13 val inputTransportFactory = itf
14 val outputTransportFactory = otf
15 val inputProtocolFactory = ipf
16 val outputProtocolFactory = opf
17 method virtual serve : unit
18end;;
19
20
21let run_basic_server proc port =
22 Unix.establish_server (fun inp -> fun out ->
23 let trans = new TChannelTransport.t (inp,out) in
24 let proto = new TBinaryProtocol.t (trans :> Transport.t) in
25 try
26 while proc#process proto proto do () done;
27 ()
28 with e -> ()) (Unix.ADDR_INET (Unix.inet_addr_of_string "127.0.0.1",port))
29
30