open Thrift

class virtual t
    (pf : Processor.t) 
    (st : Transport.server_t)
    (tf : Transport.factory)
    (ipf : Protocol.factory)
    (opf : Protocol.factory)=
object
  method virtual serve : unit
end;;



let run_basic_server proc port =
  Unix.establish_server (fun inp -> fun out ->
                           let trans = new TChannelTransport.t (inp,out) in
                           let proto = new TBinaryProtocol.t (trans :> Transport.t) in
                             try
                               while proc#process proto proto do () done;
                               ()
                             with e -> ()) (Unix.ADDR_INET (Unix.inet_addr_of_string "127.0.0.1",port))


