iproctor | 9a41a0c | 2007-07-16 21:59:24 +0000 | [diff] [blame] | 1 | open Thrift |
| 2 | |
| 3 | class 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)= |
| 10 | object |
| 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 |
| 18 | end;; |
| 19 | |
| 20 | |
| 21 | let 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 | |